Dev_Nick

导航

运算符

算数运算符

1、算数运算符的种类: + - * / %

2、+运算符的两个作用:加法运算符和连接符(让任何的数据都可以与字符串进行拼接)

  连接符注意点:任何类型的数据与字符串使用连接符连接,那么结果都是字符串类型的数据。

3、/的结果的类型与大数据类型一致。

4、%的结果符号,取决于被除数的符号。

 

自增自减运算符

1、种类:++(自增)和 --(自减)。

2、形式:++或者--在前:先自增后使用。

     ++或者--在后:先使用后自增。

3、后自增在jvm的运行原理:因为后自增要使用 到没有+1之前 的值,那么jvm会先声明一个变量用于保存没有+1之前的值。

如:int j = 1;
    j = j--;

最后j的值位1。计算过程如下:

          int temp = j;

          j = j+1;

          j = temp;

赋值运算符

1、种类:=   +=   -=   /=   %=

2、赋值运算符会进行自动类型转换,如:

   byte b1 = 1;
    byte b2 = 2;
    //b2 = (byte)(b1 + b2); 如果不进行类型转换在编译时回报类型不兼容的错误;因为byte short char 在进行运算的时候会自动转化为int类型。

   b2 +=b1;//此处在编译的时候不会报类型不兼容的错误。

 注意:b2+=b1 在编译的时候,java编译器会进行强制类型转换,不需要我们手动转换了。

 

比较运算符

1、比较运算符: 比较运算符的结果都是返回一个布尔值的。

2、种类: ==   !=   >   <   >=   <=

3、注意点:

  (1)==用于比较两个基本数据类型数据的时候,比较的是两个变量所存储的值是否一致。

  (2)==用于比较两个引用类型变量的数据时候,比较的是两个 引用类型变量所记录的内存地址是否一致。

   (3)两个不同的数据类型可以进行比较,但是必须兼容。

 

逻辑运算符

1、逻辑运算符 :逻辑运算符的作用是用于连接布尔表达式的。

2、种类:

   1、& (与,并且) 规律: 只有左右变量同时 为true,那么结果才是true,否则就为false。

  2、|  (或,或者) 只要两边的布尔表达式有一边为true,那么结果就为true,只有两边同时为false 的时候,结果才是false.

  3、^  (异或) 规律: 只要两边的布尔表达式 结果不一致,那么结果就为true,如果左右两边 的布尔表达式一致,那么就为false.

  4、! (非) 规律:真假颠倒。

  5、&& (短路与/双与)。

  6、|| (短路或/双或)。

3、短路与和单与符号的相同与不同点:

  相同点: 短路与和单与运算 的结果是一样的。

   不同点: 使用短路与的时候,如果左边的布尔表达式为false,则不会在运算右边的布尔表达式,从而提高了效率。使用单与的时候,即使发现左边的布尔表达式为false,还是  会运算右边的布尔表达式的。

 位运算符

1、位运算符常用来对二进制数据进行运算。

2、种类:&(与) |(或) ^(异或) ~(取反) <<(左移) >>(右移) >>>(无符号左移) 。

3、如果操作数A连续异或同一个操作数两次,那么结果还是操作数A,常用来加密使用。

  位运算常见面试题:1、交换两个变量的值,不准出现第三方变量。

   int a = 3;
    int b = 5;
    a = a^b;
    b = a^b;
    a = a^b;

   位运算常见面试题:2、取出一个二进制数据的指定位数。要求读取该二进制数据的低4位。

   0000000-00000000-00010100-01001101
  &   00000000-00000000-00000000-00001111
  ------------------------------------------
     0000000-00000000-00000000-00001101

4、左移规律:(二进制位数向左移动,右面补0)一个操作数进行左移运算的时候,结果就是等于操作数乘以2的n次方,n就是左移的位数.)

5、右移规律:(整数右移,左面补0;负数右移,左面补1)一个操作数在做右移运算的时候,实际上就是等于该操作数除以2的n次方,n就是右移的位数。

6、无符号右移与右移的区别:进行右移运算的时候,如果操作数是一个正数,那么左边的空缺位使用0补,如果操作数是一个负数,那么左边的空缺位使用1补。而使用无符号右移的时候,不管是正数还是负数都统一使用0补。

  笔试题目:使用最高的效率算出2乘以8的结果。--->  2<<3

三目运算符

1、格式:  布尔表达式?值1:值2

2、三元运算符要注意的细节:使用三元运算符的时候,一定要使用该表达式返回的结果,或者是定义一个变量接收该表达式返回的结果。否则会报编译错误。

 

运算符的结合性和优先级

 

 

 

posted on 2016-07-26 23:06  Dev_Nick  阅读(323)  评论(0编辑  收藏  举报