1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?打印出地址是的 对象 所在类没有对toString 方法进行重写 ;
在System.out.println(对象名); 在输出语句的时候会自动隐式调用toString()方法;
2.我们为什么要重写equals()方法?
重写equals方法 比较对象的属性 会更有意义
3.==和equals()的区别?
==基本数据类型是比较值,引用类型是比较地址,
equals ( ) 比较的是对象地址或对象的内容
4.String和StringBuilder的区别?
String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象,所以经常改变内容的字符串最好不要用String,因为每次生成对象都会对系统性能产生影响。 StringBuilder又称为可变字符序列,是JDK5.0中新增加的一个类,它是一个类似于String的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。即它是一个容器,容器中可以装很多字符串,并且能够对其中的字符串进行各种操作。它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容,StringBuilder会自动维护数组的扩容。拼接过程中 始终只有一个对象 不用创建过多对象; 效率相对String 比较高效
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
基本数据类型,使用起来非常方便,但是没有对应的方法来操作这些基本类型数据
可以使用一个类把数据类型的数据装起来,在类中定义了一些方法这个类叫包装类 我们可以使用类中的方法操作这些基本类型的数据
包装类是引用数据类型
初始化值不一样
基本类型没有操作数据的方法 包装类有
基本类型数据和包装类之间可以自动互相转换
|