2017年8月12日 星期六

Chapter 02: 萬事萬物皆物件

  • 除了基本型別外,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




沒有留言:

張貼留言