Java基础day02
2引用类型
对象名,对象的引用,对象
User user= new User();
所有的引用类型的默认值都是null;
3public class test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Perso pp=new Perso();
pp.name="张三";
System.out.println(pp.name);
aa(pp);
System.out.println(pp.name);
}
public static void aa(Perso p)
{
p.name="里斯";
}
}
第一次输出张三
第二次输出里斯
基本数据类型 创建了一个对应的引用的数据类型
基本数据类型 引用数据类型(封装类)
byte Byte
short Short
int Integer
long Long
char Char
float Float
double Double
boolean Boolean
Integer a=new Integer(3);
Integer b=3;
//Integer b=Integer.value0f(3);
包装类和基本类比较会拆箱在比较
java数据类型有基本数据类型和引用数据类型,为了方便将基本数据类型当作对象处理,java引入了基本数据类型相对应的封装类,如int封装类是Integer。
java自动拆箱和自动装箱
1、自动装箱
自动装箱其实就是将基本数据类型转换为引用数据类型(对象)
2、自动拆箱
自动拆箱其实就是将引用数据类型转化为基本数据类型
int和Interger的区别
int是基本数据类型,Integer是引用数据类型;
int默认值是0,Integer默认值是null;
int类型直接存储数值,Integer需要实例化对象,指向对象的地址。
例子:
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=100;
int b=100;
System.out.println(a==b);//true
Integer c=new Integer(100);
Integer d=new Integer(100);
System.out.println(c==d);//false
Integer e=new Integer(100);
Integer f=100;//Integer.valueOf(100);
System.out.println(f==e);//false
Integer g=100;
Integer h=100;
System.out.println(g==h);//true
Integer i=1000;
Integer j=1000;
System.out.println(i==j);//false
int k=100;
Integer l=100;
System.out.println(k==l);//true
int m=100;
Integer n=new Integer(100);
System.out.println(m==n);//true
}
结论:
1、都是封装类,都是new出来的,肯定不相等。因为对象的内存地址不一样。
2、都是封装类,都不是new出来的,如果值在-128~127之间,那就相等,否则不相等。
3、都是封装类,一个是new出来的,一个不是new出来的,都不相等。
3、如果是封装类和基本类型进行比较,只要数值相等那就相等,否则就不相等。因为封装类和基本数据类型进行比较的时候会有一个自动拆箱操作。
4、都是基本数据类型,如果数值相等,那就相等;否则不相等