Skip to content

Commit be48234

Browse files
committed
Update Java Notes
1 parent 918b8ca commit be48234

3 files changed

Lines changed: 950 additions & 203 deletions

File tree

Java.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2327,12 +2327,12 @@ hashCode 的作用:
23272327

23282328
* 浅拷贝 (shallowCopy):对基本数据类型进行值传递,对引用数据类型只是复制了引用,被复制对象属性的所有的引用仍然指向原来的对象,简而言之就是增加了一个指针指向原来对象的内存地址
23292329

2330+
Java 中的复制方法基本都是浅克隆:Object.clone()、System.arraycopy()、Arrays.copyOf()
2331+
23302332
* 深拷贝 (deepCopy):对基本数据类型进行值传递,对引用数据类型是一个整个独立的对象拷贝,会拷贝所有的属性并指向的动态分配的内存,简而言之就是把所有属性复制到一个新的内存,增加一个指针指向新内存。所以使用深拷贝的情况下,释放内存的时候不会出现使用浅拷贝时释放同一块内存的错误
23312333

23322334
Object 的 clone() 是 protected 方法,一个类不显式去重写 clone(),就不能直接去调用该类实例的 clone() 方法
23332335

2334-
克隆就是制造一个对象的副本,根据所要克隆的对象的成员变量中是否含有引用类型,可以将克隆分为两种:浅克隆(Shallow Clone) 和 深克隆(Deep Clone),默认情况下使用Object中的clone方法进行克隆就是浅克隆,即完成对象域对域的拷贝
2335-
23362336
Cloneable 接口是一个标识性接口,即该接口不包含任何方法(包括clone()),但是如果一个类想合法的进行克隆,那么就必须实现这个接口,在使用 clone() 方法时,若该类未实现 Cloneable 接口,则抛出异常
23372337

23382338
* Clone & Copy:`Student s = new Student`
@@ -2343,7 +2343,7 @@ Cloneable 接口是一个标识性接口,即该接口不包含任何方法(
23432343

23442344
* Shallow Clone & Deep Clone:
23452345

2346-
浅克隆:Object中的 clone() 方法在对某个对象克隆时对其仅仅是简单地执行域对域的 copy
2346+
浅克隆:Object 中的 clone() 方法在对某个对象克隆时对其仅仅是简单地执行域对域的 copy
23472347

23482348
* 对基本数据类型和包装类的克隆是没有问题的。String、Integer 等包装类型在内存中是不可以被改变的对象,所以在使用克隆时可以视为基本类型,只需浅克隆引用即可
23492349
* 如果对一个引用类型进行克隆时只是克隆了它的引用,和原始对象共享对象成员变量
@@ -2828,10 +2828,10 @@ Array 的工具类
28282828

28292829
常用API:
28302830

2831-
* `public static String toString(int[] a)` : 返回指定数组的内容的字符串表示形式
2832-
* `public static void sort(int[] a)` : 按照数字顺序排列指定的数组
2833-
* `public static int binarySearch(int[] a, int key)` : 利用二分查找返回指定元素的索引
2834-
* `public static <T> List<T> asList(T... a)` : 返回由指定数组支持的列表
2831+
* `public static String toString(int[] a)`返回指定数组的内容的字符串表示形式
2832+
* `public static void sort(int[] a)`按照数字顺序排列指定的数组
2833+
* `public static int binarySearch(int[] a, int key)`利用二分查找返回指定元素的索引
2834+
* `public static <T> List<T> asList(T... a)`返回由指定数组支持的列表
28352835

28362836
```java
28372837
public class MyArraysDemo {

0 commit comments

Comments
 (0)