Java是面向对象的 所有的内存都是对象
Java为了实现万物皆对象的概念,给每一个数据类型提供了对应的封装类型
装箱:将基本数据类型转换成封装类型的过程valueOf
拆箱:将封装类型转换成基本数据类型的过程
int a=12;
a.toString();//报错
a不是Object a不是对象
基本数据类型记录的是数值,不是面向对象
基本数据类型对应的封装类型
基本数据类型 | byte | short | int | long | float | double | char | bollean |
封装类型 | Byte | Short | Integer | Long | Float | Double | Character | Bollean |
Long类型赋值后面必须加L
Longa=12L;
12--->Integer12
基本数据类型的封装类型的缓存
Byte、Short、Int、Long、Chacter缓存范围-128~127
只有Integer的缓存范围可以修改
基本数据类型的封装类型可以和基本数据类型直接转换
Characterc1=0;
Characterc2=newCharacter('\u0000');
System.out.println(c1==c2);//true
IntegerintA=127;
IntegerintB=127;
System.out.println(intA==intB);//true
IntegerintC=128;
IntegerintD=128;
System.out.println(intC==intD);//false
LongintE=127L;//Long类型赋值后面必须加L
LongintF=127L;//Long类型赋值后面必须加L
System.out.println(intE==intF);//true
LongintG=128L;//Long类型赋值后面必须加L
LongintH=128L;//Long类型赋值后面必须加L
System.out.println(intG==intH);//false
Numbernum=newInteger(33);
System.out.println(num);
System.out.println("---------");
//基本数据类型和封装类型比较,拆箱进行比较,==数据类型比较的数值
IntegerintN=200;
intiN=200;
System.out.println(intN==iN);//true
LongintM=200L;//Long类型数值后加L
intiM=200;
System.out.println(intM==iM);//true
DoubleintQ=200.0;
intiQ=200;
System.out.println(intQ==iQ);//true
//System.out.println(intN==intQ); //报错引用数据类型不相同不能比较
newCharacter('a');
Integer.valueOf(123);//返回的是封装类型
Integer.parseInt("12");//返回的是基本数据类型