Java数据类型

目录

1、基础数据类型

2、引用数据类型

3、类型转换     

4、包装类   


1、基础数据类型

        1.1、数值型

                1.1.1、整数型(byte(1字节),short(2字节),int(4字节),long(8字节))  1字节==8位

                1.1.2、浮点列席(float(4字节,double(8字节))

        1.2、字符型(char(2字节))

        1.3、布尔型(boolean(1位))

2、引用数据类型

        类(4字节)、接口(4字节)、数组(4字节)

3、类型转换     

        3.1、自动类型提升(小转大)

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

                3.1.1、当容量小的数据类型和容量大的数据类型做运算时,自动转为容量大的

                3.1.2、当byte、short、char三者相互之间做运算时都是用int及其以上类型接收

byte a = 2;
int b = 3;
char d = 'a';

byte c1 = a+b; //编译不通过
int c3 = a+b //编译通过,c2的返回类型比byte大都可以用来接收

char c2 = a+d; //编译不通过
int c4 = a+d; //编译通过

        3.2、强制类型转换(大转小)   

double a = 10.9;
int c = (int)a; // 结果是10  出现精度丢失(不是四舍五入)

        3.3、特殊情况

long a = 12345;
System.out.println(a);// 正常指执行,因为12345默认类型是int,int<long(自动转换)
long b = 123564512512;
System.out.println(b);// 编译失败,超出int范围
// 正确使用
long c = 123564512512L;


float a1 = 10.13;
System.out.println(a1); // 编译失败,小数默认类型是double,double>float(不能自动转换)
// 正确使用
float b1 = 10.13F;// (或者直接强转float b1 = float(10.13))

4、包装类

基本数据类型包装类
byteByte
short        Short
int Integer
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

        4.1、基本类型 --->  包装类(方式很多,只列举部分)

                例:方式一:new 包装类(值);// Integer a = new Integer(10)

                        方式二:包装类.valueOf(值);//Integer a = Integer.valueOf(10)

        4.2、包装类 --->  基本类型

                例:调用包装类的xxx的xxxVaule方法。 // int b = a.intValue();

        4.3、基本类型/包装类型 ---> String

                方式一:String str = 10+ "";

                方式二:String str2 = String.valueOf(值);

        4.4、String ---> 基本数据类型/包装类

                调用包装类的parseXXX(String s); // int num = Interger.parseInt("123");

        4.5、自动装箱

                Integer c = 234; // 编译器自动会改为Integer c = Integer.valueOf(234);

        4.6、自动拆箱

                int d = c; // 编译器自动改为Int d = c.intValue();

        注意点

Integer t1 = new Integer(1);
Integer t2 = new Integer(1);
System.out.println(t1==t2) // false 包装类比较的是对象的地址

/*Integer初始化的时候会创建一个[-128,127]的缓存数组,当调用.valueOf自动装箱时会检查当前值是否在
  缓存数组范围内,如果在则从缓存拿出创建好的对象,不存在则创建新的Integer对象*/

Integer t3 = 1;
Integer t4 = 1;
System.out.println(t3==t4) // true 
System.out.println(t3.equals(t4)) // true  包装类默认重写了object的equals()方法,进行值比较

Integer t5 = 128;
Integer t6 = 128;
System.out.println(t5==t6) // false 
System.out.println(t5.equals(t6)) // true


        

                     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值