摘要:方法區存儲不變的東西類加載信息,靜態變量,字符串常量。通用分代垃圾回收基礎時只需要知道有這幾種方法即可四內存分析靜態變量,靜態方法,靜態初始化塊靜態變量與方法不需要具體的對象就可以調用用類名調用,靜態初始化塊后就會調用了。
一:面向對象與面向過程
籠統說,一個流程簡單一個復雜,面向過程好比開車上路,可以簡單羅列出幾個動作:上車,系安全帶,點火,出發;向過程好比造出一輛汽車,肯定不能從焊鐵做起,第一步是收集所需要的各個部分(對象),通過一定的規律與邏輯去操作對象完成最終的結果。
對象是實際的東西,類是對象的模板,對對象的抽象,對象就按照類所規定的模板去形成實際的對象。
面向對象三大原則: 封裝:因為我們不想向外部暴露我們的數據,因為如果我們的數據對外暴露的話,我們的數據如果在某個被他人調用的地方被修改我們是不可知的,所以有個封裝。你按我對外提供的接口進行操作,保證你不會對我對象內部的結構進行破壞。
繼承與多態:多態,就是多種形態。多態大致有兩種情況:
? 第一,假如,一個動物類,動物有一個run方法,我們用這個類描述動物的運動,然后有個貓,處于面向對象的相關聯思想,貓繼承自動物,然后貓不滿意這個方法,重寫了一個,貓的run的時候有一個叫的動作,不同對象,同一動作,最終執行的效果不同。
? 第二:有一個貓,這個貓的run是有參數的,調用了貓的run方法,貓開始跑,每小時20邁,然后我們再調用run方法,傳了一個魚給貓,貓吃了魚就更有動力,然后每小時30邁開始跑。同一個對象,同一個行為,傳遞的消息不同,最終執行的效果不同。
繼承與多態要一起理解,繼承是基礎,多態是擴展。因為對象之間會有重復的代碼,所以我們有了繼承,就像現實生活中子女繼承父母的資源一樣,但這種方法只能解決有關聯對象間的代碼重復問題。如果對象之間無關,解決代碼重復,我們需要依賴AOP。
多態是在繼承的基礎上實現的,多態實現的三個必要條件:
繼承
方法重寫(override)
父類引用指向子類對象,例如:Human human = new Man() ,new Man() 是一個子類對象,用一個父類引用human來指向子類對象。
棧內存,堆內存,方法區(隸屬于堆里,但是有必要多帶帶拉出來談)
棧內存:基本數據類型 ,結構大致為:變量名 :變量值 這樣的表格形式
棧是線程私有的,連續的,不同線程之間無法共享數據。
速度快
堆內存:堆是線程間共享的,區域比棧大,速度慢,不連續的
存儲對象(在棧里對象存儲的是一個地址,例如 張三:0X0001)對象張三具體的信息要去0X0001這塊內存塊里找。
方法區:存儲不變的東西:
類加載信息,靜態變量,字符串常量。也就是不依賴具體對象的信息。
三:垃圾回收算法入門(引用計數,引用可達,通用分代垃圾回收)這部分深入要去看一遍《深入理解java虛擬機》 引用計數法:每個對象有一個引用計數屬性,新增一個引用時計數加1,引用釋放時計數減1,計數為0時可以回收。此方法簡單,無法解決對象相互循環引用 的問題。(例如,)
引用可達:從GC Roots開始向下搜索,搜索所走過的路徑稱為引用鏈。當一個對象到GC Roots沒有任何引用鏈相連時,則證明此對象是不可用的。不可達對象。
通用分代垃圾回收:(基礎時只需要知道有這幾種方法即可) 四:內存分析靜態變量,靜態方法,靜態初始化塊靜態變量與方法不需要具體的對象就可以調用(用類名調用),靜態初始化塊new后就會調用了。
五:重寫Override返回值類型問題方法的重寫(override)要遵循兩同兩小一大的原則:(子類方法相對于父類方法)
1)兩同
1.1)方法名相同
1.2)方法參數列表相同
2)兩小
2.1)返回類型若為引用類型必須小于或等于父類的,若為基本類型或者void則必須相同
2.2)拋出的異常必須小于等于父類的
3)一大
子類方法的訪問權限要大于等于父類的
這個Java類必須具有一個無參的構造函數
屬性必須私有化。
私有化的屬性必須通過public類型的方法暴露給其它程序,并且方法的命名也必須遵守一定的命名規范。
for(int val:a)
{
System.out.println(val);
}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77686.html
摘要:是一個由寫的存儲系統。是一個開源的使用語言編寫遵守協議支持網絡可基于內存亦可持久化的日志型數據庫,并提供多種語言的。它通常被稱為數據結構服務器,因為值可以是字符串哈希列表集合和有序集合等類型。 REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統。Redis是一個開源的使用ANSI C語言編寫、遵...
摘要:是一個由寫的存儲系統。是一個開源的使用語言編寫遵守協議支持網絡可基于內存亦可持久化的日志型數據庫,并提供多種語言的。它通常被稱為數據結構服務器,因為值可以是字符串哈希列表集合和有序集合等類型。 REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統。Redis是一個開源的使用ANSI C語言編寫、遵...
摘要:操作之連接以及簡單操作下載對應的驅動包下載創建一個連接類連接主機地址端口號登錄密碼連接服務器權限認證連接完成會返回緩存鏈接錯誤查詢所有中的查詢所有的為通配符清除所有的中的是清除所有的的命令如果清理完成,會返回完整的代碼聲明對象測試地址端口密 Java操作Redis之連接以及簡單操作 1.下載對應的驅動包 下載 jedis.jar :https://mvnrepository.com/a...
摘要:我的是忙碌的一年,從年初備戰實習春招,年三十都在死磕源碼,三月份經歷了阿里五次面試,四月順利收到實習。因為我心理很清楚,我的目標是阿里。所以在收到阿里之后的那晚,我重新規劃了接下來的學習計劃,將我的短期目標更新成拿下阿里轉正。 我的2017是忙碌的一年,從年初備戰實習春招,年三十都在死磕JDK源碼,三月份經歷了阿里五次面試,四月順利收到實習offer。然后五月懷著忐忑的心情開始了螞蟻金...
閱讀 1537·2021-11-04 16:10
閱讀 2774·2021-09-30 09:48
閱讀 2839·2019-08-29 11:31
閱讀 1578·2019-08-28 18:22
閱讀 3225·2019-08-26 13:44
閱讀 1319·2019-08-26 13:42
閱讀 2844·2019-08-26 10:20
閱讀 754·2019-08-23 17:00