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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2018-10-23 20:10  /  1190 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候需要调用toString()方法?
答:打印对象其实就是调用它的toString方法,如果某个对象的该方法没有被重写的话,打印的就是地址值,如果被重写的话,可以打印对象的属性等内容。

2.我们为什么要重写equals()方法?
答:因为equals如果没有重写的话,比较的是地址值,但是该功能与“==”重复了,往往我们要比较的是对象的内容是否一致,所以我们就要对其方法进行重写。

3.==和equals()的区别?
答:如果没有覆盖重写equals方法,那么Object类中默认进行“==”运算符的对象地址比较,“==” 比较的是两个对象的引用(内存地址)是否相同,只要不是同一个对象,结果必然为false。“==”也用来比较两个基本数据类型的变量值是否相等。
如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法。
equals() 比较的是两个对象的值(内容)是否相同。

4.String和StringBuilder的区别?
由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象。由此可知,如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。
StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。
它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。StringBuilder会自动维护数组的扩容。
通过toString方法,StringBuilder对象将会转换为不可变的String对象。

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
答:Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的。但是我们在实际使用中经常需要将基本数据类型转化成对象,为了使用方便和解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八种基本数据类型对应的类统称为包装类(Wrapper Class),包装类均位于java.lang包。同时,对应的包装类会有一些方法可以调用。
装箱:从基本类型转换为对应的包装类对象。
拆箱:从包装类对象转换为对应的基本类型。

评分

参与人数 1黑马币 +1 收起 理由
李志超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马