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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

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

38 个回复

倒序浏览
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
答:这主要取决于是否对类的toString方法进行冲重写,因为所有类的直接或者间接父类都是Object类,Object类中的toString方法是打印出对象的地址值,当子类对toString方法进行重写打印内容时,子类的对象打印输出的就是对象内容,而如果子类没有重写toString,则打印对象输出的就是地址值。
对象在类创建对象的时候就会调用toString方法。

2.我们为什么要重写equals()方法?
答:因为Object类的equals方法比较的时两个对象的地址值,正常情况下,两个对象的地址值是不同的,所以这种比较时没有意义的,而我们需要的是比较对象的内容属性,因此需要对equals方法进行重写,才能对两个对象的属性进行比较。

3.==和equals()的区别?
答:==在基础数据类型之间,比较的是数值,在引用数据类型之间,比较的是地址值。
子类的equals方法在没有重写之前比较的是两个对象之间的地址值,当子类重写equals方法后,比较的是子类对象的属性是否相同。

4.String和StringBuilder的区别?
String类创建的是长度不可该表的字符串,这种字符串是常量,在进行拼接操作时会产生很多的String对象,占用大量的内存。在进行少量字符串时比Stringbuilder创建的容器少占内存。
StringBuilder类创建的是容器,可以装很多的字符串,在进行拼接时,直接在容器中加入字符串。StringBuilder还可以自动扩容。在进行大量字符串拼接时比String拼接好用。

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
答:包装类是用来包装基本数据类型的类,方便对基本数据类型的数据进行各种方法的操作。
包装类的内容是基本数据类型,但本身是引用数据类型。
自动装箱指的是,java编译器自行把基本数据类型转换成相对应的包装类。
自动拆箱指的是,java编译器自行把包装类转换为相对应的基本数据类型。


回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?Object类的toString方法是打印地址值,只要对象类没有重写toString方法,都是默认打印地址值;
直接使用对象的时候就会调用toString方法
2.我们为什么要重写equals()方法?

equals()方法默认的是地址值比较,没有意义,需要进行重写,来比较对象的属性内容
3.==和equals()的区别?
==:基本类型数据比较的数据值;引用类型比较的是地址值
equals():默认进行==地址值的比较,重写后可以进行对象属性内容的比较
4.String和StringBuilder的区别?

String中的字符串长度是常量,它们的值在创建之后不可变的,若要进行字符串拼接会产生多个字符串常量。
StringBuilder是字符串缓冲区,可变字符序列可以对字符串的内容进行拼接追加字符串,不会创建多个字符串对象节省内存占用空间,效率高
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?


包装类可以使基本数据类型像对象一样操作
自动装箱:从基本类型自动转换为对应的包装类对象
自动拆箱:从包装类对象自动转换为对应的数据类型
回复 使用道具 举报
今天我们进入到了就业班,来看看就业班第一天我们都需要掌握哪些内容

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
因为有的类重写了toString()方法,所以打印出的是对象内容,而打印出地址值的是直接继承了公共父类Object类
中的toString()方法,默认打印地址值。  对象在直接使用时会调用toString()方法。

2.我们为什么要重写equals()方法?
因为从父类Object中继承来的equals()方法比较的是地址值,而比较地址值对我们而言没有太大意义,所以我们
需要重写equals()方法,用来比较对象的每个属性是否相同。

3.==和equals()的区别?
==比较的地址值,而equals方法如果没有被重写的话,默认的结果也是比较地址值,可以说,在默认的equals中,
就是使用的==比较。 而在重写后,equals()就变成比较内容的方法。

4.String和StringBuilder的区别?
String是一个常量,由于底层是长度固定的数组,所以String对象的长度是不可变得,发生变化的都是创建出了新的
对象。而如果创建的对象过多的话,会占用过多的空间,导致执行效率低下。而StringBuilder就很好的解决了这个问题,StringBuilder是初始容量16的字符串,无论怎么拼接删减,他还是同一个数组,所以他占用空间小,执行效率高,他的底层是一个容量可以变化的数组,所以他的长度是可变化的

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱
包装类就是将基本类型数据进行包装,是的基本类型数据也能够被对象使用,而且功能相同。
名称与基本类型不同,包装类能够被对象使用,基本类型数据不行。
基本类型和包装类相互转化的过程被称为装箱和拆箱,在JDK1.5后,系统能够自动的帮我们完成这个转化的过程,
称为自动装箱和自动拆箱。











点评

没写名字  发表于 2018-12-19 21:12
回复 使用道具 举报 1 0
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?     所有类直接或间接继承Object类,在Object类中有toString()方法,默认是打印的是地址值,所以,有的类重写了toString()方法,那么就会答应重写的方法,有的类没有重写toString()方法所以会执行默认的方法就是打印地址值。
      对象在进行使用时,会调用toString()方法,尽管我们没有写,但是jvm默认会为我们添加上。
2.我们为什么要重写equals()方法?
       equals()的底层是比较两个对象的地址值,但是只比较地址值是没有意义的,所以我们要重写equals()方法。用来比较对象的值是否相等。
3.==和equals()的区别?
   ==比较的是地址值,比较两个对象的地址值。equals()在没有重写前,也是比较的对象的地址值,在String中,重写了equals()方法,所以会比较两个对象的值是否相等
4.String和StringBuilder的区别?
      String创建的字符串是常量,是不能修改的,而StringBuilder的常量是可以修改的。
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
       包装类就是基本类型的包装起来,变成引用数据类型,以便给某些对象使用。基本类型不能再集合中使用。自动装箱就是JVM会自动转换基本数据类型为包装类型
        自动拆箱就是JVM会自动转换包装类型为基本数据类型。
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?object类是所有类的父类,object中有一个toString方法,如果建立对象的类没有对这个方法进行重写,则会继承object类中的toString方法进行地址值的打印,如果进行了重写,则打印的内容为重写后方法中的内容。对象想转为字符串类型的时候就会调用toString方法
2.我们为什么要重写equals()方法?
object类是所有类的父类,object中有一个equals方法,如果建立对象的类没有对这个方法进行重写,则会继承object类中的equals方法相当于==进行地址值的比较,如果进行了重写,则会进行属性的比较
3.==和equals()的区别?
在基本数据类型中使用==和equals()没有区别,都是进行数值内容的比较,但是在引用数据类型中==比较的是地址值,除非是对同一个对象进行比较,否则结果都为false
而equals()是进行内容的比较,与地址值无关
4.String和StringBuilder的区别?
String的字符串长度不可改变,一旦进行字符串连接都会创建一个新的字符串
Stringbuilder是字符串的缓冲区默认的长度就有16字符,超过了还可以自动扩容,所以可以进行长度的变更
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?

包装类就是对基本数据类型进行包装从而使得对象也可以直接使用,功能和基本数据类型相同
自动装箱和自动拆箱就是系统自动的帮我们进行转化,省去了我们包装类和基本类转化中的过程,提升了我们码代码效率


郑彤

点评

==和equals()的区别理解有偏差,基本数据类型是不能调用equals方法的,且equals方法但凡比较的不是地址值都是被重写了的  发表于 2018-12-19 21:29
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?

因为有的对象重写了toString方法,所以打印出来的是对象内容,而没有重写toString方法的对象,打印出来的就是地址值。
打印输出的时候,后面都会有一个toString方法。

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

因为如果是没用重写的equals()方法,比较的是地址值,而我们想要比较的是对象中的内容,所以应该要重写equals()方法。

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

==比较的是对象地址值,而equals()方法没被重写比较的也是地址值,而重写后的equals()方法比较的就是对象中的内容。

4.String和StringBuilder的区别?

String定义的字符串是常量,其长度不可改变,而StringBuilder定义的字符串长度可以发生改变。

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

包装类是对基本数据类型进行封装,包装类可以让我们像操作对象一样使用。而有的则无法使用直接的基本数据类型如ArrayList集合的泛型就不能直接使用基本数据类型,而需要使用基本类型的包装类。
从Java 5(JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
因为object类的toString()返回的是对象的地址值,我们重写toString()方法后得到的就是对象内容。在我们需要打印出内容的时候会调用toString()方法。
2.我们为什么要重写equals()方法?
不重写比较的是地址值是否相同,是一种严格意义的相同
重写比较的是内容,而不在是地址值。
3.==和equals()的区别?
默认情况下也就是从父类Object继承而来的equals方法与‘==’是完全等价的,比较的都是对象的内存地址,但我们可以重写equals方法,使其按照我们的需求的方式进行比较,如String类重写了equals方法,使其比较的是内容,而不再是内存地址。
4.String和StringBuilder的区别?
String是固定的常量不可以改变,为了不创建过多对象有了StringBuilder。StringBuilder是一个字符串连接器,其中不包含任何字符,初始容量为16个字符,长度可以变化并且占的内存小
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
基本数据类型的数据使用起来非常的方便,但是没有对应的方法来操作这些数据,所以我们可以使用一个类,把基本类型的数据包装起来,这个类叫包装类。
包装类可以存null值。可以表示一个值。
基本类的计算效率高。不会由于常量池引起比较大小的错误。
基本类型的数据和包装类之间可以自动的相互转换。
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
在本类中不重写toString()方法,打印对象就是地址值,重写后打印的就是对象的内容。
每次打印对象的时候对象名后面都会调用toString()方法。
2.我们为什么要重写equals()方法?
因为如果不重写equals()方法,比较的是地址值,要比较对象的内容的时候就要重写equals()方法。
3.==和equals()的区别?
如果是字符串变量名:==就是比较两个字符串的地址值。
equals()就是比较的是内容。
如果是对象名:==还是比较的是地址值,
不重写equals()也是比较的是内容。

4.String和StringBuilder的区别?
String是常量,不可改变,只能拼接字符,每次拼接都会创建新对象。很浩内存。
StringBuilder是一个类,可以补充String的缺陷。不管怎么加减都行。
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类就是基本类型数据进行包装,就是基本数据类型能被对象使用。
基本数据类型和包装类互相转换过程被称为装箱和拆箱,现在都是自动装箱和拆箱。
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
打印出地址值的是没有重写toSring()方法,
打印出对象内容的是重写了toString()方法.
2.我们为什么要重写equals()方法?
没有重写 equals()方法比较的是地址值
重写 equals()方法比较对象内容的属性
3.==和equals()的区别?
== 直接比较地址值
equals()方法,在没有重写的时候是比较地址值,重写的时候比较对象的内容
4.String和StringBuilder的区别?
String 是一个常量  不可改变
StringBuilder 默认长度16个,如果不够还以增加长度.
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类的引用数据类型
在ArrayList集合中只能使用引用数据类型,不可以使用基本数据类型,
自动装箱拆箱在JDK1.5后添加的,系统会自动帮我们装箱 基本类型转换为包装类,
也会自动帮我们拆分  包装类转换为 基本类型

点评

String不是一个常量,它是一个引用数据类型,只有用双引号引起来的字符串才是存储在常量池中的,其他的都在堆内存中  发表于 2018-12-19 21:34
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?

答:因为所有的类都直接或者间接继承了Object类,Object类中的toString方法打印的是地址值,如果子类没有对toString方法进行重写,那么打印的就是地址值,如果子类对toString方法进行了重写,那么打印的就是重写的内容。对象在转化为String类型的时候就会调用toString方法。

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

答:因为没有重写equals()方法的时候,比较的是两个对象的地址值,然而比较地址值没有意义,所以要进行重写。

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

答:==号比较的是两个对象的地址值, equals()方法比较的是两个对象的属性值是否相等。

4.String和StringBuilder的区别?

答:String 字符串长度不可改变;StringBuilder又称为字符串缓冲区,长度可以发生改变,为系统节省内存空间,优化系统。

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

答:包装类是对基本类型转换为对象的一个过程,因为对象的使用比基本类型可以做更多的功能,基本类型的使用效率比较快,包装类使用可以实现更多的功能。包装类与基本类型之间的相互转换叫装箱与拆箱,装箱就是基本类型-->包装类,拆箱就是包装类-->基本类型,这些动作从JDK1.5开始是自动转换的过程,不需要我们再来操作。

------------------------------------------黄成成huangcc
回复 使用道具 举报
1.object类的toString方法是打印地址值,只要对象类没有重写toString方法,都是默认打印地址值。
对象在直接使用的时候会调用toString方法。

2.因为object类的equals方法是对比地址值是否相等,因为object类是所有类的父类,如果没有重写equals方法
默认equals方法都是对比地址值是否相等。重写了才能对比内容是否相等。

3.==是对比地址值;equals()默认对比地址值,如果重写equals()方法可以对比内容是否相等。

4.区别:String  无法改变长度,StringBuilder 可以改变长度。

5.包装类是能使基本类型数据能被对象使用的类。
区别:包装类能被对象使用,基本类型不行。
自动装(拆)箱:jdk1.5之后的版本,基本类型和包装类的装(拆)箱系统会自动进行,不需要我们手动进行。
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
基础类型打印的都是对象,引用类型打印出地址值是因为没有重写就调用Objectd的toString方法就打印地址,引用类型只有重写了才会打印出对象。toString方法可以输出成字符串,需要打印地址值。
2.我们为什么要重写equals()方法?
没有重写的equals()方法永远比较的是地址值,重写后就能比较属性和内容

3.==和equals()的区别?
==和没重写的equals()比较的是地址值,重写后equals()比较的是属性
4.String和StringBuilder的区别?
String不能改变长度且没有缓冲区,拼接字符串就会不断地创建新对象浪费内存,StringBuilder有16个字节的缓冲区,不用不停的创建新对象长度可变,底部是由数组组成,
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类就是把同一种的基本类型包装成引用类型,包装类能被对象使用,打印只会出地址。基本类型不能被对象使用,打印出内容。在JDK1.5之后系统会帮我们自动帮我们进行包装盒解析的过程
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
如果没有重写equals()方法的话打印的是对象的地址值,重写后打印的是对象的内容;如果需要按照对象的属性得到相应字符串的表示形式的话需要重写toString()方法。
2.我们为什么要重写equals()方法?
如果要进行对象内容比较的话必须重写equals()方法;
3.==和equals()的区别?
==比较的是地址值,equals()比较的是对象内容
4.String和StringBuilder的区别?
String字符串一旦创建长度不可变,,StringBuilder是可变字符序列;
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类是可以将基本数据类型当成对象一样便于操作,基本类型对应的包装类开头字母大写;自动装箱和自动拆箱就是基本类型和包装类之间的来回转换
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?答:1.我们在直接打印对象名的时候如果没有重写toString方法的话或默认调用父类Object的toString方法,而Object类的toString方法是直接返回的一串地址值在底层源码是
return getClass().getName() + "@" + Integer.toHexString(hashCode()); 其中getClass() 用到了反射的技术.getName获取到了这个类的类名,然后加上一个哈希码值2.但是假如我们重写了父类Object的toString方法,则将会打印我们重写的内容2.我们为什么要重写equals()方法?
答:假设我们不重写equals方法,比较的是地址值,这个对我们没有意义。
3.==和equals()的区别?
答:==比较基本数据类型的时候比较的是内容比较引用数据类型的时候比较的是地址值,equals()在没被重写之前比较的是地址值,在重写了之后比较的是内容
4.String和StringBuilder的区别?
答:String是长度不可变的一种数据类型,因为底层是被final修饰的数组,而StringBuilder类型,是长度可变的一个字符串缓冲区,他的底层也是数组实现的,但是没有被final修饰,所以长度可变
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?

答:包装类是对应我们基本数据类型的一种类型,每种基本数据类型都有相对应的包装类,其中只有int 类型和char类型的包装类较为特殊,其余的包装类都是首字母大写,
2.他们的区别是 包装类是引用数据类型,基本类型是基本数据类型,
3.自动装箱,意思是我们可以直接把一个基本数据类型int可以直接赋值给一个包装类型Intrger,从而变成一个引用数据类型,这个过程就叫做自动装箱,而我们可以把一个integer类型的对象直接赋值给一个基本数据类型的int这个时候就是自动拆箱。程序会自动把引用数据类型的integer转换成int类型然后赋值给int类型。
回复 使用道具 举报 1 0

1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
Object类是所有类的父类,如果没有没有特别指定的父类,那么默认继承Object类,打印的是地址值是因为Object类中toString()方法没有重写,默认返还的是地址值;打印的是对象内容的是因为toString()方法被重写,按照重写的内容打印;输出打印对象名其实就是调用toString()方法。

2.我们为什么要重写equals()方法?
equals()方法默认的是地址值比较,没有意义,需要进行重写,来比较对象的属性内容。

3.==和equals()的区别?
==:基本类型数据比较的数据值;引用类型比较的是地址值
equals():默认进行==地址值的比较,重写后可以进行对象属性内容的比较

4.String和StringBuilder的区别?
String是常量,长度不可变;每次拼接都需要new一个String对象,耗时又浪费内存,但是少量的字符串拼接可以考虑;
StringBuilder是字符串的缓冲区,字符串长度可以改变,默认16个字符空间,不够会自动扩充;

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
基本数据类型的数据,使用起来非常的方便,但是没有对应的方法来操作这些数据,所以我们可以使用一个类,把基本类型的数据包装起来,这个类叫包装类,在包装类中可以定义一些方法,用来操作基本类型的数据;
自动装箱和自动拆箱:基本类型的数据和包装类之间可以自动的互相转换,JDK1.5只有主线的新特性
回复 使用道具 举报
本帖最后由 陈辉阳 于 2018-12-31 13:33 编辑

一 :能够说出Object类的特点
1> 它是所有类的根类,父类,它的所有方法子类都可以使用。

二:说出object的toString方法
打印的是地址值,所以需要重写toString

三:能够重写Object类的equals方法
要重写 如果没有重写默认进行==的地址值比较,只要不是同一个对象,内容相同也返回false

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

四:objects类
这个类是容忍空指针,空指针安全的。
,用于计算对象的hashcode、返回对象的字符串表 示形式、比较两个对象。
在比较两个对象的时候,Object的equals方法容易抛出空指针异常,而Objects类中的equals方法就优化了这个问 题。方法如下:
public?static?boolean?equals(Object?a,?Object?b) :判断两个对象是否相等。


五:能够使用日期类输出当前日期
Date date =new Date ;
Date date =new Date(long time ) longtime是时间,从1970年1月1日8时0分0秒开始,经历了longtime时间后,返回这个日期
public?long?getTime() 把日期对象转换成对应的时间毫秒值。

六:DateFormate 抽象类
创建对象 给它一个时间的格式  ?DateFormat?format?=?new?SimpleDateFormat("yyyy‐MM‐dd?HH:mm:ss");
调用format方法 将时间日期格式转为 字符串格式
public?String?format(Date?date) :将Date对象格式化为字符串。
?Date?date?=?new?Date(); ???获取当前时间Date格式????
?//?创建日期格式化对象,在获取格式化对象时可以指定风格 ??DateFormat?df?=?new?SimpleDateFormat("yyyy年MM月dd日"); ??

?调用方法 将时间日期格式转为 字符串格式    String?str?=?df.format(date);

解析 parse 将String格式的日子转为Date
?Date?date?=?df.parse(str);


七:Calendar 日历类

重点 创建对象时特殊候比较
?Calendar?cal?=?Calendar.getInstance();  通过调用getInstance方法返回Calendar的对象

常用的方法
获取当前时间的详细信息  cal.get(  ) 里面参数很多 比如月的第几个星期  星期的第几天
获取Date格式的 方法  cal.getTime  //Calendar中的getTime方法并不是获取毫秒时刻,而是拿到对应的Date对象。



八 System 系统类
?long?currentTimeMillis() :返回以毫秒为单位的当前时间。 放在程序前后就可以用来统计程序运行了多少时间

九  StringBuilder类  很重要
因为String这个类创建之后 长度不可变 内容也不可变  但是StringBuilder类可以,它的底层是一个可变的字符缓冲区
//它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。



十 包装类

基本类型 对应的包装类(位于java.lang包中)
byte   Byte
short  Short
int      Integer
long   Long
?oat   Float
double  Double
char   Character
boolean   Boolean
其中主要记住char Charcter  和int Integer
其他的都是首字母大写
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
如果打印的是对象是地址值,说明调用的是Object类中的toString方法;如果打印的是对象的内容说明该类重写Object类中的toString方法。对象在直接输出打印对象名时默认调用toString方法和对象名.toString方法都会调用toString方法。

2.我们为什么要重写equals()方法?
当没有重写equals()方法时,调用的是Obect类中equals()方法,比较的是两个对象的地址值判断是否是同个对象,不是所我们想要,我们想要的是比较对象的属性内容判断是否相同,所以对equals()方法进行重写。

3.==和equals()的区别?
若是对象==比较得是对象地址值,判断是否是同个对象;equals()没有重写时比较的是地址值,判断是否是同个对象,若重写后则是比较对象的属性内容,判断内容是否相同。

4.String和StringBuilder的区别?
String中的字符串长度是不可变的,若要进行字符串拼接会产生多个字符串常量。StringBuilder相当于可变字符序列可以对字符串的内容进行拼接追加字符串,不会创建多个字符串对象节省内存占用空间,且效率高。

5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
将基本类型的数据进行包装成类,内部定义了一些可操作基本类型数据的方法。包装类不能直接进行运算。自动装箱:从基本类型转换为对应的包装类对象;自动拆箱:从包装类对象转换为对应的基本类型。
回复 使用道具 举报
黄毅 中级黑马 2018-12-19 21:26:13
17#
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?因为object类返回的是地址值,重写方法后打印的是对象内容。当想要打印内容的时候调用toString()方法。
2.我们为什么要重写equals()方法?
因为不重写的话比较的是地址值,重写后比较的是内容
3.==和equals()的区别?
==无法重写,只有不是在同一对象,结果必然为false;而equals()可以通过重写比较对象的内容。
4.String和StringBuilder的区别?
String类的对象内容不可改变,所以在字符串拼接时,总会创建新的对象;StringBuilder又称为可变字符序列,它是一个类似于 String 的字符串缓冲
区,通过某些方法调用可以改变该序列的长度和内容 。
5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
包装类可以使基本数据类型像对象一样操作
自动装箱:从基本类型自动转换为对应的包装类对象
自动拆箱:从包装类对象自动转换为对应的数据类型
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?答:在直接使用输出语句输出字符串对象的时候,系统会默认调用该字符串对象的toString()方法,所以输出的是字符串对象的地址值,而使用覆盖重写所输出的就是字符串对象的内容。

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

答:重写equals()方法能够将两个对象的内容进行比较。

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

答:使用==等于是默认调用了equals()方法进行比较,比较的是两个对象的地址值,使用equals()方法分为默认和自定义两种情况,如果没有覆盖重写就是默认使用==对两个对象的地址值进行比较,覆盖重写的话就是对两个对象的内容进行比较。

4.String和StringBuilder的区别?

答:String字符串是常量,底层是一个byte数组,所以它的值在创建后不能改变,StringBuilder是字符串的缓冲区,能够改变长度和内容。

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


答:包装类就是将基本类型转换为引用类型,使得基本类型能够像对象一样操作。自动装箱和自动拆箱指的是在进行基本类型和包装类之间转换时系统能够自动完成装箱和拆箱的动作。
回复 使用道具 举报
1.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
答:打印对象时如果对应的类重写了toString()方法,打印对象显示的就是对象的内容;如果没有重写toString()方法,打印的就是地址值。
直接打印对象时,就会调用toString()方法,如果本类中没有重写toString方法,那么就会找到父类(Object),打印地址值。

2.我们为什么要重写equals()方法?
答:因为不重写的话,equals比较的是引用类型的地址值,这样比较没有意义。重写equals()方法是为了比较两者的属性。

3.==和equals()的区别?
答:==和对应基本数据类型来说是比较的具体内容。 ==对于引用类型来说是比较的地址值,equals()没有覆盖重写时比较的的是地址值,重写后比较的是两者的属性。

4.String和StringBuilder的区别?
答:String是字符串是常量,在常量池里面     StringBuilder是类字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容 。他们的底层都是字节数组。
在进行拼接时,string需要新建一个数组,而StringBulider是直接在数组中加入新内容,会自动维护数组的扩容,默认16字符空间。


5.什么是包装类,和基本类型有什么区别?什么是自动装箱和自动拆箱?
答:基本类型的数据不能作为对象调用方法,使用包装类就可以把基本数据类型转换为引用数据类型。区别是基本数据类型可以进行运算,而引用数据类型不能。引用数据类型能够进行方法的调用,基本数据类型不能。基本类型与对应的包装类对象之间,来回转换的过程称为”装箱“与”拆箱“,自动装箱和自动拆箱是在程序运行过程中不用进行转换,虚拟机自动完成。

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马