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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天我们进入到了就业班,来看看就业班第一天我们都需要掌握哪些内容
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
2.我们为什么要重写equals()方法?
3.==和equals()的区别?
4.String和StringBuilder的区别?
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?

60 个回复

倒序浏览
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
答:打印对象其实就是调用对象的toString方法,如果该对象的类没有重写toString方法,那么打印出来的是对象的类型+@+内存地址值;如果该对象的类重写了toString方法,那么打印出来的是对象的内容。直接打印对象的名字,会调用对象的toString方法。

2.我们为什么要重写equals()方法?
答:equals()方法用于比较两个对象是否相等。在没有重写的情况下,默认进行的比较是 == 运算符的对象地址比较,只要不是同一个对象,结果必然为false,这种比较的结果没有实际意义。我们希望的是对两个对象的内容进行比较,所以需要重写equals()方法。

3.==和equals()的区别?
答:==运算符可以比较基本数据类型的数据值,也可以比较引用数据类型的地址值;
equals()方法只能对引用数据类型进行比较。在没有重写equals方法的情况下,比较的是对象的地址值;重写后可以比较对象的属性内容。

4.String和StringBuilder的区别?
答:String字符串是常量,他们的值在创建之后不能更改;
StringBuilder是字符串缓冲区,占用空间少,效率高,底层也是一个数组,但是没有被final修饰,其初始容量为 16 个字符,如果超出了StringBuilder的容量,会自动的扩容。

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
答:包装类是基本类型数据对应的引用数据类型,和基本类型的区别在于可以通过创建其对象而实现更多的功能
自动装箱:从基本类型自动转换为对应的包装类对象。
自动拆箱:从包装类对象自动转换为对应的基本类型。
回复 使用道具 举报 1 0
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
(1)打印对象时,其实是调用了对象的toString方法,而这个方法要么对象所在的类中没有,子类没有向上找,则程序调用Object类中的toString方法,打印的是地址值;要么所在的类重写了这个方法,打印出了其中的内容。
(2)对象会在被通过对象名直接打印的时候默认调用toString方法。


2.我们为什么要重写equals()方法?
如果不重写equals()方法,equals会默认使用从Object类继承过来的方法,这样进行比较的两者的地址值,而如果想进行内容的比较就需要进行重写;
3.==和equals()的区别?
==
比较基本数据类型,比较的是数据值
比较引用数据类型,比较的是对象的地址值
equals()
只能比较引用数据类型
重写之前,比较的是地址值,底层就是==
重写之后,比较的是对象的内容

4.String和StringBuilder的区别?
String:底层是被final修饰的数组,是一个不变的常量;
                在进行相加时,内存会出现多个字符串,占用多,效率低;
   StingBuilder:底层是数组,但没有被final修饰,长度可变;
                          在进行相加时,在内存中始终是一个数组,占用少,效率高;如果容量超出,则自动扩容;

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类:基本数据所对应的引用数据类型;
        区别:基本类型的使用方便,但是缺少对应的方法来进行操作;而包装类可以对基本类型进行定义方法,从而进行操作基本数据类型;
        自动装箱:即自动进行基本类型转换为包装类的操作;
        自动拆箱:即自动进行包装类转换为基本类型的操作;
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?

如果不重写,默认使用的是从Object类中继承过来的方法,打印的是地址值;重写了之后,打印的是对象内容

由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因
此也需要重写它。

2.我们为什么要重写equals()方法?
如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法。

3.==和equals()的区别?
“==”
比较基本数据类型时,比较的是内容
比较引用数据类型时,比较的是地址

equals()
equals方法不能作用于基本数据类型的变量
    如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;
    诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。

4.String和StringBuilder的区别?
1. string 对象时恒定不变的,stringBuider对象表示的字符串是可变的。stringBuilder是.net提供的动态创建string的高效方式,以克服string对象恒定性带来的性能影响。

2. 对于简单的字符串连接操作,在性能上stringBuilder并不一定总是优于string。因为stringBuider对象创建代价较大,在字符串目标连接较少的情况下,过度滥用stringBuilder会导致性能的浪费,只有大量的或者无法预知次数的字符串操作,才考虑stringBuilder来实现。事实上,一般连接次数设置100次以内,根本看不出两者的性能差别。

3. 当修改字符串信息时,此时不许创建对象,可以使用stringBuilder对象。

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

装箱就是将数据类型变成包装类,拆箱就是将包装了变成基本类型。由于我们需要经常的进行装箱和拆箱的操作,于是JDK就进行了优化,由系统进行操作。所以就有了自动装箱和自动拆箱。
回复 使用道具 举报
本帖最后由 郑海波 于 2019-3-19 20:20 编辑

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
在没有重写toString方法时,打印对象默认调用的是Object父类继承过来的toString方法,因此打印出来的是地址值,重写toString方法,打印出来就会按照重写的方式打印出对象内容。
重写了toString方法后,在我们需要打印对象内容时,写个打印函数调用 对象名 就可以打印对象内容。

2.我们为什么要重写equals()方法?
如果不重写,默认使用的是Object类中继承过来的方法 ,比较的是对象的地址值;
重写了之后,比较的是对象的内容。

3.==和equals()的区别?
==
比较基本数据类型,比较的是数据值
比较引用数据类型,比较的是对象的地址值
equals()
只能比较引用数据类型
重写之前,比较的是地址值,底层就是==
重写之后,比较的是对象的内容
4.String和StringBuilder的区别?
String:String定义的字符串是常量,它们的值在创建之后不能修改;
       字符串的底层是一个被final修饰的数组,不能改变,是一个常量。
StringBuilder:也被称为字符串缓冲区,可以提供字符串的操作效率(看成一个长度可以变化的字符串),底层也是一个数组,但是没有被final修饰,可以改变长度;
              StringBuilder在内存中始终是一个数组,占用空间少,效率高。如果超出了StringBuilder的容量,会自动扩容。

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类:基本数据类型的数据使用起来非常方便,但是没有对应的方法来操作这些数据,所以我们可以使用一个类,把基本类型的数据包装起来,这个类叫包装类。
基本类型没有方法可以操作用来操作基本类型的数据,而在包装类中可以定义方法来操作基本类型数据。
自动装箱和自动拆箱:基本类型的数据和包装类之间可以自动的相互转换。比如int类型的数据在集合调用add方法时,不会因为和Integer类型不同而报错,这之中的自动类型转换就叫做自动装箱,Integer自动转换为int类型的数据就叫做自动拆箱。
回复 使用道具 举报 1 0
本帖最后由 陈伟彬 于 2019-3-19 21:33 编辑

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
答:
        原因:在打印时,如果没对toString方法进行重写的话,那会默认使用从Object类继承过来的方法,而此时打印出来的是地址值;而如果有对toString进行重写的话,那么打印出来的就是对象内容;
        使用场景:想要返回对象的属性内容时,可将其进行调用重写;
2.我们为什么要重写equals()方法?
答:
        如果不重写equals()方法,equals会默认使用从Object类继承过来的方法,这样进行比较的两者的地址值,而如果想进行内容的比较就需要进行重写;
3.==和equals()的区别?
答:
        ==:
                基本数据,比较数据值;
                引用数据,比较地址值;
        equals():只能比较引用数据;
                重写:比较对象的属性内容;
                不重写:比较地址值;
4.String和StringBuilder的区别?
答:
        String:
                底层是被final修饰的数组,是一个不变的常量;
                在进行相加时,内存会出现多个字符串,占用多,效率低;
        StingBuilder:
                底层是数组,但没有被final修饰,长度可变;
                在进行相加时,在内存中始终是一个数组,占用少,效率高;如果容量超出,则自动扩容;
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
答:
        包装类:基本数据所对应的引用数据类型;
        区别:基本类型的使用方便,但是缺少对应的方法来进行操作;而包装类可以对基本类型进行定义方法,从而进行操作基本数据类型;
        自动装箱:在进行集合的存储时自动完成,即自动进行基本类型转换为包装类的操作;
        自动拆箱:在进行集合的比较时自动完成,即自动进行包装类转换为基本类型的操作;
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
打印对象出现地址值:是因为调用了object类的toString方法
打印对象出现对象内容:是因为重写了toString方法
调用toString方法:执行打印语句的时候

2.我们为什么要重写equals()方法?
equals()方法比较的是两个对象的地址值,重写equals()能够比较两个对象的内容

3.==和equals()的区别?
==:可以比较基本数据类型,也可以比较引用数据类型
基本数据类型比较的是数值,引用数据类型比较的是地址值
equals():只能比较引用数据类型
可以比较两个对象的内容,底层原理是 ==

4.String和StringBuilder的区别?
String 的长度是固定不变的
StringBuilder 的长度是可变的

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类:就是基本类型进行转换后的引用类型
区别:包装类可以进行和对象一样的操作,基本类型则不行
自动装箱:系统自动将基本类型转换为包装类
自动拆箱:系统自动将包装类转换为基本类型
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?

在打印时,如果没对toString方法进行重写的话,那会默认使用从Object类继承过来的方法,而此时打印出来的是地址值;
而如果有对toString进行重写的话,那么打印出来的就是对象内容;
想要返回对象的属性内容时,可将其进行调用重写;

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

  如果不重写equals()方法,equals会默认使用从Object类继承过来的方法,这样进行比较的两者的地址值,而如果想进行内容的比较就需要进行重写;

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

    ==:基本数据,比较数据值;
             引用数据,比较地址值;
    equals():只能比较引用数据;
                重写:比较对象的属性内容;
                不重写:比较地址值;

4.String和StringBuilder的区别?

   String:底层是被final修饰的数组,是一个不变的常量;
                在进行相加时,内存会出现多个字符串,占用多,效率低;
   StingBuilder:底层是数组,但没有被final修饰,长度可变;
                          在进行相加时,在内存中始终是一个数组,占用少,效率高;如果容量超出,则自动扩容;

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

   包装类:基本数据所对应的引用数据类型;
   区别:基本类型的使用方便,但是缺少对应的方法来进行操作;而包装类可以对基本类型进行定义方法,从而进行操作基本数据类型;
   自动装箱:即自动进行基本类型转换为包装类的操作;
   自动拆箱:即自动进行包装类转换为基本类型的操作;

回复 使用道具 举报
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
回复 使用道具 举报
本帖最后由 黑马6期陈华 于 2019-3-19 20:15 编辑

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
(1)打印对象时,其实是调用了对象的toString方法,而这个方法要么对象所在的类中没有,子类没有向上找,则程序调用Object类中的toString方法,打印的是地址值;要么所在的类重写了这个方法,打印出了其中的内容。
(2)对象会在被通过对象名直接打印的时候默认调用toString方法。
2.我们为什么要重写equals()方法?
在没有重写equals方法的情况下,父类Object中自带的equals方法底层其实是使用==运算符进行比较,也就是比较地址值。一般equals方法应该被用来比较对象的属性,比较地址值大部分情况下是没有意义的,所以应该重写。
3.==和equals()的区别?
(1)==比较运算符在比较基本数据类型的时候是比较值,比较引用数据类型的时候是比较两个对象的地址值。
(2)equals方法只能比较引用类型数据,子类重写的情况下比较的是对象的属性,没有重写的情况下默认调用Object里的==运算符,即比较地址值。   
4.String和StringBuilder的区别?
(1)StringBuilder支持内容可变的String,而String的对象一旦被创建就永远不能被更改。
(2)StringBuilder和String一样都是数组,但是StringBuilder没有被final修饰,可以改变长度,String被final修饰,不能改变长度。
(3)StringBuilder如果超出长度范围会自动扩容,String则不会。
(4)StringBuilder在进行字符串拼接时不会产生多个字符串对象,而String在进行字符串拼接时会产生多个对象。
(5)StringBuilder可以拼接任意类型的数据并返回它自身,因此可以不需要接收返回值而不丢失拼接结果;String如果不进行接收则会丢失拼接结果。
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
(1)基本数据类型的数据使用方便但是没有对应的方法来操作这些数据。使用包装类来将这些基本数据类型的数据包装起来,就可以把基本数据类型当做对象,调用方法来操作这些基本数据。
(2)自动装箱:基本数据类型自动转为包装类,在使用ArrayList的时候会自动发生。
(3)自动拆箱:包装类转为基本数据类型,在使用运算符的时候自动发生。
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
答:打印对象显示内容是因为重写了toString()方法;
对象在输出的时候会调用toString()方法
2.我们为什么要重写equals()方法?
答:如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同就可以对equals()重写
3.==和equals()的区别?
答:==是对象地址比较,只要不是同一个对象,结果必然为false;equals()其他某个对象是否与此对象“相等”
4.String和StringBuilder的区别?
答:区别StringBuilder又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。

原来StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
答:
什么是包装类:将基本类型包装成像对象一样可以进行操作的类称为包装类;
和基本类型有什么区别:和基本类型区别在于包装类可以像对象一样操作;
什么是自动装箱和自动拆箱:
自动装箱:直接把int类型的整数赋值给包装类
自动拆箱:in是包装类,无法直接参与运算,可以自动转换为基本类型的数据,再参与计算
回复 使用道具 举报
本帖最后由 黑马六期-董安平 于 2019-3-19 20:57 编辑

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
答:如果没有重写toString()方法,那么打印对象时,会打印地址值。
而重写toString()方法后,打印对象则是打印对象内容。
对象在需要打印对象时会调用toString()方法.
2.我们为什么要重写equals()方法?
答:equals()方法默认继承Object类,调用时比较的是对象的地址值;
而重写equals()方法后,调用时比较的是对象的内容。
3.==和equals()的区别?
答:区别在于
(1).==比较在比较基本数据类型时,比较的是数据值
        比较引用数据类型时,比较的时对象的地址值
(2).equals()方法只能比较引用数据类型
        重写之前,比较的是对象的地址值,底层就是==
        重写之后比较的是对象的内容
4.String和StringBuilder的区别?
答:
String:String定义的字符串是常量,在被创建后就不能修改。
底层是一个被final修饰的数组,所以无法改变
StringBuilder:可以看成是一个能修改的Sting常量
底层是一个未被final修饰的数组,所以长度可变,可以修改。

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
答:
包装类就是将基本数据类型进行封装后的产物,归类在引用数据类型
区别:基本数据类型缺少对应的方法进行操作,而包装类将基本数据类型封装后就能
定义方法,从而操作基本数据类型。
自动装箱:就是自动将基本类型转换为包装类的操作
自动拆箱:就是自动将包装类转换为基本数据类型的操作
回复 使用道具 举报
吴元陶:


1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
打印对象出现地址值:是因为调用了object类的toString方法
打印对象出现对象内容:是因为重写了toString方法
调用toString方法:执行打印语句的时候

2.我们为什么要重写equals()方法?
equals()方法比较的是两个对象的地址值,重写equals()能够比较两个对象的内容

3.==和equals()的区别?
==:可以比较基本数据类型,也可以比较引用数据类型
基本数据类型比较的是数值,引用数据类型比较的是地址值
equals():只能比较引用数据类型
可以比较两个对象的内容,底层原理是 ==

4.String和StringBuilder的区别?
String 的长度是固定不变的
StringBuilder 的长度是可变的

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类:就是基本类型进行转换后的引用类型
区别:包装类可以进行和对象一样的操作,基本类型则不行
自动装箱:系统自动将基本类型转换为包装类
自动拆箱:系统自动将包装类转换为基本类型
回复 使用道具 举报 1 0
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
(1)在没有对toString进行重写的时候会默认使用Object类继承的方法这样打印的是地址值,在对toString进行重写的时候打印的是对象内容
(2)直接打印对象的名字会调用对象的toString方法

2.我们为什么要重写equals()方法?
如果没有覆盖重写equals方法,Object类中默认进行==运算符的对象地址比较不是同一个对象,结果都为false。
盖重写equals方法进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同。

3.==和equals()的区别?
==
(1)比较基本数据类型的时候比较的数据值
(2)比较引用数据类型的时候比较的是对象地址值
equals():
(1)只能比较引用数据类型,
重写之前比较的是地址值底层就是==
重写之后比较的是对象的内容

4.String和StringBuilder的区别?
String是字符串常量,值在创建之后就不能更改。进行相加的时候内存就会出现多个字符串,占用多效率又低
StringBuilder是字符缓冲区,创建之后初始容量是16超过会自动扩容,底层是一个没有被final修饰的数组,占用空间少,效率高。

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类是基本类型数据对应的引用数据类型,和基本类型的区别在于可以通过创建其对象而实现更多的功能
自动装箱:从基本类型自动转换为对应的包装类对象。
自动拆箱:从包装类对象自动转换为对应的基本类型。

回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
(1)打印对象时,其实是调用了对象的toString方法,而这个方法要么对象所在的类中没有,子类没有向上找,则程序调用Object类中的toString方法,打印的是地址值;要么所在的类重写了这个方法,打印出了其中的内容。
(2)对象会在被通过对象名直接打印的时候默认调用toString方法。
2.我们为什么要重写equals()方法?
在没有重写equals方法的情况下,父类Object中自带的equals方法底层其实是使用==运算符进行比较,也就是比较地址值。一般equals方法应该被用来比较对象的属性,比较地址值大部分情况下是没有意义的,所以应该重写。
3.==和equals()的区别?
(1)==比较运算符在比较基本数据类型的时候是比较值,比较引用数据类型的时候是比较两个对象的地址值。
(2)equals方法只能比较引用类型数据,子类重写的情况下比较的是对象的属性,没有重写的情况下默认调用Object里的==运算符,即比较地址值。   
4.String和StringBuilder的区别?
(1)StringBuilder支持内容可变的String,而String的对象一旦被创建就永远不能被更改。
(2)StringBuilder和String一样都是数组,但是StringBuilder没有被final修饰,可以改变长度,String被final修饰,不能改变长度。
(3)StringBuilder如果超出长度范围会自动扩容,String则不会。
(4)StringBuilder在进行字符串拼接时不会产生多个字符串对象,而String在进行字符串拼接时会产生多个对象。
(5)StringBuilder可以拼接任意类型的数据并返回它自身,因此可以不需要接收返回值而不丢失拼接结果;String如果不进行接收则会丢失拼接结果。
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
(1)基本数据类型的数据使用方便但是没有对应的方法来操作这些数据。使用包装类来将这些基本数据类型的数据包装起来,就可以把基本数据类型当做对象,调用方法来操作这些基本数据。
(2)自动装箱:基本数据类型自动转为包装类,在使用ArrayList的时候会自动发生。
(3)自动拆箱:包装类转为基本数据类型,在使用运算符的时候自动发生。
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
答:创建对象的类中重写了Object中的toString()方法,打印的就是对象内容,否则打印的就是地址值;
直接打印对象时会调用toString()方法。
2.我们为什么要重写equals()方法?
答:不重写equals()方法比较的是对象的地址值,重写之后就可以比较对象的内容。
3.==和equals()的区别?
答:
==:
基本数据类型:比较的是数据值是否相等。
引用数据类型:比较的是地址值是否相等。
equals():
只能比较引用数据类型,重写前比较的是地址值是否相等,重写后比较的是内容是否相等。
4.String和StringBuilder的区别?
答:String底层是被final修饰的数组,一旦创建不可改变长度;StringBuilder可以改变,进行字符串拼接时,直接在数组中加入新内容,StringBuilder会自动
维护数组的扩容。
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
答:包装类就是基本数据类型对应的引用数据类型,区别:包装类是引用数据类型,能够使用方法进行对基本数据类型的操控。
装箱:从基本类型转换为对应的包装类对象。
拆箱:从包装类对象转换为对应的基本类型。
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?

因为在Object类中toString()打印得是地址值,但是在开发当中我们需要打印内容所以在Object类得子类
下我们重写了toString()方法打印对象得内容。在我们直接使用输出语句输出对象名的时候,其实通过该对象调用了其toString()方法。

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

因为没有重写equals()方法得话再Object类中表示==地址值的比较。所以要是
不同对象的话必定是false。

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

==是地址值的比较。
equals()没有重写的话也是地址值的比较;重写的话就是对象内容的比较。

4.String和StringBuilder的区别?

String是不可改变的字符串。
StringBuilder是一个可以改变长度内容的字符串。

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

如果想基本类型和对象一样使用就得使用基本类型对应的包装类
自动装箱:从基本类型自动转换为对应的包装类对象。
自动拆箱:从包装类对象自动转换为对应的基本类型
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会

调用toString()方法?
答:(1)如果在一个类中没有重写toString方法,打印的就是地址值,有重写了

toString方法就能打印出对象内容;
   (2)在我们需要返回该对象的字符串表示时,就要调用toString()方法.
2.我们为什么要重写equals()方法?
答:为了比较两个对象的内容,如果不重写equals()方法,它比较的是地址值,那样没

有意义.
3.==和equals()的区别?
答: (1)   ==   :

基本数据类型比较的是值,引用数据则比较的是地址值.  

比较

内容要重写equals方法;


    (2)equals():

只能比较引用数据类型,重写之前比较的是地址值,底层就是==,

重写后比较的是对象的内容;

4.String和StringBuilder的区别?
答:(1)String中的字符串长度是常量,它们的值在创建之后不可变的,若要进行字

符串拼接会产生多个字符串常量。
   (2)StringBuilder是字符串缓冲区,可变字符序列可以对字符串的内容进行拼接

追加字符串,不会创建多个字符串对象节省内存占用空间,效率高
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
答:(1)包装类可以使基本数据类型像对象一样操作
   (2)自动装箱:从基本类型自动转换为对应的包装类对象
   (3)自动拆箱:从包装类对象自动转换为对应的数据类型


回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
在没有重写toString方法时,打印对象默认调用的是Object父类继承过来的toString方法,因此打印出来的是地址值,重写toString方法,打印出来就会按照重写的方式打印出对象内容。
重写了toString方法后,在我们需要打印对象内容时,写个打印函数调用 对象名 就可以打印对象内容。

2.我们为什么要重写equals()方法?
如果不重写,默认使用的是Object类中继承过来的方法 ,比较的是对象的地址值;
重写了之后,比较的是对象的内容。

3.==和equals()的区别?
==
比较基本数据类型,比较的是数据值
比较引用数据类型,比较的是对象的地址值
equals()
只能比较引用数据类型
重写之前,比较的是地址值,底层就是==
重写之后,比较的是对象的内容
4.String和StringBuilder的区别?
String:String定义的字符串是常量,它们的值在创建之后不能修改;
       字符串的底层是一个被final修饰的数组,不能改变,是一个常量。
StringBuilder:也被称为字符串缓冲区,可以提供字符串的操作效率(看成一个长度可以变化的字符串),底层也是一个数组,但是没有被final修饰,可以改变长度;
              StringBuilder在内存中始终是一个数组,占用空间少,效率高。如果超出了StringBuilder的容量,会自动扩容。

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类:基本数据类型的数据使用起来非常方便,但是没有对应的方法来操作这些数据,所以我们可以使用一个类,把基本类型的数据包装起来,这个类叫包装类。
基本类型没有方法可以操作用来操作基本类型的数据,而在包装类中可以定义方法来操作基本类型数据。
自动装箱和自动拆箱:基本类型的数据和包装类之间可以自动的相互转换。比如int类型的数据在集合调用add方法时,不会因为和Integer类型不同而报错,这之中的自动类型转换就叫做自动装箱,Integer自动转换为int类型的数据就叫做自动拆箱。
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
创建对象的类中重写了Object中的toString()方法,打印的就是对象内容,否则打印的就是地址值;
直接打印对象时会调用toString()方法。
2.我们为什么要重写equals()方法?
因为没有重写equals()方法得话再Object类中表示==地址值的比较。所以要是
不同对象的话必定是false。
3.==和equals()的区别?
(1)比较基本数据类型的时候比较的数据值
(2)比较引用数据类型的时候比较的是对象地址值
equals():
(1)只能比较引用数据类型,
重写之前比较的是地址值底层就是==
重写之后比较的是对象的内容
4.String和StringBuilder的区别?
String 的长度是固定不变的
StringBuilder 的长度是可变的
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类是基本类型数据对应的引用数据类型,和基本类型的区别在于可以通过创建其对象而实现更多的功能
自动装箱:从基本类型自动转换为对应的包装类对象。
自动拆箱:从包装类对象自动转换为对应的基本类型。
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马