Java的數據類型及其變量
Java的數據類型分為基礎類型和非基礎類型,基礎類型有八種:int,short,long,char,boolean,byte,float,double。還有一種常用的非基礎類型:String。
1、 類型 所占字節 位數 值的範圍
int 4 32 -128~127
short 2 16 2^15~2^15-1
long 8 64 2^63~2^63-1
char 2 16 2^15~2^15-1
float 4 32 最小正非零值2^-149,最大正非零值(2-2^-23)·2^127
double 8 64 最小正非零值為2^-1074,最大正非零值為(2-2^-52)·2^1023
2、變量的命名規則與規範:
規則:變量的首字母只能是下劃線,字母,美元符號($),其余字母在前面的基礎上多了個數字。
規範:一般采取駝峰命名法,即首字母小寫,後面單詞的首字母大寫。
3、初步了解堆棧:
棧(操作系統):由操作系統自動分配釋放 ,存放函數的參數值,局部變量的值等。其操作方式類似於數據結構中的棧。
堆(操作系統): 一般由程序員分配釋放, 若程序員不釋放,程序結束時可能由OS回收,分配方式倒是類似於鏈表。
Java把內存分成兩種,一種叫做棧內存,一種叫做堆內存
在函數中定義的一些基本類型的變量和對象的引用變量都是在函數的棧內存中分配。當在一段代碼塊中定義一個變量時,java就在棧中為這個變量分配內存空間,當超過變量的作用域後,java會自動釋放掉為 該變量分配的內存空間,該內存空間可以立刻被另作他用。
堆內存用於存放由new創建的對象和數組。在堆中分配的內存,由java虛擬機自動垃圾回收器來管理。在堆中產生了一個數組或者對象後,還可以在棧中定義一個特殊的變量,這個變量的取值等於數組或者對象在堆內存中的首地址,在棧中的這個特殊的變量就變成了數組或者對象的引用變量,以後就可以在程序中使用棧內存中的引用變量來訪問堆中的數組或者對象,引用變量相當於為數組或者對象起的一個別名,或者代號。
引用變量是普通變量,定義時在棧中分配內存,引用變量在程序運行到作用域外釋放。而數組&對象本身在堆中分配,即使程序運行到使用new產生數組和對象的語句所在地代碼塊之外,數組和對象本身占用的堆內存也不會被釋放,數組和對象在沒有引用變量指向它的時候,才變成垃圾,不能再被使用,但是仍然占著內存,在隨後的一個不確定的時間被垃圾回收器釋放掉。這個也是java比較占內存的主要原因,實際上,棧中的變量指向堆內存中的變量,這就是 Java 中的指針!
Java的數據類型及其變量