运算符

Java语言支持如下运算符:

  • 算术运算符:+,-,*,/,%(取余运算,也叫模运算),++,--
package Operator;

public class Demo02 {
    public static void main(String[] args) {
        long a=123123123123123L;
        int b=123;
        short c=10;
        byte d=8;

        System.out.println(a+b+c+d);//Long类型   //运行结果为123123123123264
        System.out.println(b+c+d);//int类型      //运行结果为141
        System.out.println(c+d);//int类型        //运行结果为18
    }
}

++,--(自增自减)

package Operator;

public class Demo04 {//自增自减运算符,数学运算    重要!!!
    public static void main(String[] args) {
        //++:自增   -- :自减    一元运算符
        int a=3;

        int b=a++;//执行完这行代码后,先给b赋值,再自增,此时b=3,a=4
        int c=++a;//执行完这行代码前,先自增,再给b赋值,此时a=5,c=5

        System.out.println(a);//运行结果为5
        System.out.println(b);//运行结果为3
        System.out.println(c);//运行结果为5

        //幂运算  2^3  2*2*2=8    很多运算,我们会使用一些工具类来操作
        double pow=Math.pow(2,3);
        System.out.println(pow);
    }
}
  • 赋值运算符 =(比如,int a=10,意思是把10赋值给a
package Operator;

public class Demo01 {//int加减乘除

    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);//运行结果为30
        System.out.println(a-b);//运行结果为-10
        System.out.println(a*b);//运行结果为200
        System.out.println(a/b);//运行结果为0,但真实结果为0.5,所以应该转为double型
        System.out.println((double) a/b);
    }
}
  • 关系运算符:>,<,>=,<=,==(等于),!=(不等于),instanceof
package Operator;

public class Demo03 {//关系运算符
    public static void main(String[] args) {
        //关系运算符返回的结果: 正确,错误    布尔值

        int a=10;
        int b=20;

        System.out.println(a>b);//运行结果为false
        System.out.println(a<b);//运行结果为true
        System.out.println(a==b);//运行结果为false
        System.out.println(a>=b);//运行结果为false
        System.out.println(a<=b);//运行结果为true
        System.out.println(a!=b);//运行结果为true

        int c=21;
        System.out.println(c%a);// c / a  21 / 10 = 2 ... 1  取余
    }
}
  • 逻辑运算符:&&(与),||(或),!(非)
package Operator;

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);//运行结果为false
        System.out.println(c);
        //运行结果为5,说明没有执行后面的c++<4,与运算中,&&前面如果是错,整体结果就是错,&&后面的不再执行
    }
}
  • 位运算符:&,|,^,~,>>,<<,>>> (了解)
package Operator;

public class Demo06 {//位运算

    public static void main(String[] args) {
        /*
        A=0011 1100
        B=0000 1101
        --------------------------------------------------------
        A&B =0000 1100  且:有0为0,全1为1
        A|B =0011 1101    或:有1为1,全0为0
        A^B =0011 0001  异或:相同为0,不相同为1
        ~B =1111  0010   取反:1变0,0变1

         2*8怎么运算最快  2*2*2*2
         效率极高!!!
         << 左移  *2
         >> 右移  /2
         0000 0000    0
         0000 0001    1
         0000 0010    2
         0000 0100    4
         0000 1000    8
         0001 0000    16
        */
        System.out.println(2<<3);//运行结果为16,左移3位,乘3个2,即2*2*2*2
    }
}
  • 条件运算符 ?:
package Operator;
//三元运算符
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);
    }
}
  • 扩展赋值运算符:+=,-=,*=,/=
package Operator;

public class Demo07 {//扩展赋值运算符

    public static void main(String[] args) {
        int a=10;
        int b=20;

        a+=b;//意为:a=a+b,此时a=30,b=20
        a-=b;//意为:a=a-b  此时a=10,b=20

        System.out.println(a);//运行结果为10

        //字符串连接符   +
        System.out.println(a+b);
        System.out.println(""+a+b);//+的两端中左端出现String类型字符串,右端也会转换成String类型
        System.out.println(a+b+"");//+的两端中右端出现String类型字符串,左端继续执行a+b操作
    }
}
  • 运算符优先级:(由高到低)

1

括号

( )、[ ]

2

非,正、负号

!、+(正)、-(负)

3

自增,自减

++、--

4

乘,除,取余

*、/、%

5

加,减

+、-

6

移位运算

<<、>>、>>>

7

大小关系

<、<=、>、>=

8

相等关系

==、!=

9

按位与

&

10

按位异或

^(再Java中,这不是幂次方的符号)

11

按位或

|

12

逻辑与(短路与)

&&

13

逻辑或(短路或)

||

14

条件运算(三目运算)

?:

15

赋值运算

=、+=、-=、*=、/=、%=

16

位赋值运算

&=、

如果在程序中,要改变运算顺序,可以使用括号( )

包机制

  • 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
  • 包语句的语法格式为: package pkg1[. pkg2[. pkg3...]];
  • 一般利用公司域名倒置作为包名
  • 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”语句可完成此功能 import package1[. package2...].(classname|*);
  • 导入这个包下所有的类 import 包名.*;

JavaDoc

  • javadoc命令是用来生成自己API文档的

参数信息:

  • @author 作者名
  • @version 版本号
  • @since 指明需要最早使用的jdk版本
  • @param 参数名
  • @return 返回值情况
  • @throws 异常抛出情况

生成文档操作步骤:

1.在文件夹中打开

2.在当前目录下打开cmd

3.输入:javadoc -encoding UTF-8 -charset UTF-8 XXX.java,回车

4.此时文件夹中会多出很多html,打开index.html,即为生成的文档

小结

  • 注释、标识符、关键字
  • 数据类型
  • 类型转换
  • 变量、常量
  • 运算符
  • 包机制、JavaDoc