關於 static 靜態程式碼塊的一點東西
在Java中,類裝載器把一個類裝入Java虛擬機器中,要經過三個步驟來完成:裝載、連結和初始化,其中連結又可以分成校驗、準備和解析三步,除了解析外,其它步驟是嚴格按照順序完成的,各個步驟的主要工作如下:
裝載:查詢和匯入類或介面的二進位制資料;
連結:執行下面的校驗、準備和解析步驟,其中解析步驟是可以選擇的;
校驗:檢查匯入類或介面的二進位制資料的正確性;
準備:給類的靜態變數分配並初始化儲存空間;
解析:將符號引用轉成直接引用;
初始化:啟用類的靜態變數的初始化Java程式碼和靜態Java程式碼塊。
初始化類中屬性是靜態程式碼塊的常用用途,但只能使用一次。
[轉]http://www.blogjava.net/lazhgg/archive/2006/06/05/50550.html
相關推薦
關於 static 靜態程式碼塊的一點東西
靜態程式碼塊(static block ),不包含在任何方法體中當類被載入時,自動執行靜態程式碼塊,且只被執行一次經常用於類屬性的初始化。 這是網上通行的關於靜態程式碼塊的定義。 在Java中,類裝載器把一個類裝入Java虛擬機器中,要經過三個步驟來完成:裝載
static靜態程式碼塊中給靜態成員變數賦值坑
public class testdemo { private static final String name; static { name = "string"; try { // name="stri
static{}靜態程式碼塊與{}普通程式碼塊之間的區別
轉載自:http://blog.csdn.net/aledavvv/article/details/16920743相同點:都是在JVM載入類時且在構造方法執行之前執行,在類中都可以定義多個, 一般在程式碼塊中對一些static變數進行賦值。不同點:靜態程式碼塊在非靜態
static 靜態程式碼塊
/* 1、格式: static { 靜態程式碼塊中的執行語句 } 2、特點: 隨著類的載入而執行,只執行一次並優先於主函式。 用於給類進行初始化。 * * */ class StaticCodec { static { Syst
Java基礎---面向物件(面向物件,類,物件,匿名物件,封裝,建構函式,構造程式碼塊,this,static,main,幫助文件,靜態程式碼塊,單例)
一. 面向物件概念: 面向物件其實是一種思考的思想,早期思想是面向過程。 面向過程注重的是過程,過程所涉及的行為,也就是功能。 【例項】:面向過程: 1. 把冰箱開啟 2. 把大象放入 3. 冰箱關起來 面向物件: 開啟冰箱,儲存,關閉都是對冰箱的操作,是冰箱的行為
類中final static常量,靜態變數以及靜態程式碼塊相關問題
作者在學習過程中,遇到了有關靜態程式碼塊的現象,故寫此部落格記錄下來。首先先介紹下static概念當在定義類的時候,類中都會有相應的屬性和方法。而屬性和方法都是通過建立本類物件呼叫的。當在呼叫物件的某個方法時,這個方法沒有訪問到物件的特有資料時,方法建立這個物件有些多餘。可是
java中靜態程式碼塊、靜態方法、static關鍵字詳解
最近在準備面試,複習java基礎知識,對java中和static關鍵字相關的靜態方法、靜態程式碼塊、非靜態程式碼塊、靜態成員變數的用法進行了詳細的總結。 1. 靜態成員變數 宣告為static關鍵詞修飾的變數叫做靜態成員變數,也叫作全域性變數。被static修飾的成員變數和
java中靜態程式碼塊的用法 static用法詳解
(一)java 靜態程式碼塊 靜態方法區別一般情況下,如果有些程式碼必須在專案啟動的時候就執行的時候,需要使用靜態程式碼塊,這種程式碼是主動執行的;需要在專案啟動的時候就初始化,在不建立物件的情況下,其他程式來呼叫的時候,需要使用靜態方法,這種程式碼是被動執行的. 靜態方法在
static 靜態變數和靜態程式碼塊的執行順序
眾所周知 在android中static 修飾的會被稱之為 靜態常量,靜態變數, 靜態方法 ,還有就是靜態程式碼塊,用static{ // 程式碼塊 非static修飾的方法,變數,常量, 是不能再靜態程式碼塊中使用的 } 表示。 stati
靜態關鍵字static和靜態程式碼塊、區域性程式碼快、構造程式碼塊
一、靜態什麼時候使用? 1、靜態變數 分析物件中所具備的成員變數的值都相同時,而且這個成員不需要修飾,這時成員變數就可以被靜態修飾 2、靜態函式 該函式是否需要訪問物件中的特有資料 二、static關鍵字的特點:用於修飾成員(屬性和方法) 1、可以用類名直接呼
Java程式碼塊(構造塊、靜態程式碼塊、普通程式碼塊)
在Java中根據程式碼塊出現的位置以及關鍵字,分為下列四中程式碼塊: 1.普通程式碼塊 定義在方法中的程式碼塊 2.構造塊 定義在類中的程式碼塊,不加任何修飾符 { } 在物件產生時,優先於構造方法執行,有幾個物件產生,就呼叫幾次構造塊。 用於在構造方法執行前完成一些屬性的初始化操作 3
類載入時獲取類絕對路徑(靜態程式碼塊獲取類絕對路徑)
發生的情況: 線上專案CFCA簽章需要一個類似安全證書檔案路徑,在本地只需要獲取弄個靜態變數path="D:/*******"就可以,但是線上就需要從專案路徑下找到這個安全證書的位置.用下面的方法會報空指標異常 &
程式碼塊 靜態程式碼塊 區域性程式碼塊 構造程式碼塊
程式碼塊 程式碼演示 public class Teacher { public Teacher(){ // System.out.println("我是Teacher建構函式");
【Java基礎】程式碼塊,構造程式碼塊,靜態程式碼塊
程式碼塊 public class Demo { public static void main(String[] args){ { int a = 1; System.out.println(a); }
靜態屬性靜態程式碼塊載入順序
class A { private static String staticStr = getStaticStr(); private String str = getStr(); static { System.out.println("A的靜態塊"); } { Sy
java機制:類的載入詳解(靜態類,靜態變數,靜態方法,靜態程式碼塊,構造程式碼塊,成員變數,成員方法,父類...)
“程式碼編譯的結果從本地機器碼轉變為位元組碼,是儲存格式發展的一小步,卻是變成語言發展的一大步”,這句話出自《深入理解JAVA虛擬機器》 一.原始碼編譯 &n
java學習-繼承構造器、靜態程式碼塊、普通程式碼塊的執行順序
1、首先建立三個類 1.1 PPDemo.java public class PPDemo { static{ System.out.println("PPDemo static..."); } { System.ou
unity 靜態程式碼塊和構造方法執行時機和次數
using UnityEngine; using System.Collections; public class test : MonoBehaviour { void Start () { person p01 = new person(); person p
java中靜態變數,靜態程式碼塊,靜態方法,例項變數,匿名程式碼塊的載入順序
1. java中靜態變數,靜態程式碼塊,靜態方法,例項變數,匿名程式碼塊 在Java中,使用{}括起來的程式碼稱為程式碼塊,程式碼塊可以分為以下四種: (1)普通程式碼塊:就是類中方法的方法體 public void xxx(){ //code }
Java子類與父類中靜態程式碼塊、非靜態程式碼塊、建構函式的執行順序一覽表
子類Child繼承父類Parent Child child=new Child(); 執行順序如下: ①父類靜態程式碼塊>>②子類靜態程式碼塊>>③父類非靜態程式碼塊>>④父類建構函式>>⑤子類非靜態程式碼塊>>⑥子類