Java基础(day04)

运算符

        概念 : 被指定了运算规则的符号

        分类  : 

                算术运算符  : 

                        +(求和) 

                                

                         应用场景  :  

                        1*输出语句对字面值直接使用

                        2*输出语句中对变量运算

                        3*将运算的结果保存在变量

                结果数据类型的问题  :  

                        1*结果数据类型和运算元素中大类型保持一致

                                例  :  double a = b(int)+c(double)

                         2*byte  short  char  参与运算时,会自动提升为int类型

                                

byte b1 = 3;
byte b2 = 4;
byte sum = b1+b2;
        

                        编译会报错,如何改错?

                                1*强制类型转换

                                        byte sum = (byte)(b1+b2);

                                2*修改结果数据类型

                                        int sum = b1 + b2 ;               

                               但是:

                                byte  sum2 = 3+4;编译不会报错

                                原因 :  

                                        1*编译期间只校验变量类型,不确定变量的值

                                        2*编译期间进行优化,对于字面值会在编译期由虚拟机进行运算,所以以上程序编译之后

                                                byte  sum1  =  7;并检查7在不在byte的范围之内,如果超出范围,编译报错

                         -(求差) 

                         *(求积) 

                          /(求商运算) 

        System.out.println(6/4);//1

                          1*int/int结果必然为int类型  只取整数部分

                          2*除数wei0的情况  :  被除数为整型,编译不会报错,运行会抛出异常

                             被除数为正浮点数  :  

                                        System.out.println(2.0/0);//Infinity无穷大

                                        System.out.println(0/0); //NaN--not a number 非数字

                                        System.out.println(-2.0/0);//-Infinity无穷小

                                        

                        %(取余) 

                                应用场景

                                        整数--余数为0

                                        奇偶数--对2进行取余运算 判断余数是否为0

                                        1   2   3...10    hash随机散列

                                        分成3组  每组的个数尽量均衡

                                        num%3  结果  0  1  2  

                         ++ (自增运算符)           --(自减运算符)

                                int  x = 2;

                                让x变量的值+1

                                        x = ++x;

                        应用场景 : 作用于变量,不能应用字面值或者常量

                        常量 : x++;<=>(type)(x+1)

                        考虑++可能会超出范围从而得到错误的数据值

                        ++可以在变量前也可以在变量后

                               变量在前,++在后,则先使用变量的值参加运行  再让变量+1

                                ++在前,变量在后,则先让变量的值自加1,再参与运算

                         注意 : 实际开发中最好不要写太复杂的表达式,会降低程序的可读性
               

                                               

                 赋值运算符  :  = 

                关系运算符  :  &  |  

                逻辑运算符  :  

                三目运算符  :  (条件)  条件1 :  条件2

                位运算符  :  

上一篇:day04


下一篇:Java基础.Day04