欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳談Java靜態(tài)動態(tài)的問題

 更新時間:2017年09月18日 10:00:47   投稿:jingxian  
下面小編就為大家?guī)硪黄斦凧ava靜態(tài)動態(tài)的問題。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Cannot make a static reference to the non-static field

靜態(tài)方法中不能引用非靜態(tài)成員變量及方法

class A {
  private int a = 1;

  public sttaic void main(String[] args){
    System.out.println(a);
  }
}

因為實例變量應該是具體對象的狀態(tài),應該先A a =  new A();然后System.out.println(a,a);

或者將變量改為static

No enclosing instance of type EventApp4 is accessible. Must qualify the allocation with an enclosing instance of type EventApp4 (e.g. x.new A() where x is an instance of EventApp4).

原因:內部類沒有用static限定,所以是動態(tài)的,而我在main函數中new了這個內部類。為什么這樣就出現問題了呢,因為靜態(tài)的方法以及變量在類加載之時就已經進入內存了,但是非靜態(tài)的方法和變量只能在實例化之后才會進入內存,所以在靜態(tài)方法中new非靜態(tài)的內部類就會出錯,因為此時這個內部類還不存在呢。反之,在動態(tài)方法中new靜態(tài)方法是不會出現錯誤的,原因同樣,靜態(tài)的在非靜態(tài)的之前就已經存在了。

從java的內存機制去分析,首先當你New 一個對象的時候,并不是先在堆中為對象開辟內存空間,而是先將類中的靜態(tài)方法(帶有static修飾的靜態(tài)函數)的代碼加載到一個叫做方法區(qū)的地方,然后再在堆內存中創(chuàng)建對象。所以說靜態(tài)方法會隨著類的加載而被加載。當你new一個對象時,該對象存在于對內存中,this關鍵字一般指該對象,但是如果沒有new對象,而是通過類名調用該類的靜態(tài)方法也可以。

遇到遇上問題時,有以下原則

1.在main中,使用靜態(tài)方法靜態(tài)變量靜態(tài)類,即將變量、方法都限定為static

2.在main中,實例化本類或其他類(要使用的類)

3.將main中的語句放進構造函數中,在main中實例化本類,因為構造函數中可以使用本類的引用this

以上這篇詳談Java靜態(tài)動態(tài)的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot整合SSO(single sign on)單點登錄

    SpringBoot整合SSO(single sign on)單點登錄

    這篇文章主要介紹了SpringBoot整合SSO(single sign on)單點登錄,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • JVM 方法調用之靜態(tài)分派(詳解)

    JVM 方法調用之靜態(tài)分派(詳解)

    下面小編就為大家?guī)硪黄狫VM 方法調用之靜態(tài)分派(詳解)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • springboot實現jar運行復制resources文件到指定的目錄(思路詳解)

    springboot實現jar運行復制resources文件到指定的目錄(思路詳解)

    這篇文章主要介紹了springboot實現jar運行復制resources文件到指定的目錄,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • Maven統(tǒng)一版本管理的實現

    Maven統(tǒng)一版本管理的實現

    在使用Maven多模塊結構工程時,配置版本是一個比較頭疼的事,本文主要介紹了Maven統(tǒng)一版本管理的實現,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • autoMapping和autoMappingBehavior的區(qū)別及說明

    autoMapping和autoMappingBehavior的區(qū)別及說明

    這篇文章主要介紹了autoMapping和autoMappingBehavior的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java實現Http工具類的封裝操作示例

    Java實現Http工具類的封裝操作示例

    這篇文章主要介紹了Java實現Http工具類的封裝操作,涉及java針對http請求與響應、遠程交互與字符串拼接等操作封裝技巧,需要的朋友可以參考下
    2018-01-01
  • Java詳解線上內存暴漲問題定位和解決方案

    Java詳解線上內存暴漲問題定位和解決方案

    本篇文章介紹了我在開發(fā)過程中遇到的線上內存暴漲的問題,以及定位問題原因和解決該問題的過程及思路,通讀本篇對大家的學習或工作具有一定的價值,需要的朋友可以參考下
    2021-10-10
  • Java Fluent Mybatis實戰(zhàn)之構建項目與代碼生成篇下

    Java Fluent Mybatis實戰(zhàn)之構建項目與代碼生成篇下

    Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。國內又以Mybatis用的多,基于mybatis上的增強框架,又有mybatis plus和TK mybatis等。今天我們介紹一個新的mybatis增強框架 fluent mybatis
    2021-10-10
  • 學習Java模擬實現百度文檔在線瀏覽

    學習Java模擬實現百度文檔在線瀏覽

    這片文章介紹了如何使用Java模擬實現百度文檔在線瀏覽,文章思路清晰,需要的朋友可以參考下
    2015-07-07
  • Java新手環(huán)境搭建 Tomcat安裝配置教程

    Java新手環(huán)境搭建 Tomcat安裝配置教程

    這篇文章主要為大家詳細介紹了Java新手環(huán)境搭建的相關資料,Tomcat安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評論