java数据类型和运算符

语言的分类:
            
            强类型语言:在使用变量之前,必须显示的声明变量的类型      java
            弱类型语言:在使用变量之前,不需要显示的声明变量的类型,程序会根据赋值自动识别是什么类型   js,python,scala
 
 java中的数据类型:
            基本数据类型:4类8种
                整数类型:byte short int long
                    byte:使用1个字节的存储空间,数据范围是从-128-127
                    short:使用2个字节的存储空间,数据范围是从-32768-32767
                    int:使用4个字节的存储空间,数据范围大概是正负21亿
                    long:使用8个字节的存储空间,数据范围是从......
                            注意:
                                1、整型中默认是int类型
                                2、定义一个变量为长整型long的时候,后面都要加上L,建议都写成大写的L,
                                   因为小写的l容易看成数字1
                    
                    
                浮点类型:float double   小数点   科学计数法
                    float:单精度浮点数,使用4个字节来存储,小数点后面可以精确到7位  
                    double:双精度浮点数,使用8个字节来存储,精度是float的2倍        
                            注意:
                                1、浮点数默认类型是double类型
                                2、如果想定义一个变量为单精度浮点数需要在后面加上f
                                3、浮点数并不能精确表示一个数,它会有精度的丢失
                                
                字符类型:char   使用''表示
                    char:占2个字节,表示一个字符,用来表示在Unicode编码表中的字符
                    
                            注意:char类型在内存中存储的是该字符的Unicode编码值,所以char类
                                  型可以当做int类型来处理

                布尔类型:boolean
                    boolean:使用1位来存储,值只有两个,true或者false,都是小写
                
            引用数据类型:
                类(class)
                数组(array)
                接口(interface)
    
 
 */
 
 
 
 public class DataTypeDemo{
     public static void main(String[] agrs){
         //int a = 0;
         
         byte a1 = 10;
         //byte a2 = 128;
         
         short aa = 100;
         //short aa1 = 32768;
         
         long aaa = 100L;
         
         //float f1 = 10.2f;
         //double d1 = 100.0;
         
         float f1 = 2.1324567123123f;
         float f2 = 2.1324567132123123213f;
         System.out.println(f1 == f2);
         
         /*char c = 'a';
         System.out.println(c);*/
         //字符类型
         //char c1 = 'Ab';
         //字符串类型,一个字符序列
         //String s = "Ab";
         
         char a = 'a';
         System.out.println(a == 97);
         
         //char t = '\t';
         char t = '\u0009';
         System.out.println("[" + t + "]");
         
         System.out.println("\"你好!\"");
         
         
         //char c = 48+6;
         //System.out.println(c);
         
         //boolean bb1 = true;
         
         int i = 10;
         System.out.println((i == 10) == false);

     }
 }

运算符:
    算术运算符: +,-,*,/,%,++,--
    赋值运算符 =
        一个=号是赋值,==是关系运算符
    扩展赋值运算符:+=,-=,*=,/=
    关系运算符: >,<,>=,<=,==,!=
        关系运算符返回类型是boolean,要么true,要么false
    逻辑运算符: &&,||,!
    位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
    条件运算符 ?:


*/

public class OperatorDemo{
    public static void main(String[] args){
        int a = 1;
        int b = 2;
        //算术运算符
        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);
        //取整除,或者取商
        System.out.println(a / b);
        //取余数,或者取模
        System.out.println(a % b);
        /*
            ++: 单目运算符,自加1,如果++放在前面,先自加,再参加运算
                如果++放在后面,先参加运算,后自加
            --:单目运算符,自减1,如果--放在前面,先自减,再参加运算
                如果--放在后面,先参加运算,后自减
        */
        System.out.println(a++);
        System.out.println(++a);
        //元素符的优先级问题:++优先级高于+
        System.out.println(++b+b++);//?   6
        System.out.println(b);//4
        
        //扩展赋值运算符
        int c = 10;
        //这两种写法结果是一样的,建议大家使用扩展运算符来写代码
        //c = c + 2;
        c += 2;
        
        /*
            数据类型的转换:
                d是byte类型,1是int类型,d+1就变成int类型,低位向高位自动转换
                =号右边高位,左边是低位,就要强制转换  语法:(datatype)
        */
        
        byte d = 10;
        //d = (byte)(d + 1);
        //d = d + 1;
        d += 1;
        System.out.println(d);
        
        //关系运算符
        System.out.println(2 > 3);
        System.out.println(2 < 3);
        System.out.println(2 >= 3);
        System.out.println(2 <= 3);
        System.out.println(2 == 3);
        System.out.println(2 != 3);
        
        //逻辑运算符
        /*
            &&:短路与,如果第一表达式返回为false,后面的表达式就不再执行
            &: 逻辑与,不管第一个表达式返回是true还是false,后面的表达式都会执行
            
            ||:短路或,如果第一表达式返回为true,后面的表达式就不再执行
            |: 逻辑或,不管第一个表达式返回是true还是false,后面的表达式都会执行
        */
        System.out.println(2 > 3 && 5 > 4);
        System.out.println(2 > 3 & 5 > 4);
        int aa = 1;
        //System.out.println(2 > 3 && 5 > aa++);
        //System.out.println(aa);//1
        System.out.println(2 > 3 & 5 > aa++);
        System.out.println(aa);//2
        System.out.println(2 > 3 || 5 > 4); 
        System.out.println(!false);
        System.out.println(!true);
        
        //位运算符
        System.out.println(4 & 5);//4
        System.out.println(4 | 5);//5
        System.out.println(4 ^ 5);//1
        //移码   原码  反码   补码
        System.out.println(~4);//-5  ?  ?
        //用最高效的方法把2变成16?
        /*
            <<:有符号左移,乘2操作,左移几位就乘以几个2
            >>:有符号右移,除2操作,右移几位就除以几个2
            >>>:无符号右移
        */
        System.out.println(2 << 3);//16
        System.out.println(16 >> 3);//2
        
        //条件运算符:三目运算符,第一个表达式返回为true,则取?后面的值,反之取:后面的值
        System.out.println(2 > 3 ? 2 : 3);//3
        System.out.println(false ? false : true ? false : true);
        
        
        /*
            基本数据类型之间的转换:
                1、自动转换(隐式转换):赋值运算符左边范围大,右边范围小,就是小范围向大范围转,会自动转型
                2、强制转换:赋值运算符左边范围小,右边范围大,就是大范围向小范围转,需要强制转换
                        语法:(datatype)
                    注意:
                        1、一般都是同一种数据类型,我们才讨论它们的转型问题;
                        2、强制转换之后,数据精度可能会丢失
        */
        byte a1 = 10;
        a1 = (byte)(a1 + 2);
        System.out.println(a1);
        System.out.println((byte)270);//14
    
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值