Java SE 第二十八,九,三十讲 Object类详解String类详解,String类陷阱深度剖析

1.java.lang.Object类.java.lang包在使用的时候无需显式导入,编译时,编译器器自动导入.

2.API(Application Programming Interface).应用编程接口.

3.当打印引用时,实际上会打印出引用所指对象的toString()方法的返回值,因为每个类都直接或间接低继承自Object,而Object类中定义了toString(),因此每个类中都有toString()这个方法.

4.关于进制的表示:16进制,逢十六进一,16进制的数制包括:0~9,A,B,C,D,E,F.

5.equals方法:该方法定义在Object类中,因此Java中的每个类都具有该方法,对于Object类的equals()方法来说,它是判断调用equals()方法的引用于传进来的引用是否一致,即这两个引用是否指向同一个对象.对于Object类来说等价于"==".

6.对于String类的equals方法来说,它是判断当前字符串与传进来的字符串的内容是否一致.

7.对于String对象的相等性判断来说,请使用equals方法,而不要使用==

8. String 是常量,其对象一旦创建完毕就无法改变.当使用+拼接字符串时,会生成新的String对象,而不是向原有的String对象追加内容.

9.String Pool(字符串池),

10.String s=”aaa”;(采用字面值的方式赋值)

1)查找String Pool中是否存在"aaa这个对象,如果不存在,则在String Pool中创建一个"aaa"对象,然后将String Pool中的这个"aaa"对象的地址返回来赋给引用变量s,这样s就会指向String Pool中的这个"aaa"字符串对象.

2)如果存在,则不创建任何对象,直接将String Pool中的这个"aaa"对象地址返回来,赋给s引用.

10.String s = new String("aaa");

1)首先在String Pool中查找有没有"aaa"这个字符串对象,如果有,则不在String Pool中再去创建"aaa"这个对象了,直接在堆中(heap)中创建一个"aaa"字符串对象,然会将堆中的这个"aaa"对象的地址返回来,赋给s引用,导致s指向了堆中创建的这个"aaa"字符串对象,

2)如果没有,则首先在String Pool中创建一个"aaa"对象,然后再在堆中(heap)创建一个"aaa"对象,然后将堆中的这个"aaa"对象的地址返回来,赋给s引用,导致s指向了堆中所创建的这个"aaa"对象.

11.String的intern()方法

12.只要+运算符连接的内容中有一个是字符串,那么所有的变量都变成字符串例如"false"+true

本博客内容所有权限保留,若需合作请与博主联系.博主邮箱:donaldjohn@qq.com
原文地址:https://www.cnblogs.com/donaldjohn/p/1966539.html