理解原码、反码、补码、移码
1 |
-1 |
1+(-1) |
结果 |
|
原码 |
0000 0001 |
1000 0001 |
1000 0010 |
-2 |
反码 |
0000 0001 |
1111 1110 |
1111 1111 |
-0 |
补码 |
0000 0001 |
1111 1111 |
0000 0000 |
+0 |
移码 |
1000 0001 |
0111 1111 |
1000 0000 |
0 |
取值范围
整数 |
n=8 |
|
原码 |
-(2^(n-1)-1)~2^(n-1)-1 |
-127~127 |
反码 |
-(2^(n-1)-1)~2^(n-1)-1 |
-127~127 |
补码 |
-2^(n-1)~2^(n-1)-1 |
-128~127 |
Object
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
public final native Class<?> getClass()
public native int hashCode()
public boolean equals(Object obj)
protected native Object clone() throws CloneNotSupportedException
public String toString()
public final native void notify()
public final native void notifyAll()
public final native void wait(long timeout) throws InterruptedException
public final void wait(long timeout, int nanos) throws InterruptedException
public final void wait() throws InterruptedException
protected void finalize() throws Throwable { }
|
深拷贝和浅拷贝
引用拷贝:只是复制引用地址
浅拷贝:将object对象在堆上复制一份对象,但是里面如果有引用对象的话,也只会复制地址
深拷贝:将object对象全部复制,包括内部对象。
String
Java 9 为何要将 String
的底层实现由 char[]
改成了 byte[]
?
JEP 254: 紧凑字符串 (openjdk.org)
我们建议更改类的内部表示 从 UTF-16 数组到数组加上编码标志字段。 新类将存储编码为 ISO-8859-1/Latin-1(每个字符一个字节),或 UTF-16(每个字符两个字节) 字符)