本帖最后由 黄艺纯 于 2018-8-11 21:15 编辑
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
打印输出的时候调用了对象的toString方法。toString是Object类的方法,Object类是所有类的父类,其toString方法是打印对象的引用,若是内容,则是该类覆盖了该方法。
打印输出对象的时候。
2.我们为什么要重写equals()方法?
因为equals()是Object的方法,原方法是对两个对象的引用进行比较,没有意义。所以我们要将其覆盖成对内容的比较。
3.==和equals()的区别?
引用的比较;
内容的比较。
4.String和StringBuilder的区别?
String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象,所以经常改变内容的字符串最好不要用String,因为每次生成对象都会对系统性能产生影响。 StringBuilder又称为可变字符序列,是JDK5.0中新增加的一个类,它是一个类似于String的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。即它是一个容器,容器中可以装很多字符串,并且能够对其中的字符串进行各种操作。它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容,StringBuilder会自动维护数组的扩容。
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类:基本数据类型对应的引用类型。
区别:1.默认值;
2.存储位置;
3.多出方法的操作。
自动装箱,自动创建对象,省去创建对象的操作。
自动拆箱,自动将包装类型转换为基本数据类型。
|