- 除了基本型別外,Java把所有東西都視為"物件",但用來操控物件的識別字,實際上是其reference而已。
- 你可以產生一個String reference:
String s:
但這麼寫只會產生一個reference,而不是實際的物件。
基本型別
- 基本型別有Wrapper class,如果想在heap內產生代表該型別的物件則可用其wrapper class。例如:
Character ch = new Character(‘x’);
- 所以這類變數直接存放資料值,並置於stack。
- 這一類極小、極簡單的變數若透過new物件的方式置於heap上會顯得效率不彰。
- Java SE5的autoboxing會自動將基礎型別轉成wrapper type:
Character ch = ‘x’;
- 然後將其取回:
char c = ch;
Java中的Array
- Java保證array一定會被初始化,放物件的array每個元素會初始化為null,放基本型別的array則會將memory都清為0。
- Java對array的存取不會超過範圍,但每個array會額外多出一點點的空間,並得在執行期對index做檢查。
Class內基本成員的預設值
- 當class內的成員是基本型別時,Java會保證它有預設值。
- boolean => false
- char => '\u0000' (null)
- byte/short/int/long/float/double => 0
沒有留言:
張貼留言