91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

靜態(tài)方法不能調(diào)用非靜態(tài)方法和變量的原因

汽車玩家 ? 來源:今日頭條 ? 作者:Java的架構(gòu)師技術(shù) ? 2020-04-12 19:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這個(gè)可能很多人之前學(xué)習(xí)jvm的時(shí)候都會遇到,屬于一個(gè)小問題,寫這篇文章的原因是我在看java相關(guān)的面試題目中遇到的,因此順手總結(jié)一下:

一、例子

我們先看效果:

靜態(tài)方法不能調(diào)用非靜態(tài)方法和變量的原因

我們在靜態(tài)方法main中調(diào)用非靜態(tài)變量或者是方法都會報(bào)錯(cuò)。我們反過來看看:

靜態(tài)方法不能調(diào)用非靜態(tài)方法和變量的原因

反過來沒有一點(diǎn)問題,接下來我們解釋一下原因:

二、原因解釋

我們需要首先知道的是靜態(tài)方法和靜態(tài)變量是屬于某一個(gè)類,而不屬于類的對象。我們不直接講原因,先從jvm說起:

靜態(tài)方法不能調(diào)用非靜態(tài)方法和變量的原因

這是一張類加載的生命周期圖。

1、加載

”加載“是”類加機(jī)制”的第一個(gè)過程,在加載階段,虛擬機(jī)主要完成三件事:

(1)通過一個(gè)類的全限定名來獲取其定義的二進(jìn)制字節(jié)流

(2)將這個(gè)字節(jié)流所代表的的靜態(tài)存儲結(jié)構(gòu)轉(zhuǎn)化為方法區(qū)的運(yùn)行時(shí)數(shù)據(jù)結(jié)構(gòu)

(3)在堆中生成一個(gè)代表這個(gè)類的Class對象,作為方法區(qū)中這些數(shù)據(jù)的訪問入口。

注意此時(shí)會掃描到我們的代碼中是否有靜態(tài)變量或者是靜態(tài)方法等等這些靜態(tài)數(shù)據(jù)結(jié)構(gòu),還未分配內(nèi)存。

2、驗(yàn)證

驗(yàn)證的主要作用就是確保被加載的類的正確性。

3、準(zhǔn)備

準(zhǔn)備階段主要為類變量分配內(nèi)存并設(shè)置初始值。這些內(nèi)存都在方法區(qū)分配。注意此時(shí)就會為我們的類變量也就是靜態(tài)變量分配內(nèi)存,但是普通成員變量還沒。

4、解析

解析階段主要是虛擬機(jī)將常量池中的符號引用轉(zhuǎn)化為直接引用的過程。

5、初始化

這是類加載機(jī)制的最后一步,在這個(gè)階段,java程序代碼才開始真正執(zhí)行。我們知道,在準(zhǔn)備階段已經(jīng)為類變量賦過一次值。在初始化階端,程序員可以根據(jù)自己的需求來賦值了。初始化時(shí)候才會為我們的普通成員變量賦值。

寫到這答案已經(jīng)出來了,靜態(tài)方法是屬于類的,動(dòng)態(tài)方法屬于實(shí)例對象,在類加載的時(shí)候就會分配內(nèi)存,可以 通過類名直接去訪問,非靜態(tài)成員(變量和方法)屬于類的對象,所以只有該對象初始化之后才存在,然后通過類的對象去訪問。

也就是說如果我們在靜態(tài)方法中調(diào)用非靜態(tài)成員變量會超前,可能會調(diào)用了一個(gè)還未初始化的變量。因此編譯器會報(bào)錯(cuò)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2989

    瀏覽量

    109868
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    614

    瀏覽量

    28966
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    詳解ADC電路的靜態(tài)仿真和動(dòng)態(tài)仿真

    ADC電路主要存在靜態(tài)仿真和動(dòng)態(tài)仿真兩類仿真,針對兩種不同的仿真,我們存在不同的輸入信號和不同的數(shù)據(jù)采樣,因此靜態(tài)仿真和動(dòng)態(tài)仿真是完全不同的兩個(gè)概念,所以設(shè)置的參數(shù)不同。
    的頭像 發(fā)表于 06-05 10:19 ?821次閱讀
    詳解ADC電路的<b class='flag-5'>靜態(tài)</b>仿真和動(dòng)態(tài)仿真

    靜態(tài)路由和鏈路聚合的通信原理

    靜態(tài)路由和鏈路聚合的通信原理
    發(fā)表于 12-23 16:59 ?10次下載

    Linux環(huán)境變量配置方法

    Linux上環(huán)境變量配置分為設(shè)置永久變量和臨時(shí)變量兩種。環(huán)境變量設(shè)置方法同時(shí)要考慮環(huán)境Shell類型,不同類型的SHELL設(shè)置臨時(shí)
    的頭像 發(fā)表于 10-23 13:39 ?714次閱讀

    TPA3116靜態(tài)功耗靜態(tài)電流比較大是什么原因導(dǎo)致的?

    關(guān)于TPA3116靜態(tài)功耗大,在TI的論壇里面發(fā)現(xiàn)幾乎所有的電感發(fā)熱都是說是因?yàn)檩敵鯨C電路導(dǎo)致 1,想問一下這個(gè)靜態(tài)功耗靜態(tài)電流比較大是什么原因導(dǎo)致的? 2,除了LC電路會導(dǎo)致,
    發(fā)表于 10-12 08:35

    一種半動(dòng)態(tài)環(huán)境中的定位方法

    靜態(tài)環(huán)境中進(jìn)行地圖繪制和定位是機(jī)器人學(xué)的基本問題。之前的方法大多關(guān)注靜態(tài)和高度動(dòng)態(tài)的物體,但在半動(dòng)態(tài)環(huán)境中,如果不考慮低動(dòng)態(tài)物體(如停放的汽車和行人),可能會導(dǎo)致定位失敗。我們提出
    的頭像 發(fā)表于 09-30 14:40 ?577次閱讀
    一種半動(dòng)態(tài)環(huán)境中的定位<b class='flag-5'>方法</b>

    放大電路動(dòng)態(tài)分析的基本方法

    等效為線性電路的方法。這種方法的核心在于,當(dāng)晶體管在小信號(微變量)情況下工作時(shí),其在靜態(tài)工作點(diǎn)附近小范圍內(nèi)的特性曲線可以用直線近似代替,從而將其線性化。 具體步驟如下: 確定
    的頭像 發(fā)表于 09-23 10:31 ?2475次閱讀

    手機(jī)靜態(tài)獨(dú)享ip搭建方法,是如何操作的?

    手機(jī)靜態(tài)獨(dú)享IP的搭建主要涉及到選擇一個(gè)可靠的代理服務(wù)提供商,并從該服務(wù)商處獲取靜態(tài)獨(dú)享IP地址及其配置信息,然后在手機(jī)上進(jìn)行相應(yīng)的網(wǎng)絡(luò)設(shè)置。
    的頭像 發(fā)表于 09-13 09:41 ?1155次閱讀
    手機(jī)<b class='flag-5'>靜態(tài)</b>獨(dú)享ip搭建<b class='flag-5'>方法</b>,是如何操作的?

    Keil中變量不被初始化方法

    有些時(shí)候在我們的應(yīng)用過程中要求變量有連續(xù)性,或者現(xiàn)場保留,例如Bootloader跳轉(zhuǎn),某種原因的復(fù)位過程中我們有些關(guān)鍵變量不能被初始化,在不同的編譯環(huán)境下有不同的設(shè)置,本文就這個(gè)操作
    的頭像 發(fā)表于 08-30 11:47 ?1530次閱讀
    Keil中<b class='flag-5'>變量</b>不被初始化<b class='flag-5'>方法</b>

    嵌入式學(xué)習(xí)-靜態(tài)鏈接和動(dòng)態(tài)鏈接

    目標(biāo)文件,一般是以.so文件形式存在。GCC默認(rèn)是動(dòng)態(tài)鏈接不需要加參數(shù)。舉例子看一下動(dòng)態(tài)鏈接庫的使用方法,創(chuàng)建三個(gè)C語言文件:mymath.c、mymath.h、test.c。 通過兩個(gè)變量相加的方式來
    發(fā)表于 08-28 09:33

    靜態(tài)鏈接和動(dòng)態(tài)鏈接

    目標(biāo)文件,一般是以.so文件形式存在。GCC默認(rèn)是動(dòng)態(tài)鏈接不需要加參數(shù)。舉例子看一下動(dòng)態(tài)鏈接庫的使用方法,創(chuàng)建三個(gè)C語言文件:mymath.c、mymath.h、test.c。 通過兩個(gè)變量相加的方式來
    發(fā)表于 08-27 10:20

    變頻器靜態(tài)測試和動(dòng)態(tài)測試方法

    在變頻器的維護(hù)和故障診斷中,靜態(tài)測試和動(dòng)態(tài)測試是兩項(xiàng)不可或缺的步驟。這兩類測試為技術(shù)人員提供了判斷變頻器內(nèi)部組件健康狀況的依據(jù)。 一、靜態(tài)測試 1. 整流電路測試 靜態(tài)測試的第一步涉及對變頻器內(nèi)部
    的頭像 發(fā)表于 08-19 17:47 ?2675次閱讀

    為什么壓電傳感器不能測量靜態(tài)

    壓電傳感器是一種利用壓電效應(yīng)將機(jī)械能轉(zhuǎn)換為電能的傳感器。壓電效應(yīng)是指某些材料在受到機(jī)械應(yīng)力作用時(shí),會產(chǎn)生電荷或電壓的現(xiàn)象。然而,壓電傳感器在測量靜態(tài)量時(shí)存在一定的局限性,主要原因如下: 壓電效應(yīng)
    的頭像 發(fā)表于 08-19 14:22 ?3227次閱讀

    靜態(tài)工作點(diǎn)的高低對電路有什么影響

    靜態(tài)工作點(diǎn)(Q點(diǎn))是半導(dǎo)體器件在直流條件下的運(yùn)行狀態(tài),它對電路的性能和穩(wěn)定性有著重要的影響。在本文中,我們將介紹靜態(tài)工作點(diǎn)的高低對電路的影響,包括其對放大器性能、穩(wěn)定性、功耗、熱效應(yīng)等方面
    的頭像 發(fā)表于 08-06 15:38 ?3237次閱讀

    放大電路靜態(tài)工作點(diǎn)不穩(wěn)定的原因

    以下是關(guān)于放大電路靜態(tài)工作點(diǎn)不穩(wěn)定原因的分析: 引言 放大電路是電子系統(tǒng)中的關(guān)鍵組成部分,其主要功能是接收輸入信號并將其轉(zhuǎn)換為更大的電流或電壓信號。然而,放大電路的靜態(tài)工作點(diǎn)(Q點(diǎn))穩(wěn)定性對于電路
    的頭像 發(fā)表于 08-06 15:36 ?2821次閱讀

    XC8編譯器調(diào)用函數(shù)后局域變量值被改變是哪里出了問題?

    最近發(fā)現(xiàn)個(gè)問題,有個(gè)函數(shù)里邊調(diào)用別的函數(shù)后老出錯(cuò),查找程序沒有問題,經(jīng)過仿真后發(fā)現(xiàn)在調(diào)用一個(gè)子函數(shù)后有幾個(gè)局部變量值會發(fā)生改變,再分析原因,發(fā)現(xiàn)本函數(shù)的局部
    發(fā)表于 07-26 07:36
    主站蜘蛛池模板: 四虎永久网址在线观看 | 天天天色综合 | 2021国产精品自在拍在线播放 | 亚洲精品视频在线 | 亚洲国产一区二区三区在线观看 | japan高清视频乱xxxxx | 宅男69免费永久网站 | 夜夜夜爽bbbb性视频 | 亚洲午夜久久久久久噜噜噜 | 色香蕉在线 | 精品卡一卡二 卡四卡视频 精品噜噜噜噜久久久久久久久 | 91p0rn永久备用地址二 | 四虎永久免费网站免费观看 | 在线视频亚洲欧美 | 亚洲成人777 | 国产黄在线观看免费观看不卡 | 色爱综合网欧美 | 5月色婷婷| 特黄特色大片免费播放路01 | 日本免费不卡在线一区二区三区 | 加勒比日本道 | 717影院理论午夜伦八戒 | 99久久久免费精品免费 | 在线天堂bt种子资源 | 老司机狠狠k免费毛片 | 加勒比一本大道香蕉在线视频 | 给个网站可以在线观看你懂的 | 天天舔天天爱 | 天天天天添天天拍天天谢 | 久久国产精品永久免费网站 | 精品成人网 | 首页 亚洲 欧美 制服 丝腿 | 黄 色 免 费 网站在线观看 | 免费看一级片 | 亚洲国产欧美精品一区二区三区 | 成人免费aaaaa毛片 | 欧美精品高清在线xxxx | 国产黄色在线观看 | 波多野结衣久久国产精品 | 亚洲精品久久片久久 | 久久久xxx |