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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天我们进入到了就业班,来看看就业班第一天我们都需要掌握哪些内容

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
2.我们为什么要重写equals()方法?
3.==和equals()的区别?
4.String和StringBuilder的区别?
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?

16 个回复

倒序浏览
唐杰

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
如果在定义类的时候,没有写toString方法,直接创建对象打印将得到地址值,如果类中有toString方法,打印对象的时候会自动调用toString方法,将会得到的是对象内容.

2.我们为什么要重写equals()方法?
调用equals方法的时候,默认对比的是地址值,如果需要对比对象间的其它属性的话,需要重写equals


3.==和equals()的区别?
==在对基本类型使用的时候,对比的是内容,返回值为布尔值; 对引用类型使用的时候,对比的是地址值.
equals是用于两个对象间的内容对比.


4.String和StringBuilder的区别?
StringBuilder主要用于拼接字符串,每个String都是一个对象,且内容无法改变,拼接的话会造成内存浪费,通过StringBuilder可以提高拼接的效率.

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

包装类是将基本类型封装成一个类,可以通过类名去调用一些方法.
JDK 5之后再使用基本类型的装箱/拆箱可以省略部分写法,带有自动装箱/拆箱功能.
回复 使用道具 举报
本帖最后由 刘思聪 于 2018-6-20 21:35 编辑

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
打印出地址值的对象,没有重写toString方法,调用了Object类中的提供的默认的toString方法。当直接去打印对象名称的时候,实际上会调用对象的toString方法。
2.我们为什么要重写equals()方法?
默认的equals方法是比较地址值的,为了让equals拥有符合实际需求的功能(通常是当两个类的对象成员变量相等的时候,即可判断两个对象相等。),需要对equals方法进行重写。使其不再只是比较地址值。
3.==和equals()的区别?
==号只能比较两个引用类型的地址值,而equals可以根据需要覆盖重写,实现对内容等的比较。
4.String和StringBuilder的区别?
String是一个常量,一旦创建,里面的值不能改变,只使用String用来处理字符串拼接等操作时候效率低下,StringBuilder则是一个可变的字符序列,相当于是一个String的缓冲区,可以根据需要改变其长度和内容。
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
为了让无法使用基本类型的地方能够使用基本类型的数据(比如集合),所以引入了基本类型的包装类,将其转为引用类型,包装类作为引用类型,除了能保存数据外,还有各种操作数据的方法。
自动装箱与自动拆箱是JDK5以后引入的新的特性,可以让包装类对象与对应的基本类型之间根据需要自动转换,让开发者省去手动编写进行类型转换的代码的麻烦。
回复 使用道具 举报
王宇晨
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
如果打印对象的时候没有写toString方法,打印的是地址值,写的话打印的是对象内容,在打印对象内容的时候回调用toString方法。
2.我们为什么要重写equals()方法?
equals()方法默认打印的是地址值,重写之后打印的是对象的属性内容。
3.==和equals()的区别?
==在基本类型之间比较的是内容,在引用类型之间比较的是内容,equals()比较的是内容。
4.String和StringBuilder的区别?
String在使用的时候没使用一次就相当于创建了一个对象,而StringBuilder相当于一个容器,解决了内存浪费的情况。
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类就是基本类型装箱后的引用数据类型。
自动装箱就是从基本类型转换为包装类对象。
自动拆箱就是包装类对象转换为基本类型。

回复 使用道具 举报
洪文生
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用

toString()方法?
打印对象时会默认调用toString方法,如果对象所属类有对toString方法重写,那么就会显示

对象内容,如果没有重写,那么就是地址值。

一、打印一个对象的时候,二、一个非String的对象要转化为String对象时

2.我们为什么要重写equals()方法?
因为判别的需求有时不一样。也就是参加判别的对象的成员变量有时会有不同。

3.==和equals()的区别?
==应用在基本数据上就是内容的比较;应用在引用类型上就是地址值的比较。
equals()只能应用在引用类型上,且比较的是内容。

4.String和StringBuilder的区别?
String类型的对象长度不可改变,StringBuilder类型的对象的长度是可以变化的。

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类就是基本数据对应的类,对应的类中包含方法。
区别就是包装类是引用类型,是类,不能参与运算;基本数据类型是可以参与运算的。
自动装箱:基本数据类型转化为对应的包装类
自动拆箱:包装类转化为对应的基本数据类型
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
      Object类中的toString方法是获取地址值,而任何类都是Object的子类,所以没有重写toString方法
的话调用的还是Object类的,所以打印的是地址值,而重写过后的toString一般是输出对象的内容,引用类
型输出打印的时候需要默认或者手动调用toString()方法。
2.我们为什么要重写equals()方法?
      因为Object类中的equals方法比较的是两者的地址值,而有时候需求是想判断两个对象的内容是否全
部相同,所以Object的子类重写equals就可以实现这样的比较。
3.==和equals()的区别?
      在引用数据类型中,==比较的是两者的地址值,而equals可以重写成判断两者内容是否相同的方法,
返回值为boolean类型。
4.String和StringBuilder的区别?
      String类型看似值改变了其实是创建了新的对象,在拼接多个字符串的时候就要创建多个对象,而
StringBuilder是长度可变的容器,可以做到只需要new一次,然后使用apend方法进行拼接,在需要用到大量
字符串拼接的场景时做到节省资源。
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
基本数据类型存储的是值,包装类是对象存储的是地址,包装类可以使用一些特定的方法,在jdk1.5之后可
以做到自动装拆箱,自动拆箱为包装类转换为基本
数据类型,自动装箱为基本数据类型转换为包装类。
回复 使用道具 举报
贾宗虎

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
        打印地址值的时候,是因为对象没有重写toString()方法.
        在对象有重写toString()方法的时候,会默认调用toString()方法输出对象内容.
2.我们为什么要重写equals()方法?
        equals()方法有两种比较方式:默认和自定义
        默认方式比较的是对象的地址值,只要不同对象,就是false
        而我们的思维方式,通常比较的是对象当中的内容属性,就需要重写equals()方法.
3.==和equals()的区别?
        ==比较的是地址值
        equals()有两种比较方式,默认也是比较地址值,而自定义也可以比较内容属性
4.String和StringBuilder的区别?
        String是固定的不可变的,StringBuilder是长度可变的

        String再拼接字符串的时候,每一个都需要创建一个新的字符串对象,很低效
        StringBuilder最主要的用途是,当有N个字符串需要拼接的时候,StringBuilder可以节省内存空间.提高运算效率
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
        当我们需要使用基本类型,实现更多功能的时候,就可以使用它对应的包装类
       
        基本类型转换为对应的包装类的行为,就叫装箱
        而把包装类转换为对应的基本类型的行为,就叫拆箱
        自动装箱和自动拆箱,是JDK1.5版本以后,编译器会帮我们完成装箱和拆箱的行为

回复 使用道具 举报

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
如果一个java对象改写了toString方法,就不会打印出内存地址,而是直接调用了他的toString方法。
2.我们为什么要重写equals()方法?
equals比较的是对象的地址值 而我们要用的是比较对象的属性
3.==和equals()的区别?
equals   >   ==
4.String和StringBuilder的区别?
String创建的内容不可以改变 只能new新的 而StringBuilder可以改变
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
Integer是int的包装类,是类,拥有方法   那我们来分析Integer i = 5;的过程;

在jdk1.5以前,这样的代码是错误的,必须要通过Integer i = new Integer(5);这样的语句实现;而在jdk1.5以后,Java提供了自动装箱的功能,只需Integer i = 5;这样的语句就能实现基本数据类型传给其包装类,JVM为我们执行了Integer i = Integer.valueOf(5);这就是Java的自动装箱。

相对应的,把基本数据从对应包装类中取出的过程就是拆箱;如

Integer i = 5;

int j = i;//这样的过程就是自动拆箱
回复 使用道具 举报
1.因为有的类定义了toString方法,无toString方法时,打印对象是地址值,有toString方法时,打印对象会自动默认调用toString方法,打印的是对象内容;对象在有定义了toString方法时打印会调用toString方法。
2.因为equals()方法在没有重写时比较的是地址值,需要重写后才能比较内容属性。
3.==比较基本类型时是比较内容,比较引用类型时是比较地址值;
equals()是比较对象的内容
4.String类要改变内容需要重新创建对象,耗空间
StringBuilder类是将字符串封装了的,是一个容器,可对内容进行操作,节省内存空间
5.包装类是将基本类型封装成像对象一样能调用一些方法,基本类型功能单一,包装类后还能进行一些功能使用。
自动装箱跟自动拆箱是JDK1.5更新之后装箱跟拆箱可省略调用方法。  
回复 使用道具 举报

王博

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
类中没有toString()方法时,通过其创建的对象打印的就是地址值,当其中有toString()方法时,打印对象时就会调用toString()方法

2.我们为什么要重写equals()方法?
因为不重写的话系统会默认进行地址值的比较,而我们一般判断主要是属性,属性一样就为相同


3.==和equals()的区别?
==基本类型中比较内容,引用类型比较地址值
equals()比较对象内容和地址值

4.String和StringBuilder的区别?
String类不可改变,每次改变都是重新创建了一个新的对象
StringBuilder类可以改变,但不会重新创建对象,节省内存


5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类就是对基本类型的封装处理,包装类属于引用数据类型
自动装箱就是系统自动帮我们完成基本类型转换为包装类
自动拆箱就是系统自动帮我们完成包装类转换为基本类型



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

字符串打印名称的时候得到的是地址值,如果覆盖重写了toString()方法得到的是内容
2.我们为什么要重写equals()方法?

重写之后可以比较两个对象的内容

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

==是比较地址值;
equals()是比较内容

4.String和StringBuilder的区别?

String拼接时每次都会创建一个新的地址值,造成内存浪费,
StringBuilder可以字符串进 行各种操作而且操作非常简便。


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

包装类是把基本数据类型变成一个对象可以调用方法;
自动装箱和自动拆箱:就是不需要再有详细的步骤,编译器会自动完成
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
打印对象的目的是想获取对象里面的具体信息,因为有的toString()方法是被重写过的,而有的没有。
         如果想要得到自己想要的格式,都可以对Object的toString()进行重写得到我们想要的格式和内容。


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

  因为Object类的equals()方法默认是对两个对象的地址值进行比较,而我们一般认为只要两个对象的内容相同就是想等的,如果不重写的话,那么
  在创建新对象的时候,它们的所产生的地址值永远都不可能相等,所有我们要对对象的具体内容进行重写来达到我们想要的结果

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

  ==是用来比较地址的,一般用在常量居多。而equals()一般是用来比较字符串具体的内容。

4.String和StringBuilder的区别?

   StringBuilder底层是一个动态变化的字符数组,默认无参构造大小是16个字符,当内容超过默认范围时,它会自动进行扩容,
    它在追加字符的时候不会重新开辟内存空间,节省内存空间的浪费,提高程序的执行效率。
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?


   包装类是一种引用数据类型,它可以对基本数据类型进行封装变成一种引用数据类型的对象,便于我们的操作。
  从JDK1.5以后,我们包装类和基本数据类型会自动的进行转换,装箱的过程就是将基本类型向引用类型转换,拆箱的过程
  就是引用类型转换为基本数据类型
回复 使用道具 举报
黄希

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
        打印对象,默认输出地址值。如果类中有覆盖重写父类Object中的toString()方法,可以自定义返回值。
        在打印语句中使用对象,默认就会调用对象的toString()方法。

2.我们为什么要重写equals()方法?
        equals()方法,默认是比较两个对象的地址值。
        如果想要比较两个对象的属性,就需要重写equals()方法。

3.==和equals()的区别?
        使用==来比较:
                对于基本数据类型,比较的是数据值;
                对于引用数据类型,比较的是地址值。
               
        equals()方法内部,默认是使用==来比较两个对象的地址值。

4.String和StringBuilder的区别?
        使用String类进行字符串拼接,每次拼接都会产生一个新的字符串对象,浪费内存;StringBuilder类解决了这个问题,拼接过程中只会产生一个对象,执行效率高。

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
        想要基本数据类型像对象一样操作,就可以使用对应的包装类。
        装箱:将基本数据类型转换成包装类;
        拆箱:将包装类转换成基本数据类型。
        从JDK1.5开始,装箱、拆箱操作可以由编译器自动完成。
        将基本数据类型的数据赋值给包装类变量,发生自动装箱;
        将包装类对象赋值给基本数据类型变量,发生自动拆箱。
        包装类的对象在进行运算前,会先自动拆箱成对应的基本数据类型,再进行运算。

回复 使用道具 举报
官启文
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调toString()方法?有没默认调用toString()方法
父类中有默认toString()方法。
看有没覆盖重写了toString()方法。

2.我们为什么要重写equals()方法?
默认equals在比较两个对象时,是看他们是否指向同一个地址
而重写的话可以比较内容
3.==和equals()的区别?
==比较地址值,equals比较的是内容
4.String和StringBuilder的区别?
String固定长度,每次添加都会新建,StringBuilder是可变长度的。
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类就是基本数据对应的类
区别就是包装类是引用类型
自动拆箱为包装类转换为基本数据类型,
自动装箱为基本数据类型转换为包装类
回复 使用道具 举报
吴香斌

1. 思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
打印对象调用的是toString方法,toString是Object父类中的方法,返回的是地址值。
如果子类没有重写toString方法,则默认调用的是Object父类中的方法.
       如果子类有重写toString方法可以将返回的内容修改为, 对象内容或者其他。
在打印输出时,直接调用对象时,会调用对象的toString方法.
2. 我们为什么要重写equals()方法?
      equals方法是父类Object中的方法,默认是对地址值的比较
  当我们需要进行内容的比较时,需要通过重写,来赋予它新的功能
3. ==和equals()的区别?
      == 对基本数据类型是内容的比较,对引用数据类型是地址值的比较
]]        String对象是恒定不变的,当要对String对象进行扩充时,都需要创建一个新的对象,重新分配空间。
]]        当简单的字符串连接时,使用String类。
        当存在大量和无法预知次数的字符串连接时,使用StringBuilder.
5.  什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
        包装类是把基本类型变成对象类型,像ArrayList这样的集合是不能储存基本类型的只能储存对象 为了方便这些集合的使用所以才有了把基本类型包装成对象类型。
        自动装箱:把基本类型转换为包装类型
        自动拆箱:把包装类型转换为基本类型

回复 使用道具 举报
杨银万
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?如果没有重写类的toString()方法的话默认会打印对象的地址值,如果重写了toString()方法就会打印对象内容。
在进行打印方法打印对象时,会默认调用对象的toString()方法
2.我们为什么要重写equals()方法?
因为对象之间使用equals方法比较时,默认是比较对象的内存地址值,在开发中我们会需要比较对象中的字段内容是否一致,所以需要重写equals()方法
3.==和equals()的区别?
==用于基本数据类型的比较,equals()用于引用数据类型的比较
4.String和StringBuilder的区别?
String是常量,创建对象后其内容不可改变,StringBuilder是长度可变的容器,可以用来进行字符串的拼接
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?

包装类是基本数据类型对应的引用数据类型。
包装类包含有一些静态方法可以使用
jdk1.5以后有了自动装箱和自动拆箱
自动装箱是编译器自动将基本数据类型转换成对应的引用数据类型,自动拆箱是编译器自动将引用数据类型转换成对应的基本数据类型。
回复 使用道具 举报
1.当对象没有重写toString方法的时候toString是默认的所以输出是对象的地址值,当对象重写了toString方法的内容时候在调用toString就会打印对象的内容。

2.equals()方法默认地址值比较,重写之后才可以进行对象的内容比较。

3.==在基本数据类型比较值是否相等,在引用数据类型比较两个对象的地址是否相同或是不是同一个对象,equals()比较的是两个对象的内容是否相等。

4.String类型是不可以改变的,每次用的时候其实都是创建一个新的对象浪费了内存,StringBuilder类是一个容器它可以调用apend方法进行内容的操作节省了内存的运用。

5.包装类就是对基本数据类型进行封装。将基本数据类型变成包装类称为装箱,将包装类的类型变为基本数据类型称为拆箱在JDK1.5后就会自动转换。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马