数据类型

基本数据类型

byte(字节)   8bit(位、比特)
short     16bit
int      32bit
long     64bit
float     32bit
double    64bit
char      16bit
boolean    8bit

引用数据类型

之所以叫做引用数据类型,是因为存的的只是地址,是内容的引用。

eg.String str=new String(“123”);
//123储存在内存中的某个地方,而str只是储存了一个地址,指向了“123”

常量池

//这里的ABC都储存在一个常量池中,str1和2都指向同一个地址,所以输出true
String str1 = "ABC";
String str2 = "ABC";
System.out.println(str1==str2);// 这里输出true

int a=0;
int b=0;
System.out.println(a==b);  //这里输出true

//这里用了new,所以两个abc储存位置不同
String str1 = new String("ABC");
String str2 = new String("ABC");
System.out.println(str1==str2);// 这里输出flase

类型转换

1.强制转型(向下转型)

这是不安全的转型

举例 int i = (int)1.9; // 输出1,数据有所丢失

2.自动转型 ( 向上转型 )

对于基本数据类型,就是小的转成大的。对于,就是子类转为父类。这是安全的转型。

3.常见问题

  • A a = new B(); // 以上代码实现的前提是? A 是 B的父类
  • 子类重写了父类的方法,自动转型之后调用哪个?
    ​ 还是子类自己的方法,因为此时,a只存储了指向b的地址。
  • 自动转型之后,能不能调用自己独有的方法?不能​

eg. 子类B有方法1,2,3。父类A有方法1,2。那么B转型后只能调用1,2

  • 向下转型(强制转型)需要先确认这个对象内存中实际的类型(原先的类型) ,只能转回去

eg.B b2 = (B)a;
b2.testBPrivate();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值