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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?

答:这主要取决于是否对类的toString方法进行冲重写,因为所有类的直接或者间接父类都是Object类,Object类中的toString方法是打印出对象的地址值,当子类对toString方法进行重写打印内容时,子类的对象打印输出的就是对象内容,而如果子类没有重写toString,则打印对象输出的就是地址值。
对象在类创建对象的时候就会调用toString方法。

2.我们为什么要重写equals()方法?

答:因为Object类的equals方法比较的时两个对象的地址值,正常情况下,两个对象的地址值是不同的,所以这种比较时没有意义的,而我们需要的是比较对象的内容属性,因此需要对equals方法进行重写,才能对两个对象的属性进行比较。

3.==和equals()的区别?

答:==在基本数据类型之间,比较的是数值,在引用数据类型之间,比较的是地址值。
equals()在没有重写之前比较的是两个对象之间的地址值,当子类重写equals方法后,比较的是子类对象的属性是否相同。

4.String和StringBuilder的区别?

答:String类创建的是长度不可该表的字符串,这种字符串是常量,在进行拼接操作时会产生很多的String对象,占用大量的内存。在进行少量字符串时比Stringbuilder创建的容器少占内存。
StringBuilder类创建的是容器,可以装很多的字符串,在进行拼接时,直接在容器中加入字符串。StringBuilder还可以自动扩容。在进行大量字符串拼接时比String拼接好用。


5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?

答:包装类是用来包装基本数据类型的类,方便对基本数据类型的数据进行各种方法的操作。
包装类的内容是基本数据类型,但本身是引用数据类型。
自动装箱指的是,java编译器自行把基本数据类型转换成相对应的包装类。
自动拆箱指的是,java编译器自行把包装类转换为相对应的基本数据类型。

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