(一)Eclipse中的快捷鍵: ctrl+shift+f自動整理選擇的java代碼 alt+/ 生成無參構造器或者提升信息 alt+shift+s+o 生成帶參構造 ctrl+shift+o快速導入包 alt+shift+s+r tab+enter-->shift+tab+enter 快速生成ge ...
(一)Eclipse中的快捷鍵:
ctrl+shift+f自動整理選擇的java代碼
alt+/ 生成無參構造器或者提升信息
alt+shift+s+o 生成帶參構造
ctrl+shift+o快速導入包
alt+shift+s+r tab+enter-->shift+tab+enter 快速生成get set方法
ctrl+f11快速運行代碼
說明:快捷鍵可以快速幫我們生成代碼,減少開發的時間,提高效率,記住幾個主要的就可以,其他的可以在Eclipse的編輯器中右鍵滑鼠,在彈出的菜單項中選擇sourse,在它的子菜單項中選擇
(二)Java中數據類型
Java數據類型分為:基本數據類型和引用類型
基本數據類型分為:數值型 布爾型 字元型
引用類型:Class 介面 數組等(除了基本數據類型的都是引用類型)
(三 )Java中記憶體分析
1.首先記憶體分為2大部分:棧(局部變數都在棧裡面,空間連續)和堆(new關鍵字 出來的對象,空間不連續)
2.堆的話:分為普通的堆(存放new出來的對象)和方法區(類載入器載入到的類的代碼,static方法和變數,常量池(字元串常量)等)
3.首先我們先定義一個簡單的類:
說明:People類,有2個屬性,一個引用類型String,還有一個基本數據類型int,在構造器中初始化,構造器當然還是有返回值,返回的是這個對象地址,this關鍵字指向將要實例化的對象,this關鍵字和super關鍵字都是類中方法的隱式參數,可以在方法中直接使用,super關鍵字是指向它的直接父類對象的引用
4.在類中寫一個main方法,程式的入口:
首先類載入器會載入People類還有該類中用到的其他類,存放在堆中的方法區中,People p=new Peolpe();
說明:p是個局部變數存放在棧裡面,裡面存放的是4個位元組的空間地址。new People()表示在堆中以類的模板創建一個對象,由於是無參構造,它的成員變數,引用類型的就為null,基本數據類型的在某種意義下就是0。
在往下看
p.name=new String()和p.age=18在記憶體中的分析
說明:通過p引用找到堆裡面的對象,在找到它的String name屬性,讓它指向在堆中新new出來的字元串對象,而int age屬性,是直接存放18這個值,所以說,基本數據類型存值,引用類型存放空間地址,在說一說二位數組,看下麵代碼
畫出一下它的記憶體圖:
說明:首先的話,a指向堆裡面的有2個引用屬性的對象,然後該對象2個引用屬性分別指向另外2個數組,由於二位數組各個項沒有賦值,根據是int類型,預設值就為0,如果是引用類型,那麼就是null
5.當然還有方法,在new出來的對象中的普通方法,就是不帶static關鍵字的方法,它也有地址,指向方法區的類代碼中的該方法,實現調用,然後該方法中有參數的話,就會在棧中開闢一個空間存放該局部變數,若是基本數據類型的參數,就存放值,若是引用類型數據類型的參數就存放空間地址,然後通過該空間地址來找到它所指向的對象,來進行方法的操作
6.就是方法區中帶static的方法和變數,它們是從屬於類的,可以通過類名.直接調用該方法,不依賴對象
7.就是常量池中的字元串常量:舉個例子
說明:”我是字元串“就是在常量池中的字元串常量,畫出它的記憶體分析圖
畫出記憶體圖就知道了,str1==str2返回值為什麼為true,因為它們指向同一個地方,存放的空間地址是一樣,所以返回true
8.關於繼承的記憶體分析圖就不畫了,其實很簡單,在子類的構造器中預設有super()這一行代碼,調用父類的構造器,這就是為什麼在創建子類對象的時候,會先創建父類對象,如果調用了一個方法,在子類中沒有,就會去父類中找,使用屬性也是一樣
9.關於引用類型為null,當然不是為空,也是指向堆中的一個記憶體空間的。