1. 程式人生 > >Java static作用及載入順序

Java static作用及載入順序

在java中,static可以修飾成員變數、成員方法、程式碼塊、內部類。

  1. static修飾成員變數,可以達到全域性變數的效果(Java沒有全域性變數的概念),當一個類定義了static變數,其實就是申請一個記憶體地址,所有該類的物件共享這個靜態成員變數。       
靜態變數引用方式:類名.靜態變數,物件名.靜態變數。

這裡區分下:靜態變數和例項變數。靜態變數:用static修飾,屬於類,只要類被載入就會被分配記憶體空間;例項變數:沒有static修飾,只有物件被建立了,才會分配記憶體空間,每一個物件的例項變數互不相關,引用方式:只能物件.例項變數。

2.static修飾成員方法,static修飾的方法是類的方法,不需要建立物件就可以呼叫,而非靜態方法,只有物件唄建立了,才可以呼叫方法。

靜態方法不能使用this,super關鍵字,不能呼叫非static的成員變數,非static的成員方法,只能訪問static修飾的成員變數,成員方法。因為沒有static修飾的成員變數,成員方法,這個類的物件還沒被建立,即使建立了也無法確定是哪個物件的。

4.static修飾內部類,這樣可以不依賴與外部類例項物件而被例項化,而通常的內部類需要外部類例項化後才能例項化。靜態內部類不能與外部類有相同的類名,不能訪問外部類的成員變數,只能訪問外部類的static成員變數和static方法(包括外部類的私有)。例項內部類格式:Outer.Inner name = new Outer.Innner();

Java初始化,載入順序:父類靜態成員變數,父類靜態程式碼塊,子類靜態成員變數,子類靜態程式碼塊,父類非靜態成員變數,父類非靜態程式碼塊,父類建構函式,子類非靜態成員變數,子類非靜態程式碼塊,子類建構函式

相關推薦

Java static作用載入順序

在java中,static可以修飾成員變數、成員方法、程式碼塊、內部類。 static修飾成員變數,可以達到全域性變數的效果(Java沒有全域性變數的概念),當一個類定義了static變數,其實就是

Javastatic作用用法詳解

1.1概述:      static是靜態修飾符,什麼叫靜態修飾符呢?大家都知道,在程式中任何變數或者程式碼都是在編譯時由系統自動分配記憶體來儲存的,而所謂靜態就是指在編譯後所分配的記憶體會一直存在,直到程式退出記憶體才會釋放這個空間,也就是隻要程式在執行,那麼這塊記憶體就

java 中ClassLoader 的載入順序

原文引自:http://www.blogjava.net/lhulcn618/archive/2006/05/25/48230.html 當JVM(Java虛擬機器)啟動時,會形成由三個類載入器組成的初始類載入器層次結構:        

web.xml中context-param,listener等作用載入過程

<context-param>的作用: web.xml的配置中<context-param>配置作用(可在listener和servlet中使用,而 ContextLoaderListener及contextConfigLocation則由spri

java複習一 ——java web專案啟動載入順序

 web.xml載入過程(步驟):        1.啟動WEB專案的時候,容器(如:Tomcat)會去讀它的配置檔案web.xml.讀兩個節點:       <listener></listener> 和 <context-param&g

java static作用使用場景

java static的作用及使用場景 一、概述 static是靜態修飾符,修飾的靜態成員儲存在全域性區(靜態區),與全域性變數儲存在一起,在編譯後所分配的記憶體會一直存在,直到程式退出記憶體才會釋放這個空間。 二、作用 修飾成員變數(靜態變數) 靜態成員屬於類,

JAVA關鍵字Static作用 特點 利弊建立時機 成員變數和靜態變數 Static修飾成員 修飾方法 修飾塊(靜態快)

(1)Static關鍵字修飾符 可以修飾成員(成員屬性 成員方法)(2)Static修飾成員的特點a 生命週期長 跟類相同b 用Static修飾的變數 所有物件共享c Static修飾變數 可以通過物件(.)點的形式呼叫 還可以通過類名(.)點方法呼叫(3)Static建立時

javastatic修飾符的程式碼的載入順序

1:首先載入被final static 修飾的原始資料型別的資料成員(若是其他型別的物件,包括原始資料型別的類包裝器,如Integer,也排在第3載入)。 2:其次載入處於static塊中的程式碼塊。 3:最後才是載入只被static修飾的資料成員。 測試例項: pack

Javastatic作用何時執行

一個類的執行,JVM做會以下幾件事情 1、類裝載 2、連結 3、初始化 4、例項化。初始化階段做的工作就是是初始化靜態變數,靜態程式碼快和執行靜態方法的工作。所以,當Class.forName(類名,true,類物件.getClass().getClassLoader())中的true為false的時候,

Javastatic關鍵字解析以及類載入順序例題

一.static關鍵字的用途 在《Java程式設計思想》P86頁有這樣一段話:   “static方法就是沒有this的方法。在static方法內部不能呼叫非靜態方法,反過來是可以的。而且可以在沒有建立任何物件的前提下,僅僅通過類本身來呼叫static方法

Java中類方法的載入順序

1. 虛擬機器在首次載入Java類時,會對靜態程式碼塊、靜態成員變數、靜態方法進行一次初始化(靜態間按順序執行)。 2. 只有在呼叫new方法時才會建立類的例項。 3. 類例項建立過程:父子繼承關係,先父類再子類。父類的靜態->子類的靜態->父類的初始化塊-&g

java中System.getProperty()的作用使用

south pro name watermark sta tin fontsize sun copyto Java中給我們提供了System.getProperty()這個函數,這個函數可以獲取到Java JVM以及操作系統的一些參數,可以供程序判斷等。 System.ge

classpath、path、JAVA_HOME的作用JAVA環境變量配置

imp win 環境變量 root codec 沒有 ado 步驟 環境 CLASSPATH是什麽?它的作用是什麽? 它是javac編譯器的一個環境變量。它的作用與import、package關鍵字有關。當你寫下improt java.util.*時,編譯器面對import

java關鍵字 volatile的作用使用說明

緩存 image 串行 最終 有序性 不能 重排序 設計 語義 先來看看這個關鍵字是什麽意思:volatile [?v?l?ta?l] adj. 易變的,不穩定的; 從翻譯上來看,volatile表示這個關鍵字是極易發生改變的。volatile是java語言中,最輕量級的

Java原始碼各個程式碼塊的載入順序

類第一次載入時回載入靜態成員、靜態程式碼塊、成員變數、構造程式碼塊、構造方法,下面通過輸出顯示在類載入時以上成員的載入順序。 <span style="font-size:14px;">public class Test1 { public static void main(

java 程式碼載入順序

例子: class X{      Y y= new Y();    

java中 this() 和super()的作用用法

原文地址:http://www.cnblogs.com/hasse/p/5023392.html 一、This   Java關鍵字this只能用於方法體中。this只能在類中的非靜態方法中使用,靜態方法和靜態的程式碼塊中絕對不能出現this,並且this只和特定的物件關聯,而不和類關聯,同一個類的不同物件

JAVA方法載入順序

類載入機制: 類載入器的任務就是根據一個類的全限定名來讀取次類的二進位制位元組流到JVM轉換成 java.lang,class類 類載入過程:載入、驗證、準備、解析和初始化。 雙親委託模型(確保載入的唯一性):當類收到載入請求時,它首先不會嘗試載入這個類, 而是把請求委託給父類載入器執行

Java——static靜態塊的執行順序

 在學習類的載入順序的時候,static塊,即靜態塊的執行順序是一個重點。在面試的時候這一塊也是重點區域,所以需要深入地瞭解靜態塊。 今天就來認識一下static塊到底有什麼樣的特性,使得眾多公司面試時都繞不開這一關。 我們先來了解一下靜態塊是什麼: static程式碼塊也叫靜

java中靜態變數,靜態程式碼塊,靜態方法,例項變數,匿名程式碼塊的載入順序

1. java中靜態變數,靜態程式碼塊,靜態方法,例項變數,匿名程式碼塊 在Java中,使用{}括起來的程式碼稱為程式碼塊,程式碼塊可以分為以下四種: (1)普通程式碼塊:就是類中方法的方法體 public void xxx(){ //code }