java日常總結基礎
java程式執行過程:
① javac編譯 把java檔案編譯成class檔案
②java執行 :執行class檔案
JDK JVM 和 JRE關係?
① JDK包含JRE,JRE包含JVM.
② JDK是java開發工具包 JRE是java執行環境 JVM是java虛擬機器,是java實現跨平臺最核心的功能
變數
區域性變數 :在方法內,生命週期和方法共存亡 -->使用之前需要手動初始化
例項變數(成員變數) 在類中 方法外生命週期和這個物件共存亡 -->系統自動初始化
靜態變數: 再類中 用static修飾的變數 從屬於類 -->系統自動初始化
物件和類的區別?
物件是具體的,類是抽象的,類是一個模板,可以幫助我們new物件
構造器?
① 構造器的名稱要和當前類名保持一致
② 構造器沒有返回值
③通過new來建立構造器
關於無參構造器的問題
①如果當前類沒有建立構造器,則系統會自動建立一個構造器
②如果當前類建立一個構造器,那麼系統就不會在建立構造器
③構造器的第一句總是super
識別符號
① 用字母(unicode字符集) ,下劃線,$開頭
② 不能是關鍵字
③ 其他部分可以是數字 ,字母,下劃線
面向物件的三大特徵
封裝
通過private protected default public 來實現方法的封裝
繼承
通過extends來實現繼承有倆個好處①程式碼重用性 ② 通過繼承對現實世界更好的建模
多型
三個必要的條件 通過方法的重寫 , 繼承 ,父類的引用指向子類
抽象類
① 包含抽象方法的類一定是抽象類 -->抽象方法 子類通過繼承抽象類 中子類必須實現抽象方法
② 抽象類可以有變數 , 方法 , 構造器 .
③ 抽象類不能被new
java記憶體機制
棧 用於存放區域性變數,不能被執行緒共享,儲存的空間連續,速度快
堆 : 用於存放new出來的物件,可以被多個執行緒共享,儲存的空間不連續,比較靈活
方法區 : 用於存放類物件的靜態變數,程式碼,字串常量等
可以被多個執行緒共享,儲存的空間不連續,比較靈活
面向物件像一個高層的角色,面向過程 相當於下面的工人一樣,面向物件的底層處理是按面向過程來進行處理的,二者缺一不可.
面向物件程式設計(OOP)的本質是以類的放式組織程式碼,以物件的方法,以物件的放式組織資料
物件 : 是具體的事物
類:是物件的抽象 抽象 abstract 是把物件的共同點取出來
面向物件思維 : OOA OOD 是先有類然後有物件 ,例如 根本都沒見過車 怎麼建立car這個物件
物件和類的關係 : 特殊到一般,具體到抽象
java 語言中除基本型別之外的變數型別都稱之為引用型別 (referce)
java中方法的傳遞都是 值傳遞
java常量池 存放的是字串常量,例如你的java類中所有用""引出來的字串都存放在常量池中