Java数据类型

数据类型

强类型语言

要求变量的使用要严格符合规定,所有变量都必须定义以后才能使用

弱类型语言

Java的数据类型分为两大类

基本类型(primitive type)

数值类型分为整数类型,如byte,short,int,long;还有浮点型如float,double,还有字符类型char

Boolean型值只有true或false

//String a=10;  string 必须为字符串,表示字符串类型
int num=100; //int为整形,必须为数值
byte num1=20; //byte数据范围较小
short num2=30;
long num3=40L;//Long类型后要加L
//小数
float num4=53.3F;//float后要加F
double num5=3.32423423423;
//字符
char name = 'A';
//字符串,String不是关键字,类;
//布尔值
boolean flag=true;//只有两个值ture或false
//整数拓展; 进制   二进制0b   十进制   八进制0  十六进制0x
        int i=10;
        int i2=010;//八进制
        int i3=0x10;//十六进制
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);

        //浮点数拓展
        System.out.println("=============================================");
        //float,有限的,离散,舍入误差,接近但不等于
        //double
        //最好完全避免使用浮点数进行比较
        float f=0.1f;//o.1
        double d=1.0/10;//0.1
        System.out.println(f==d);//false
        float f1=23123213f;
        float f2=f1+1;
        System.out.println(f1==f2);//true

        //字符拓展
        char c1='B';
        char c2='中';
        System.out.println(c1);//B
        System.out.println((int)c1);//66
        System.out.println(c2);//中
        System.out.println((int)c2);//20013
        //所有字符的本质还是数字

        //转义字符
        //\t 制表符
        //\n 换行
        System.out.println("Hello\tWorld");

        //布尔值拓展
        boolean flag1=true;
        if(flag1==true){}
        if(flag1){}
        //两个是一样的

引用类型(reference type)

类,接口,数组

类型转换

Java是强类型语言,所以进行有些运算的时候,要用到类型转换

低-------->高

byte,short,char-->int-->long-->float-->double

运算中的类型转换
 int i=128;
        double d=i;
        byte b = (byte)i;//内存溢出
        //强制转换 (类型)变量名 高到低
        //自动转换 低到高
        System.out.println(i);//128
        System.out.println(b);//-128
        System.out.println(d);//128.o
/*      注意点:
        1.不能对布尔值进行转换
        2.不能把对象类型转换为不相干类型
        3.在把高容量转换到低容量的时候,强制转换
        4.在转换的时候可能存在内存溢出,或者精度问题

 */
        System.out.println((int)23.3);//23
        System.out.println((int)-23.34f);//-23

        System.out.println("====================");
        char c = 'a';
        int c1=c+1;
        System.out.println(c1);//98
        System.out.println((char)c1);//b

//操作数比较大的时候,注意溢出问题
        //JDK7新特性,数字之间可用下划线分割
        int money = 1_000_000_000;
        int years = 20;
        int total = money*years;
        System.out.println(total);//-1474836480
        long total1 = money*years;
        System.out.println(total1);//-1474836480 默认是int转换之前就存在问题了
        long total2= money*(long)years;
        System.out.println(total2);//20000000000
        System.out.println(money);
posted @ 2021-03-29 14:04  NO233Blog  阅读(53)  评论(0)    收藏  举报