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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2019-3-19 18:20  /  4853 人查看  /  60 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

当对象所在的类没有重写父类Object中的toString()方法的时候,再打印的时候就会自动调用父类Object中的toString()方法,而Object中的toString()方法打印的就是打印对象的地址值。

当对象所在的类有重写父类Object中的toString()方法的时候,再打印的时候就不会调用父类Object中的toString()方法,而是调用的自身类的toString。就会打印对象的内容。

当需要用到对象的地址值或者内容的时候,会使用到toString()方法。

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

如果我们不重写equals()方法的话,再使用equals()方法的时候,就会调用继承自Object类的equals()方法。而Object中的equals()方法是比较两个对象的地址值。如果需要比较两个对象的内容的话,就必须要重写equals()方法。

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

当用“"=="比较两个数据类型时,会比较两个数据类型的内容。而再比较两个引用类型的话,会比较两个引用类型的地址值。

equasl()方法,无法比较两个数据类型,只能比较两个引用类型。如果当前类没用进行重写的话,equasl()方法是父类Object类中的方法,会比较两个引用类型的地址值,如果当前类有重写equasl()方法的话,会比较两个引用类型的内容

4.String和StringBuilder的区别?

String类是被fianl修饰的,所有内容是常量,不可被改变。

StringBuilder内容可变,因为StringBuilder内部是一个数组,可以添加多个字符串。

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

在JAVA中有两个类型,一个是基本类型和引用类型。虽然基本类型的运行效率高,但是用法单一,无法像引用类型一样使用方法。为了让基本类型能够有更多的功能,于是就有了将基本类型对应的类,也就是包装类。

装箱就是将数据类型变成包装类,拆箱就是将包装了变成基本类型。由于我们需要经常的进行装箱和拆箱的操作,于是JDK就进行了优化,由系统进行操作。所以就有了自动装箱和自动拆箱。

点评

equasl方法,无法比较两个数据类型,只能比较两个引用类型,这句话描述是错的,数据类型分为基本数据类型和引用数据类型  发表于 2019-3-20 15:37
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马