首页 > 编程语言 >Java基础语法

Java基础语法

时间:2024-07-23 21:06:59浏览次数:8  
标签:Java String int 基础 System 语法 println public out

Java基础语法

1.注释、标识符、关键字

注释

  • 单行注释://
  • 多行注释:/* 注释 */
  • JavaDoc(文档注释): /** */

标识符

Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

标识符大小写敏感

2.数据类型

  • 强类型语言

    要求严格规定,所有变量都必须先定义后才能使用

  • 弱类型语言

    JS使用

  • Java的数据类型分为两大类

    ​ 基本类型

    image-20240720204835320
    public class demo02 {
        public static void main(String[] args) {
            //八大基本数据类型
            //整数
            int num1=10; //最常用
            byte num2=20;
            short num3=30;
            long num4=30L;//Long类型要在数字后面加个L
    
            //小数:浮点数
            float num5=50.1F;//float类型要在数字后面加个F
            double num6=3.14159265358;
    
            //字符
            char name = 'A';
            //字符串 String不是关键字,类
            String namea ="zyj";
            //布尔值
            boolean flag = true;
            //boolean flag = Flase;
    
    
        }
    }
    

    ​ 引用类型

    面试题讲解

    public class demo03 {
        public static void main(String[] args) {
            //整数拓展:  进制     二进制0b   十进制    八进制0    十六进制0x
            int i=10;
            int i2=010; //八进制0
            int i3=0x10;  //十六进制0x   0~9 A~F 16
    
            System.out.println(i);
            System.out.println(i2);
            System.out.println(i3);
            System.out.println("================================");
            //==========================================================
            //浮点数拓展? 银行业务怎么表示?钱
            //BigDecimal 工具
            //==========================================================
            //float  有限 离散  舍入误差  大约   接近但不等于
            //double
            //最好完全使用浮点数进行比较
            //最好完全使用浮点数进行比较
            //最好完全使用浮点数进行比较
            float f = 0.1f;  //0.1
            double d = 1.0/10;//0.1
            System.out.println(f==d);//false
            float d1 = 232323232323f;
            float d2 = d1+1;
            System.out.println(d1==d2);//true
    
    
            //==========================================================
            //字符拓展?
            //
            //==========================================================
            char c1='a';
            char c2='中';
            System.out.println(c1);
            System.out.println((int)c1); //强制转换
            System.out.println(c2);
            System.out.println((int)c2); //强制转换
            //所有的字符本质还是数字
            //编码 Unicode 表:(97=a  65=A)  2字节  0-65536  Excel  2 16 =65536
            //U0000 UFFFF
            char c3 = '\u0061';
            System.out.println(c3);//a
            //转义字符
            //\t 制表符
            //\n 换行
            System.out.println("Hello\tWorld");
    
            String sa = new String("hello world");
            String sb = new String("hello world");
            System.out.println(sa==sb);
    
            String sc = "hello world";
            String sd = "hello world";
            System.out.println(sc==sd);
            //对象   从内存分析
    
            //布尔值扩展
            boolean flag = true;
    
            if(flag==true){}//新手
            if(flag){}//老手
            //Less is More!  代码要精简易读
    
    
        }
    }
    
    

3.类型转换

由于Java是强类型语言,所以在进行有些运算时,用到类型转换

运算中,不同类型的数据先转化为同一类型,然后进行运算

低------------------------------------------------------------>高

byte,short,char->int->long->float->double

强制类型转换 高--低

自动转换 低--高

public class demo04 {
    public static void main(String[] args) {
        int i =128;
        byte b = (byte)i;//内存溢出
        double d =i;
        //强制转换   (类型)变量名   高--低
        //自动转换    低--高
        System.out.println(i);
        System.out.println(b);
        System.out.println(d);
        /*
        注意点:
        1.不能把布尔值进行转换
        2,不能把对象类型转换为不相干的而类型
        3.在把高容量转换到低容量的时候,强制转换
        4.转换的时候可能存在内存溢出,或者精度问题!
         */
        System.out.println("===============");
        System.out.println((int)23.7);//23
        System.out.println((int)-45.89f);//-45
        System.out.println("===============");
        char c = 'a';
        int e = c+1;
        System.out.println(e);
        System.out.println((char)e);

    }
}

面试题讲解:

public class demo05 {
    public static void main(String[] args) {
        //操作比较大的数时,注意溢出问题
        //JDK7新特性,数字之间可以用下划线分割
        int money = 10_0000_0000;
        int years =20;
        int total = money *years;//-1474836480,计算的时候溢出了
        long total2 = money *years;//默认是int,转换之前就已经存在问题了

        long total23 = money *((long)years);//20000000000 先把一个数转换为Long
        System.out.println(total23);
    }
}

4.变量、常量

变量:就是可以变化的量!

java是一种强类型语言,每个变量都必须声明其类型

Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

type varName [=value][{,varName[=value]}];
//数据类型 变量名 = 值;可以使用逗号隔开来声明 多个同类型变量。

注意事项:

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  • 变量名必须是合法的标识符
  • 变量声明是一条完整的语句,因此每一个生命都必须以分号结束

变量作用域:

  • 类变量
  • 实例变量
  • 局部变量
public class demo07 {
    //类变量 static
    static double salary = 2500;

    //属性:变量
    //实例变量:从属于对象;如果不自行初始化,这个类型的默认值 0 0.0
    //布尔值:默认值是false
    //除了基本类型,其余的默认值都是null;
    String name;
    int age;

    //main方法
    public static void main(String[] args) {

        //局部变量:必须声明和初始化值
        int i=10;
        System.out.println(i);
        //变量类型 变量名字 = new demo07();
        demo07 demo07= new demo07();
        System.out.println(demo07.name);
        System.out.println(demo07.age);

        //类变量 static
        System.out.println(salary);

    }

    //其他方法
    public void add(){

    }
}

常量

public class Demo08 {
    //修饰符,不存在先后顺序
    static final double PI =3.14;

    public static void main(String[] args) {
        System.out.println(PI);
    }
}

5.运算符

public class Demo01 {
    public static void main(String[] args) {
        //二元运算符
        //ctrl+D:复制当前行到下一行
        int a = 10;
        int b = 20;
        int c = 25;
        int d = 25;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);
    }
}
public class Demo02 {
    public static void main(String[] args) {
        long a =123123123123L;
        int b = 123;
        short c = 10;
        byte d = 8;
        System.out.println(a+b+c+d);//Long
        System.out.println(b+c+d);//Int
        System.out.println(c+d);//Int
    }
}
public class Demo03 {
    public static void main(String[] args) {
        //关系运算符返回结果:  正确  错误  布尔值
        int a =10;
        int b= 20;
        int c =21;
       //取余,模运算
        System.out.println(c%a);//c/a    21/10=2...1

        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
    }
}
public class Demo04 {
    public static void main(String[] args) {
        //++ -- 自增,自减 一元运算
        int a=3;
        int b= a++;  //执行完这行代码后,先给b赋值,再自增
        // a = a + 1
        System.out.println(a);
        //a++    a = a + 1
        int c= ++a;  //执行完这行代码前,再自增,先给b赋值
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

        //幂运算 2^3  2*2*2=8   很多运算,会使用工具类来操作!
        double pow = Math.pow(3,2);
        System.out.println(pow);

    }
}

public class Demo05 {
    public static void main(String[] args) {
        //与(and) 或(or)  非(取反)
        boolean a = true;
        boolean b = false;
        System.out.println("a && b:"+(a&&b));//逻辑与运算:两个变量都为真,结果才为true
        System.out.println("a||b:"+(a||b));//逻辑或运算:两个变量有一个为真,则结果才为true
        System.out.println("!(a && b):"+!(a&&b));//如果是真,则变为假,如果是假则变为真

        //短路运算
        int c =5;
        boolean d = (c<4)&&(c++<4);
        System.out.println(d);
        System.out.println(c);


    }
}
public class Demo06 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101

        A&B 0000 1100
        A|B 0011 1101
        A^B 0011 0001
        ~B  1111 0010
        什么样的方式计算最快,用左移右移,计算机底层逻辑
        2*8 = 16  2*2*2*2
        <<左移
        >>右移

         */
        System.out.println(2<<3);
    }
}
public class Demo07 {
    public static void main(String[] args) {
        int a =10;
        int b = 20;

        a+=b;  //a=a+b;
        System.out.println(a);
        a-=b;  //a=a-b;
        System.out.println(a);

        //字符串连接  +,String  (有区别!!!)
        System.out.println(a+b);
        System.out.println(""+a+b);
        System.out.println(a+b+"");

    }
}

public class Demo08 {
    public static void main(String[] args) {
        //x ? y : z
        //如果x==true,则结果为y,否则结果为z

        int score = 80;
        String type = score < 60 ?"不及格":"及格";//必须掌握!!
        //if
        System.out.println(type);
    }
}

6.包机制

为了更好的组织类,Java提供了包机制,用于区别类名的命名空间

包语句的语法格式

package pkg1[. pkg2[.pkg3...]];

一般利用公司域名倒置作为包名;

导入包的语法

import package[.package2...].(classname|*);

《阿里巴巴开发手册》

JavaDoc

是用来生成自己的API文档的

用cmd命令

javadoc -encoding UTF-8 -charset UTF-8 Doc.java

标签:Java,String,int,基础,System,语法,println,public,out
From: https://www.cnblogs.com/ZYJ0308/p/18319649

相关文章

  • Java常用设计模式-单例模式
    Java常用设计模式-单例模式JavaDesignPatterns:创建型模式:工厂方法、抽象方法、建造者、原型、单例结构型模式有:适配器、桥接、组合、装饰器、外观、享元、代理行为型模式有:责任链、命令、解释器、迭代器、中介、备忘录、观察者、状态、策略、模板方法、访问者常用设计模式:......
  • 2024年最新完整java面试题(含答案)
    1 、面向对象的特征有哪些方面 ? 【基础】答:面向对象的特征主要有以下几个方面:1) 抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是......
  • Java基础-学习笔记07
    07Object类详解Object类详解object是所有类的超类,它拥有的方法,其他所有类的对象都会拥有,可以直接使用。equals方法==和equals的对比==是一个比较运算符:既可以判断基本类型(判断的是值是否相等);也可以判断引用类型(判断的是地址是否相等),当两边类型不相等时编译不通过。eq......
  • java学习--运算符
    运算符算术运算符混合运算当进行多类型混合运算时,结果是参与运算的最大类型当只有byteshortintchar四种类型中任意一种或多种进行运算,结果一定是int类型关系运算位运算/逻辑运算位运算进阶 //&也支持两边是数字,转换为二进制进行每位比较,都是1则取1......
  • 使用脚本自动配置Java环境
    python脚本配置java环境适用Windows与LinuxLinux系统的全局配置文件路径:/etc/profile首先需要下载jdk,然后在命令行使用脚本使用方式:jdk路径不带bin目录pythonset_java_env.py/path/to/jdkset_java_env.py内容如下:importosimportsysdefset_java_env(java_path):......
  • Java---String类
    乐观学习,乐观生活,才能不断前进啊!!!我的主页:optimistic_chen我的专栏:c语言,Java欢迎大家访问~创作不易,大佬们点赞鼓励下吧~前言在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者字符指针,可以使用标准库提供的字符串系列函数完成大部分操作,......
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-05 FPGA流水灯实验
    软件版本:Anlogic-TD5.9.1-DR1_ES1.1操作系统:WIN1064bit硬件平台:适用安路(Anlogic)FPGA实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板板卡获取平台:https://milianke.tmall.com/登录"米联客"FPGA社区http://www.uisrc.com视频课程、答疑解惑!1概述流水灯以及Helloworld实验是......
  • 【Java基础语法】内置接口
    前言:小编紧接着上期抽象类与接口进行了拓展,介绍了一些Java内置有用的接口,希望能够对大家有所帮助。上期博客http://t.csdnimg.cn/0MoDe1.Comparable接口1.1Comparable接口在如下代码中:publicstaticvoidmain(String[]args){Student[]student=newStuden......
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载- [米联客-安路飞龙DR1-FPSOC] FPGA基础篇
    软件版本:Anlogic-TD5.9.1-DR1_ES1.1操作系统:WIN1064bit硬件平台:适用安路(Anlogic)FPGA实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板板卡获取平台:https://milianke.tmall.com/登录"米联客"FPGA社区http://www.uisrc.com视频课程、答疑解惑! 1概述前面实验中我们完成了基......
  • 使用JavaScript做一个轮播图
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>图片轮播</titl......