A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
因为object的toString方法打印的是地址值,重写后的tostring方法打印出来的才是对象内容。
在打印对象的时候会调用toString内容。
2.我们为什么要重写equals()方法?
在object中equals比较的是对象的地址值,没有意义,所以需要重写equals方法
3.==和equals()的区别?
==等于比较的是比较对象的值,而equals比较的是比较对象的地址值
4.String和StringBuilder的区别?
String在进行多次数的运行时,效率比StringBuilder低很多
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类是基本数据类型封装的类,
自动装箱:自动从数据类型转换为对应的包装类对象
自动拆箱:自动才包装类对象转换为数据类型
回复 使用道具 举报
1.打印对象时,输出为地址值时,是因为toString方法为Object类方法,没有覆盖重写,是对象内容即是重写了toString方法。直接打印对象名称时,会隐式调用toString方法。
2.Object类equals方法是比较对象的地址值,对对象类型没有限制,重写equals方法可以更完善代码,让两个对象在相比的时候类型一致且不为空。
3.==在基本数据类型中比较的是值,在引用数据类型比较的是地址值。
equals不能比较基本数据类型,如果要比较数据类型需要使用包装类。Object类中的equals方法不会报空指针异常。
4.String在底层被final修饰的长度不可变数组。String字符串不可变。StringBuider是长度可变的数组。StringBuider效率高。如果超出容量会自动扩容。
5.包装类是为了解决基本数据类型不能够被直接操作而将其包装成对象。与八个基本数据类型想对应。自动拆箱与自动装箱是基本数据类型可以直接互相转换。
回复 使用道具 举报
123
您需要登录后才可以回帖 登录 | 加入黑马