成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

java中靜態(tài)方法和非靜態(tài)方法有區(qū)別嗎-創(chuàng)新互聯(lián)

java中靜態(tài)方法和非靜態(tài)方法有區(qū)別嗎?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

站在用戶的角度思考問題,與客戶深入溝通,找到商都網(wǎng)站設(shè)計與商都網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋商都地區(qū)。

1、靜態(tài)方法(static method)

與靜態(tài)成員變量一樣,屬于類本身,在類裝載的時候被裝載到內(nèi)存中,不自動進(jìn)行銷毀,會一直存在內(nèi)存中,直到JVM關(guān)閉;

2、非靜態(tài)方法(non-static method)

又稱實(shí)例化方法,屬于實(shí)例對象,實(shí)例化之后才會分配內(nèi)存,必須通過類的實(shí)例來引用,當(dāng)實(shí)例對象被JVM回收之后,也跟著消失

靜態(tài)方法和實(shí)例方法的區(qū)別

1.生命周期

靜態(tài)方法的生命周期從進(jìn)程創(chuàng)建時就開始,一直到進(jìn)程結(jié)束,所以說靜態(tài)方法是全局的,貫穿整個進(jìn)程

實(shí)例方法的生命周期,從實(shí)例化對象開始,一直到實(shí)例化對象被注銷回收之后結(jié)束

所以實(shí)例方法的生命周期是短于靜態(tài)方法的生命周期,這也是實(shí)例方法中不能調(diào)用靜態(tài)方法的原因

2.調(diào)用方式

在外部調(diào)用靜態(tài)方法時,可以使用  “類名.方法名”的方式,也可以使用“對象.方法名”的方式,也就是說調(diào)用靜態(tài)方法時無需創(chuàng)建對象

實(shí)例方法只能使用“對象.方法名的方式”

//-----------hasStaticMethod.java-----------------
public class hasStaticMethod{
//定義一個靜態(tài)方法
public static void callMe(){
  System.out.println("This is a static method.");
}
}

下面這個程序使用兩種形式來調(diào)用靜態(tài)方法。

//-----------invokeStaticMethod.java-----------------
public class invokeStaticMethod{
  public static void main(String args[]){
  hasStaticMethod.callMe(); //不創(chuàng)建對象,直接調(diào)用靜態(tài)方法 
  hasStaticMethod oa = new hasStaticMethod();  //創(chuàng)建一個對象
  oa.callMe();   //利用對象來調(diào)用靜態(tài)方法
}
}

3.訪問限制

靜態(tài)方法在訪問本類的成員時,只允許訪問靜態(tài)成員(即靜態(tài)變量和靜態(tài)方法),而不允許訪問實(shí)例成員變量和實(shí)例方法;而實(shí)例方法則無此限制

實(shí)例成員變量是屬于某個對象的,在靜態(tài)方法執(zhí)行時,并不一定存在該對象;同理,如果允許靜態(tài)方法訪問實(shí)例成員方法,就間接的可以訪問實(shí)例成員變量,所以也不能訪問實(shí)例成員方法;基于同樣的道理,靜態(tài)方法中也不能使用關(guān)鍵字this

//-----------accessMember.java-----------------
class accessMember{
private static int sa; //定義一個靜態(tài)成員變量
private int ia; //定義一個實(shí)例成員變量
//下面定義一個靜態(tài)方法
static void statMethod(){
  int i = 0;  //正確,可以有自己的局部變量sa = 10;  
  //正確,靜態(tài)方法可以使用靜態(tài)變量
  otherStat(); 
  //正確,可以調(diào)用靜態(tài)方法
  ia = 20;  //錯誤,不能使用實(shí)例變量
  insMethod(); //錯誤,不能調(diào)用實(shí)例方法
}
static void otherStat(){} 
//下面定義一個實(shí)例方法 
void insMethod(){
  int i = 0;  //正確,可以有自己的局部變量
  sa = 15;  //正確,可以使用靜態(tài)變量
  ia = 30;  //正確,可以使用實(shí)例變量
  statMethod();  //正確,可以調(diào)用靜態(tài)方法
}
}

4.執(zhí)行順序

當(dāng)一個class文件被ClassLoader load進(jìn)入JVM之后,方法指令保存在Stack中,此時Heap區(qū)并沒有數(shù)據(jù)。然后程序技術(shù)器開始執(zhí)行指令,如果是靜態(tài)方法,直接依次執(zhí)行指令代碼,當(dāng)然此時指令代碼是不能訪問Heapshuju數(shù)據(jù)區(qū)的;如果是實(shí)例方法(實(shí)例方法有一個隱含的傳入?yún)?shù),該參數(shù)是JVM給它的,這個參數(shù)就是實(shí)例對象在Stack中的內(nèi)存地址,因此實(shí)例方法才可以找到在Heap中屬于自己的數(shù)據(jù)),則在調(diào)用前必須實(shí)例化該對象,在Heap中分配數(shù)據(jù),并將Stack中的內(nèi)存指針通過JVM的隱含參數(shù)傳給實(shí)例方法。若不實(shí)例化直接調(diào)用,由于隱含參數(shù)沒有值,會報錯。

關(guān)于java中靜態(tài)方法和非靜態(tài)方法有區(qū)別嗎問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道了解更多相關(guān)知識。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站欄目:java中靜態(tài)方法和非靜態(tài)方法有區(qū)別嗎-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://jinyejixie.com/article32/gphsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作手機(jī)網(wǎng)站建設(shè)、網(wǎng)站制作域名注冊、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計
舒兰市| 仁化县| 六安市| 工布江达县| 织金县| 桂阳县| 梁山县| 武安市| 六枝特区| 长阳| 通海县| 聊城市| 巴马| 梁山县| 长阳| 旌德县| 沙坪坝区| 突泉县| 桑植县| 库尔勒市| 建瓯市| 永顺县| 平乡县| 蕲春县| 柳州市| 榕江县| 福海县| 贺兰县| 聂荣县| 雷波县| 武山县| 沙河市| 买车| 石河子市| 民丰县| 晋宁县| 高青县| 襄汾县| 于田县| 崇义县| 宝坻区|