當前位置:首頁 » 編程語言 » 靜態初始化java

靜態初始化java

發布時間: 2022-11-20 11:37:51

java 靜態數據初始化

從主類public class StaticInitialization 中的開始main函數開始。
在初始化對象時,開始 靜態數據的初始化
譬如:
執行完
public class StaticInitialization {
public static void main(String[] args) {
System.out.println(
"Creating new Cupboard() in main");
後,然後
執行new Cupboard();這段代碼
這時,程序就會跳到Cupboard這個類中,當實例化Cupboard這個類的對象的時候,Cupboard這個類的裡面靜態數據也同時被處理。

剩下的代碼都一樣。

⑵ 關於Java顯示的靜態初始化

static{ cup1=new Cup(1);cup2=new Cup(2);} 這個就是java里的靜態成員初始化語法。不是方法,只是給靜態成員數據賦初始值。

Cup.cup1.f(99)可以看成兩部分:
x = Cup.cup1 這是取出Cup類中的靜態成員數據cup1,這里稱之x

x.f(99) 這是調用對象x的成員函數f

⑶ Java靜態初始化塊的問題

1、首先打開電腦上的eclipse軟體,配置好jdk的,如下圖所示。

⑷ 關於JAVA中static初始化問題

java虛擬機在首次主動使用類型的時候才會初始化(lazy-load的形式),主動使用包括以下6種情況

1. 創建類的實例
2. 調用類的靜態方法
3. 操作類的非常量靜態欄位(非final static)
4. 調用特定的反射方法
5. 初始化一個類的子類
6. 指定一個類為虛擬機啟動時的初始化類

所以說,你必須主動使用到這個類,這個類才會被初始化,這就能解釋第一次有輸出,而第二次沒有輸出的情況了

另外,值得一提的是,載入和初始化不是一個概念,比如,在main函數中寫
Table a = null;
一樣不會有輸出。。Table類被載入了但是沒有被初始化,因為這不屬於上述6種「主動使用」情況之一,不信試試。。。

⑸ java 靜態變數初始化為什麼要用靜態初始化

在java中用final修飾符修飾的變數表示不可以被二次賦值,且系統不會給其賦默認值。 如果單純只是final變數,可以在定義的時候就賦默認值,也可以在構造方法中賦默認值。 但是如果同時用final static 修飾變數,因為static變數屬於類而不屬於對象,且在調用構造方法之前static 變數就已經被系統給賦默認值。而相應的final static 變數就只能在定義的時候就初始化,否則既無法在構造方法中初始化,系統又不會賦默認值,相當於這個變數被定義出來是毫無用處的。 因此java中final static變數必須初始化

⑹ java數組靜態初始化區別(內存方面)

我沒太明白你說的靜態數組初始化是什麼意思。
正常靜態數組變涼
static int[] a = {1,2,3,4,5};
靜態存儲的是這個a這個變數,這個變數再進程運行沒有退出之前都存在,不回被垃圾收集齊回收。
1,2,3,4,5這些毫無疑問是存放在堆中的。這樣如果a這個變數沒有指向其他的,1,2,3,4,5都不會被收集。
普通的變數
int b[] = {1,2,3,4,5}
這個變數,離開了作用域,並且沒有被其他類引用的話,下一次垃圾回收來臨時被判斷為鏈路不可達,被回收資源,就訪問不到了。

⑺ java中的靜態初始化和動態初始化

靜態初始化就是static,動態初始化就是new
所謂的靜態和動態是相對於程序運行是而言的,靜態是在程序編譯時就初始化好了的,動態初始化是在程序運行是才動態分配內存空間,
我覺得已經夠通俗的了

⑻ java 中什麼叫做靜態和非靜態。 還有什麼叫做靜態初始化和動態初始化。

靜態就是屬於類的,非靜態就是不屬於類的,屬於對象的
靜態初始化和動態初始化是創建數組的概念。
靜態初始化:創建數組時,程序員顯式地為數組中的元素賦初值,你不指定數組長度
動態初始化:創建數組時,由系統默認地為數組中的元素賦初值,你指定數組長度
比如:靜態初始化就是
int[]
a;
a
=
{1,2,3};
動態初始化:
int[]
a;
a
=
new
int[3];

⑼ 高級Java開發中什麼是靜態初始化器

靜態初始化器是由關鍵字static引導的一對大括弧括起的語句組。它的作用與類的構造函數有些相似,都用來完成初始化的工作,但是靜態初始化器與構造函數有三點根本的不同:
(1)構造函數是對每個新創建的對象初始化,而靜態初始化器是對每個類進行初始化;
(2)構造函數是在用new運算符產生新對象時由系統自動執行,而靜態初始化器則是在它所屬的類載入入內存時由系統調用運行的;
(3)不同於構造函數,靜態初始化器不是方法,沒有方法名、返回值和參數列表。
package com.text.java;
/**
* <p class="detail">
* 功能:靜態初始化器
* static{ 和 }之間的代碼被稱為靜態初始化器。它只有在第一次載入類時運行。
* 只有靜態變數才可以在靜態初始化器中進行訪問。
* 雖然創建了多個實例,但靜態初始化器只運行一次。
* </p>
* @ClassName: StaticUtil
* @version V1.0
* @date 2016-8-10
* @author dmw
*/
public class StaticUtil {
static int count;
static{
System.out.println("類初始化靜態載入++++");
System.out.println("載入次數"+count);
count++;
}

public static void main(String[] args) {
StaticUtil temp1=new StaticUtil();
StaticUtil temp2=new StaticUtil();
StaticUtil temp3=new StaticUtil();
// 輸出: 類初始化靜態載入++++
// 載入次數0
}
}

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:333
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:374
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:609
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:30
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:104
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:940
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:736
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:800
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:507
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:369