Java初学者笔记三:Java基础语法

注释

  • 注释不会被执行
  • 当项目复杂起来就需要注释

注释类型

  • 单行注释 //注释文本

  • 多行注释 /*多行注释文本 */

  • 文档注释 /** 文档注释 */

    public class HelloWorld {
        public static void main(String[] args) {
            /*多行注释
            ①public 公开的,是一种修饰符,说明这个main方法的对外公开度,java虚拟机才能访问这个方法。
            ②static 静态的,是一种非常重要的修饰符,用static关键字修饰能让方法更为容易的调用。
            ③void 一种返回值类型,表示没有返回值
            ④() 这是方法的定义中参数列表,用于传递你想传入方法的值
            ⑤()中的String [] args是数组的声明*/
            System.out.println("Hello,World");//单行注释,输出hello world
            /**与JavaDoc联合使用
             * @Description HelloWorld
             */
        }
    }
    

标识符

  • Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符
  • 所有的标识符都应该以字母(A-Z或a-z),($)、(_)开始
  • 不能使用关键字作为变量名或方法名
  • 标识符大小写敏感
  • 不能重名
  • 可用中文,但为规范尽量不用

关键字

  1. 数据类型:boolean、int、long、short、byte、float、double、char、class、interface。
  2. 流程控制:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally。
  3. 修饰符:public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native。
  4. 动作:package、import、throw、throws、extends、implements、this、supper、instanceof、new。
  5. 保留字:true、false、null、goto、const。
  • 关键字(或者保留字)是对编译器有特殊意义的固定单词,不能在程序中做其他目的使用。关键字具有专门的意义和用途,和自定义的标识符不同,不能当作一般的标识符来使用。

  • Java 的关键字对 Java 编译器有特殊的意义,它们用来表示一种数据类型,或者表示程序的结构等。保留字是为 Java 预留的关键字,它们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。

  • 提示:由于 Java 区分大小写,因此 public 是关键字,而 Public 则不是关键字。但是为了程序的清晰及可读性,要尽量避免使用关键字的其他形式来命名。

运算符

  • 算术运算符:+,-,*,/,%(模(余)),++,--

    int a = 10;
    int b = 20;
    
    System.out.println(a+b);
    System.out.println(a-b);
    System.out.println(a*b);
    System.out.println(a/b);//int型相除,结果还是int型,支取了0.5整数部分,输出结果为0。
    System.out.println(a/(double)b);//转换为double类型,输出结果为0.5。
    
    long c = 12387432429855L;
    int d = 123;
    short e = 10;
    byte f = 8;
    
    System.out.println(c+d+e+f); //输出为long类型
    System.out.println(d+e+f); //输出结果为141,int类型
    System.out.println(e+f); //输出结果为18,int类型
    //结论:运算中,有一个数类型为long(double),那么结果为long(double),反之全为int(无论有没有int类型参与运算)。
    System.out.println((double)e+f); //输出结果为18.0,为double类型。
    
    //模运算
    System.out.println(f%e); //输出结果为8(余数为8)。
    
    //++ (自增) --(自减)(一元运算符)  a++(++a) = (a = a + 1)
    int a = 3; //
    System.out.println(a); //输出结果为3
    
    int b = a++; //执行完这个代码后,先赋值,再自增
    //此处隐藏了一个a=a+1
    System.out.println(a);  //输出结果为4
    System.out.println(b);  //输出结果为3
    
    int c = ++a; // 执行完这个代码前,先自增,再赋值
    
    System.out.println(a); //输出结果为5
    System.out.println(b); //输出结果为3
     System.out.println(c); //输出结果为5
    //第一步:先扫描int a = 3; 结果为3。第二步,扫描int b = a++; 结果为3。第三步a=a+1=3+1=4。第三步,扫描int c = ++a, a+1=4+1=5
    
  • 关系运算符:>,<,>=,<= ,==(等于),!= instanceof(不等于)

    int g = 10;
    int h = 20;
    System.out.println(g>h); //输出为false
    System.out.println(g<h); //ture
    System.out.println(g==h); //false
    System.out.println(g!=h); //true
    
  • 逻辑运算符:&&,||,!(与或非)

    boolean a = true;
    boolean b = false;
    
    System.out.println("a && b: "+(a&&b)); //输出结果为a && b: false。逻辑与运算:两个都为真则结果才为真。
    System.out.println("a || b: "+(a||b)); //输出结果为a || b: true。逻辑或运算:一个为真则为真。
    System.out.println("!(a && b): "+!(a&&b)); //输出结果为!(a && b): true。如果为真,则变为假,反之亦然。
    
    //+连接,(a&&b)优先运算,“a && b:”双引号中的不做运算,直接输出。
    System.out.println(a&&b); //输出结果为false
    
    //短路运算
    int c = 4;
    boolean d =(c<4)&&(c--<4);
    System.out.println(d); //输出结果为false
    System.out.println(c); //输出结果为4
    
    //结论,如果执行c<4为假,则不执行后面的c--<4
    
    int e = 4;
    boolean f =(e--<4)&&(e<4);
    System.out.println(f); //输出结果为false
    System.out.println(e); //输出结果为3
    
  • 位运算符:&,|,^,~,>>,<<,>>>

     /*
     A = 0011 1100
     B = 0000 1101
    
     A&B = 0000 1100 对应位如果都是1,才为1,反之都为0。
     A|B = 0011 1101 对应位如果都是0,才为0,反之都为1。
     A^B = 0011 0001 对应位如果相同则为0,反之都为1。(亦或)
     ~B = 1111 0010 取反
    
    二进制
    0000 0000     0
    0000 0001     1
    0000 0010     2
    0000 0011     3
    0000 0100     4
    0000 1000     8
    0001 0000     16
    
    <<左移      >>右移
    >>>按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。
      */
     System.out.println(2<<3); //输出为16,将二进制的2向左移3位
     System.out.println(3<<3); //输出为24
     System.out.println(8>>>2); //输出为2
    
  • 条件运算符:? :

    //三元运算符
    //x ? y : z 如果x==ture,则结果为y,否则为z。
    int score = 80;
    String type = score < 60 ?"不及格":"及格";
    System.out.println(type); //输出结果为及格。
    
  • 扩展赋值运算符:=,+=,-=,* =,/=,%=,<< =,>> =,&=,^ =,| =
    c=a+b将把a+c得到的值赋给c,a+=b等价于a=a+b,a-=b等价于a=a-b,a* =b等价于a=a* b,a/=b等价于a=a/b,a%=b等价于a=a%b,a<<=2等价于a=a<<2,a>>=2等价于a=a>>2,a&= 2等价于a=a&2,a ^=2等价于a=a ^2 ,a|=2等价于a=a|2

    int a = 10;
    int b = 20;
    a+=b;//a=a+b
    a-=b;//a=a-b
    System.out.println(a); //输出结果为30
    
    //字符串连结符
    System.out.println(""+a+b); //输出结果为1020,(“”)为String类字符串,没有运算a+b,把a和b转换成了String类型进行连接。
    System.out.println(a+b+""); //输出结果为30,a+b依旧运算。
    
  • 幂运算

double pow = Math.pow(2, 3); //先输入这个Math.pow(2, 3);,在引入局部变量(返回值)(Alt+回车)System.out.println(pow);//输出结果为8。

Java运算符优先级

具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。

类别 操作符 关联性
后缀 () [] .(点操作符) 左到右
一元 + + - ! 〜 右到左
乘性 * / % 左到右
加性 + - 左到右
移位 >> >>> << 左到右
关系 >>= <<= 左到右
相等 == != 左到右
按位与 & 左到右
按位异或 ^ 左到右
按位或 l 左到右
逻辑与 && 左到右
逻辑或 ll 左到右
条件 ?: 右到左
赋值 = += -= *= /= %= >>= <<= &= ^= l= 右到左
逗号 , 左到右

posted on 2021-08-21 14:37  弥玊生  阅读(87)  评论(0)    收藏  举报