摘要:知識點總結內存分析知識點總結面向對象對象內存類是創建對象的模板對象的使用時通過引用進行的基本數據類型直接賦值,引用類型傳遞的是一個地址棧存放局部變量堆存放出來的對象方法區存放類的信息代碼變量常量池字符串常量等張三王武李四垃圾回收機制對象空間
Java知識點總結(內存分析)
@(Java知識點總結)[Java, Java面向對象]
[toc]
對象內存 類是創建對象的模板Java對象的使用時通過引用進行的
基本數據類型直接賦值,引用類型傳遞的是一個地址
棧:存放局部變量
堆:存放new出來的對象
方法區:存放類的信息(代碼) 、static變量、常量池(字符串常量)等...
Student s1 = new Student(); s1.name="張三"; s1.study(); s1.sayHello("王武"); Student s2 = new Student(); s2.age = 18; s2.name="李四";垃圾回收機制(Garbage Collection)
對象空間的分配:使用new關鍵字即可
對象空間的釋放:將對象賦值null即可。垃圾回收器將負責回收所有"不可達"對象的內存空間
要點:程序員無權調用垃圾回收器
程序員可以通過System.gc() 通知GC運行,但是Java規范并不能保證立即運行
finalize方法,是java提供程序員用來釋放對象,或資源的方法,但是盡量少用
一個對象沒有被引用,就會被Java垃圾回收機制回收
static內存在類中,用static聲明的成員變量為靜態變量,或者叫做:類屬性,類變量,從屬于類,給對象分配的內存里沒有
它為類的公用變量,屬于類,被該類的所有實例共享,在類被載入時被顯示初始化
對于該類的所有對象來說,static成員變量只有一份,被該類的所有對象共享
可以使用"對象.類屬性"來調用。不過一般都是用"類名.類屬性"
static變量置于方法區中
用static聲明的方法為靜態方法
類名.方法名調用
在調用該方法時,不會將對象的引用傳遞給它,所以在static方法中,不可訪問非static的成員
靜態初始化代碼塊
static{
...
}
如果希望加載后,對整個類進行某些初始化操作,可以使用static初始化塊
是在類初始化時執行,不是在創建對象時執行
靜態初始化塊中不能訪問非static成員
執行順序:上溯到Object類,先執行Object的靜態初始化塊,再向下執行子類的靜態初始化塊,直到我們的類的靜態初始化塊為止
多態內存多態性是OOP的一個重要特性,主要是用來實現動態聯編的,換句話說,就是程序的最終狀態只有在執行過程中才被決定而非在編譯期間就決定了。
這對于大型信息來說能提高系統的靈活性和擴展性
引用變量的兩種類型:
編譯時類型 (模糊一點,一般是一個父類)
由聲明時的類型決定
運行時類型(運行時,具體哪個子類就是哪個子類)
由實際對應的對象類型決定
多態的存在要有3個必要條件:
要有繼承
要有方法重寫
父類引用指向子類對象
子類如果重寫了父類中的方法,方法調用的時候與實際類類型相綁定(傳遞的隱式參數this指向的開辟內存空間的類的對象,而不是父類的對象)
public class Test { public static void testAnimalVoice(Animal c) { c.voice(); if (c instanceof Cat) { ((Cat) c).catchMouse(); } } public static void main(String[] args) { Animal a = new Cat(); Cat a2 = (Cat) a; testAnimalVoice(a); } } class Animal { void voice() { System.out.println("發出動物的叫聲"); } } class Cat extends Animal { private String name = "Tom"; void catchMouse() { //方法存在隱式參數this和super super.voice(); System.out.println(this.name+"抓老鼠"); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69144.html
摘要:然而,中依然有可能發生內存泄漏。所以你的安卓快速定位解決內存泄漏掘金昨天是個好日子,程序員的節日,在這里給所有的程序員送上一份遲到的祝福。應用內存泄漏的定位分析與解決策略掘金,大家好,我是。 Android 性能優化之巧用軟引用與弱引用優化內存使用 - Android - 掘金前言: 從事Android開發的同學都知道移動設備的內存使用是非常敏感的話題,今天我們來看下如何使用軟引用與弱...
摘要:導讀閱讀本文需要有足夠的時間,筆者會由淺到深帶你一步一步了解一個資深架構師所要掌握的各類知識點,你也可以按照文章中所列的知識體系對比自身,對自己進行查漏補缺,覺得本文對你有幫助的話,可以點贊關注一下。目錄一基礎篇二進階篇三高級篇四架構篇五擴 導讀:閱讀本文需要有足夠的時間,筆者會由淺到深帶你一步一步了解一個資深架構師所要掌握的各類知識點,你也可以按照文章中所列的知識體系對比自身,對自己...
摘要:哪吒社區技能樹打卡打卡貼函數式接口簡介領域優質創作者哪吒公眾號作者架構師奮斗者掃描主頁左側二維碼,加入群聊,一起學習一起進步歡迎點贊收藏留言前情提要無意間聽到領導們的談話,現在公司的現狀是碼農太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區Java技能樹打卡?【打卡貼 day2...
閱讀 3046·2023-04-26 02:27
閱讀 2763·2021-11-22 13:54
閱讀 902·2021-11-12 10:36
閱讀 3753·2021-10-09 09:44
閱讀 3178·2021-10-09 09:41
閱讀 1223·2021-09-22 10:02
閱讀 2833·2019-08-30 15:56
閱讀 3106·2019-08-30 11:02