深拷贝和浅拷贝唯一的区别,仅在于对原对象引用类型成员变量的复制
a.浅拷贝,在复制了引用变量的值,并没有复制原对象中引用变量所执行是对象。
b.深拷贝,复制的是原对象中引用变量所指向的对象,在复制对象中,让对应的引用变量所指向的复制之后的对象。

可以基于Object类的clone(浅拷贝),来实现深拷贝

finalize

protect void finalize

7月24日下午笔记

String

7月24日下午笔记
String 类:一个字符穿啊就是一个String对象,一个字符串对象,代表一个字符序列“abcd”
String 构造方法:
public String ()
public String(byte[] bytes)
public String(byte[] bytes ,int offset, int length)
public String(char[] value )
public String(char[] value , int offset , int count)
public String(String original)

也可以以这种方式定义一个空字符串:
String str= new String();
str = “” ;
7月24日下午笔记

7月24日下午笔记
//public String(String original)
String s = “hello”;
String str7 = new String(s);
System.out.println(str7 == s);
//String 类的equals 比较的是字符串的内容
System.out.println(s.equals(str7));

字符串是常量,它的值在创建之后不能更改:当一个字符串创建好之后,它所代表的字符序列就不能改变。如果,我们要对已经创建好的字符串对象,做运算,永远是在创建新的字符串对象,让新的字符串对象,代表这个运算之后的字符序列。
7月24日下午笔记
字符串常量池:专门用来存储字符串字面值常量,每一个字符串字面值,还是一个字符串对象
public static void main(String[] args){
Sting s= “hello”;
s+=“world”;
System.out.println(s);
}

面试题

String ss1 = new String(“hello”);//涉及到两个字符串对象
a.一个是字符串常量池中的字符串常量
b.一个是堆上new、出来的字符串对象
String ss2 = “hello”;只涉及到了一个字符串对象,就是常量池中存储的那个代表字面值的字符串对象。

7月24日下午笔记
7月24日下午笔记
7月24日下午笔记
7月24日下午笔记

相关文章: