java代碼塊是
① java 邏輯代碼塊是什麼
java邏輯代碼塊是指使用{}大括弧內的代碼片段,為了實現某種邏輯和主類區分開來的一段代碼。分為靜態代碼塊、普通代碼塊,示例如下:
/**
*靜態代碼塊先於構造器執行普通塊先於構造塊只執行一次
*凡是靜態的與對象無關,先於對象存在的;凡是靜態的都是共享的
*
*/
publicclassTest{
static{//靜態代碼塊
System.out.println("static");
}
{
System.out.println("普通塊2");
}
publicTest(){
System.out.println("構造器");
}
② java中詳解靜態代碼塊,構造代碼塊,構造方法。求簡單易懂的解釋
靜態代碼塊:只要一用到某個類,那麼這個類的靜態代碼塊就先執行,比如:
public class Dog(){
int i = 0;
static {
i = 1;
}
public Dog(){
i = 2;
}
}當你new 一個Dog()對象時,首先i=
1 會執行,然後才執行
public Dog(){}這個方法。
pulic
Dog() 是與類同名、沒有返回值的方法,也就是構造方法。
構造方法的作用是用來初始化一個對象的。比如你可以在裡面寫
i
=
2;
那麼當你 Dog
d
=
new
Dog()執行這段代碼的時候,是這樣的:
首先
i
=
0
;
然後執行static 靜態代碼塊,此時i=
1;
最後執行public
Dog();
i
=
2;
③ java中,代碼塊(初始化塊)和構造函數的區別是什麼
代碼塊有構造代碼塊和靜態代碼塊,靜態代碼塊是類載入的時候執行的,一共只執行一次,構造代碼塊是創建類對象的時候執行的,創建一個對象執行一次,代碼塊都是用於初始化的,而構造函數是用於創建對象的。
④ java中靜態代碼塊的作用跟用法
Java靜態代碼塊的作用:Java靜態代碼塊中的代碼會在類載入JVM時運行,且只被執行一次,也就是說這些代碼不需要實例化類就能夠被調用。一般情況下,如果有些代碼必須在項目啟動的時候就執行的時候,就需要使用靜態代碼塊。
Java靜態代碼塊的用法:一個類可以使用不包含在任何方法體中的靜態代碼塊,當類被載入時,靜態代碼塊被執行,且只被執行一次,靜態塊常用來執行類屬性的初始化。例如:
static
{
int
a=0;
}
⑤ 在java中出現「{}」代碼塊是什麼意思
static{...}是靜態塊,而只有{...}的是叫做構造塊。
靜態塊在一個程序裡面只執行一次;
而構造塊是,只要建立一個對象,構造代碼塊都會執行一次。
靜態塊優先於主方法的執行,靜態塊優先於構造快,然後是構造方法的執行,而且只執行一次!
所以輸出結果是:
static
block
instance1
block
instance2
⑥ java中的靜態代碼塊、代碼塊、構造器的執行順序是怎樣呢,這三者有什麼作用呢
先說執行順序:我們在new一個對象時,如果類還沒載入,就需要先將類載入到內存,此時就會執行靜態代碼塊,在創建對象時,是先執行代碼塊,然後執行構造器。所以靜態代碼塊、代碼塊、構造器的執行順序是:靜態代碼塊→代碼塊→構造器。
再說作用:靜態代碼塊是用於初始化類的(在載入類時執行,只執行一次),代碼塊是用於初始化對象的(在創建對象時執行,每次創建對象時都執行),構造器是用於創建對象的。
⑦ java構造代碼塊的作用是什麼
//構造塊:直接在類中定義且沒有加static關鍵字的代碼塊稱為{}構造代碼塊。構造代碼塊在創建對象時被調用,每次創建對象都會被調用,並且構造代碼塊的執行次序優先於類構造函數。
public class CodeBlock02
{
{
System.out.println("第一代碼塊");
}
public CodeBlock02(){
System.out.println("構造方法");
}
{
System.out.println("第二構造塊");
}
public static void main(String[] args){
new CodeBlock02();
new CodeBlock02();
new CodeBlock02();
}
}
/**
執行結果:
第一代碼塊
第二構造塊
構造方法
第一代碼塊
第二構造塊
構造方法
第一代碼塊
第二構造塊
構造方法*/
⑧ java代碼塊問題
1、寫在類里的代碼塊,是在類主動執行的。你在主動執行的代碼里寫定義。肯定有問題,你怎麼可以讓類去執行一個定義? 明顯是有問題的。
2、代碼塊里一般都是初始化的工作。
3、定義的方法是要被調用 的。被調用,跟主動執行是有區別的。所以編譯都不通過。
⑨ Java中,「一塊碼」和「代碼塊」分別是怎麼定義的
代碼塊由在一對花括弧之間的許多語句組成,main方法的全部主體是一個單一的代碼塊。下面再看一下這個main方法:
public static void main(String[] args)
{
System.out.println("Game Over, You lose!!!");
}
⑩ Java常見代碼塊的作用與區別
1. 局部代碼塊
作用在方法當中,作用是控制變數的生命周期:
public void show(){
{
System.out.println("局部代碼塊運行!");
}
}123456
在程序中當我們定義完成一個局部變數x之後,並且在接下來的代碼中,不想再用到它時,那麼就沒必要讓x在內存中繼續佔用空間。因此就有了局部代碼塊。
2. 構造代碼塊
作用在類的定義Body中,作用是給類的部分欄位統一初始化:
public class Apple {
private String size;
//構造代碼塊
{
System.out.println("構造代碼塊運行!");
size = "E";
}
}
12345678910
構造代碼塊與構造函數的區別是:構造代碼塊是給所有對象進行統一初始化,而構造函數是給對應的對象初始化,因為構造函數是可以多個的,運行哪個構造函數就會建立什麼樣的對象,但無論建立哪個對象,都會先執行相同的構造代碼塊。也就是說,構造代碼塊中定義的是不同對象共性的初始化內容。所以理所當然的,構造代碼塊在構造函數之前執行。
3. 靜態代碼塊
作用有兩個:
(1)給類的靜態變數賦值;
(2)聲明靜態變數;
作用在類的Body中,對類中的靜態變數初始化:
public class APP {
static int x, y; // 靜態變數
static {
x = 5; // 給靜態變數x賦值
}
public static void myMethod() {
y = x++ + ++x; // x++ 先使用x的值再加1;++x先加1再使用x的值
}
public static void main(String[] args) {
x--;
myMethod();
System.out.println(x + y + ++x);
}
}
輸出:23