例子:一個學生的成績是一個double類,無法表示學生缺考的情況。
組成:爲8種基本類型各自提供對象形式
int Integer
char Character
byte Byte
short Short
long Long
float Float
double Double
boolean Boolean
JDK5.0 自動封箱 由Java編譯器自動完成 基本類型<--->包裝類 轉換
5.0之前 Integer i1 = 3;編譯是不能夠通過的,5.0之後可以直接將一個基本類型直接賦值給一個包裝類(裝箱)。可以直接直接進行i1+3一個對象類型和數值類型相加(拆箱)
常用:
int Integer.parseInt(String)將字符轉換成數值
1.5之後包裝類和基本類可以混用
內部類:放在一個類內部的類
成員內部類
可以訪問外部類的私有成員
用"外部類類名.this"訪問外部類對象
創建成員內部類對象,需要先創建外部類對象,再通過"外部類對象.new 內部類類名()"
靜態內部類
靜態內部類只能訪問外部類的靜態成員
創建靜態內部類對象,直接通過"new 外部類類名.內部類類名()"
局部內部類
定義在外部類的方法內部,作用範圍:從定義開始--所在的代碼塊結束
不僅可以訪問外部類的私有成員,還可以訪問外部類的局部常量 (final)
匿名內部類
特殊的局部內部類
1)繼承某個類或者實現某個接口
2)只會創建一個對象
不僅可以訪問外部類的私有成員,還可以訪問外部類的局部常量 (final)
無法定義構造方法!
不需要添加新的公開方法
JVM空間劃分:
堆空間(heap) : 對象
棧空間(stack) : 局部變量
代碼空間(code) : 常量池 靜態數據