基本資料型別與引用資料型別,及記憶體分配
1.型別(沒有string)
八種基本資料型別分別是:int、short、float、double、long、boolean、byte、char;預設值與型別有關它們的封裝類分別是:Integer、Short、Float、Double、Long、Boolean、Byte、Character。引用資料型別預設為null
基本型別值:儲存在棧記憶體中的簡單資料段,即這種值完全儲存在記憶體中的一個位置。
引用型別值:變數在棧中僅僅是儲存引用型別變數的地址,而其本身則儲存在堆中。
對基本資料型別封裝(wrapper類)之後,封裝類可以有方法和屬性,然後就可以利用這些方法和屬性來處理資料,比如Ingeter對象中有parseInt(String s),可以把字串轉換為int型別等。我們都知道有些型別的資料會有預設值,基本資料型別跟封裝型別的預設值是不一樣的,比如int i ,如果不賦值i預設為0;但Integer j ,如果不賦值,則j 為null;因為封裝類產生的是物件,物件預設值為null。
2.String類
java.lang.String類為final型別,即不可被繼承、修改。String類屬於特殊的引用型別,在棧空間引用,堆空間保持資料。
例:String a = "a"; // 假設 a 指向地址 0x0001
String 型別的變數通常有兩種賦值方式:一種直接賦值,例如String a = "hello world";另一種是用構造方法,例如 String b = new String ("hello world");
3.堆與棧
| 堆 | 棧 |
記憶體分配 | 動態 | 類載入中系統靜態分配 |
回收 | 回收機制 | 記憶體自動釋放 |
操作方式 | 連結串列 | 棧 |
申請方式 | New ,malloc,delet,free等 | 存放函式的引數值,區域性變數值,main, |
大小限制 | 向高地址擴充套件的資料結構,是不連續的記憶體區域 | Windows下,向低地址擴充套件的資料結構,是一塊連續記憶體區域,棧大小固定。 |
| 有記憶體地址值 |
|
| 實體是封裝資料,有預設值 |
|
| 一般是在堆的頭部用一個位元組存放堆的大小。堆中的具體內容有程式設計師安排。 | 棧:在函式呼叫時第一個進棧的是主函式中後的下一條指令(函式呼叫語句的下一條可執行語句)的地址然後是函式的各個引數,在大多數的C編譯器中,引數是由右往左入棧,然後是函式中的區域性變數。 注意: 靜態變數是不入棧的。當本次函式呼叫結束後,區域性變數先出棧,然後是引數,最後棧頂指標指向最開始存的地址,也就是主函式中的下一條指令,程式由該點繼續執行。 |
4.靜態儲存區:記憶體在程式編譯的時候就已經分配好,這塊記憶體在程式的整個執行期間都存在。它主要存放靜態資料、全域性資料和常量
5.基本資料型別和字串型別間轉換
基本資料型別轉成字串
a. 基本資料型別+“”
b.基本資料型別.toString(基本資料型別值),例Integer.toStirng(35);
字串轉基本資料型別
xxx a=Xxx.parseXxx(String) 例:int Integer.parseInt("123");
基本資料型別轉成字串
a. 基本資料型別+“”
b.基本資料型別.toString(基本資料型別值),例Integer.toStirng(35);
字串轉基本資料型別
xxx a=Xxx.parseXxx(String) 例:int Integer.parseInt("123");
boolean b=Boolean.parseBoolean("true");
非靜態方法
Integer i=new Integer("123");
int num=i.intValue();
相關文章
- Java中的基本資料型別與引用資料型別Java資料型別
- js資料型別之基本資料型別和引用資料型別JS資料型別
- 基本資料型別與API引用型別的使用資料型別API
- JAVA中基本資料型別和引用資料型別Java資料型別
- JavaScript筆記5:計時器、物件、基本資料型別、引用資料型別JavaScript筆記物件資料型別
- 基本資料型別與字串型別資料型別字串
- 小計:引用型別記憶體分配問題型別記憶體
- 區別值型別資料和引用型別資料型別
- 基本資料型別資料型別
- JavaScript - 基本型別與引用型別值JavaScript型別
- Java基本資料型別Java資料型別
- JavaScript基本資料型別JavaScript資料型別
- python基本資料型別Python資料型別
- 003基本資料型別資料型別
- MySQL基本資料型別MySql資料型別
- Java 基本資料型別Java資料型別
- Python基本資料型別:布林型別(Boolean)Python資料型別Boolean
- Java資料型別及型別轉換Java資料型別
- Redis資料型別基本操作Redis資料型別
- Java的基本資料型別Java資料型別
- java Atomic 基本資料型別Java資料型別
- 基本資料型別,for迴圈資料型別
- Python的基本資料型別Python資料型別
- (三)Python基本資料型別Python資料型別
- 3. 基本資料型別資料型別
- 基本資料型別之字串資料型別字串
- 基本資料型別轉化資料型別
- 資料型別: 資料型別有哪些?資料型別
- Python3學習(基本資料型別-集合-字典-基本資料型別總結)Python資料型別
- golang資料型別基本介紹與使用Golang資料型別
- js基本語法之 值型別(資料型別)(變數型別)JS資料型別變數
- js基本型別和引用型別區別JS型別
- Python基本資料型別之浮點型Python資料型別
- Java的基本型別和引用型別Java型別
- 簡單資料型別和引用資料型別對應棧和堆示意圖資料型別
- JAVA_資料型別介紹與基本資料型別之間的運算規則Java資料型別
- Python基本資料型別之整型Python資料型別
- [譯]揭祕基本資料型別資料型別