2017-08-03spa
JAVAse對象
1:靜態變量和成員變量的區別:繼承
所屬不一樣:靜態變量屬於類,因此也稱爲類變量生命週期
成員變量屬於對象,也稱爲實例變量內存
內存中位置不一樣:靜態變量存儲餘方法區的靜態區io
成員變量存儲於堆內存class
內存出現時間不一樣:靜態變量隨着累的加載而加載,隨着累的消失而消失變量
成員變量隨着對象的建立而存在,隨着對象的消失而消失方法
調用不一樣:靜態變量能夠經過類名調用,也能夠經過對象調用static
成員變量只能經過對象名調用
2.成員變量和局部變量的區別:
在類中位置不一樣:成員變量:類中方法外
局部變量:方法內或方法聲明上
在內存中的位置不一樣:成員變量:堆內存
局部變量:棧內存
生命週期不一樣:成員變量:隨着對象的建立而存在,隨着對象的消失而消失
局部變量:隨着方法調用存在,隨着方法結束消失
初始化值不一樣:成員變量:有初始默認值
局部變量:沒有初始默認值
3.類的初始化過程:Student student = new Student ();
加載Studnet.class文件進內存
在棧內存爲student開闢內存
對學生對象的成員變量進行默認初始化
對學生對象的成員變量進行顯示初始化
經過構造方法對學生對象的成員變量賦值
學生對象初始化完畢,把對象地址賦值給s變量
4.代碼塊:
局部代碼塊:在方法中出現,限定變量聲明週期,及早釋放,提升內存利用率
靜態代碼塊:在類中方法外出現,並加上static修飾符,用於給類進行初始化,在加載類的時候就調用,而且執行一次
構造代碼塊:在類中方法外出現,多個構造方法中相同的相同的代碼存放在一塊兒,每次調用構造方法時執行一次,並在構造方法前執行
5.匿名對象:沒有名字的對象
做用:對象調用方法 ,僅僅一次的時候;做爲實際參數傳遞
6.面向對象基於面向過程:
面向對象的思想:做爲一個指揮者,把過程根據不一樣的功能進行封裝,須要用時進行調用,避免重複,容易修改
面向過程的思想:做爲一個參與者,參與每個過程和步奏並完成它
面向對象的特徵:封裝;繼承;多態
7.static:
隨着類的加載而加載
優先於對象存在
被類的全部對象共用(可跨類)
可經過類名調用