1. 程式人生 > >java中靜態代碼塊(static{...}),局部代碼塊(方法中{...}),構造代碼塊(類中{...})區別。

java中靜態代碼塊(static{...}),局部代碼塊(方法中{...}),構造代碼塊(類中{...})區別。

一個 什麽 控制 class 加載 我們 所有 變量 統一初始化

1、局部代碼塊:

  格式:在方法中{局部代碼塊執行語句}

  局部代碼塊,又叫普通代碼塊。它是作用在方法中的代碼塊。

  作用:是控制變量的生命周期。

  在程序中當我們定義完成一個局部變量x之後,並且在接下來的代碼中,不想再用到它時,那麽就沒必要讓x在內存中繼續占用空間。因此就有了局部代碼塊。

2、構造代碼塊:

格式:在類中{構造代碼塊執行語句}

作用:就是給所有對象進行初始化。

註意幾點:

1)每次創建對象他都會執行。

2)構造代碼快是優於構造函數執行。

3)構造代碼塊與構造函數的區別是:構造代碼塊是給所有對象進行統一初始化,而構造函數是給對應的對象初始化,

因為構造函數是可以多個的,運行哪個構造函數就會建立什麽樣的對象,但無論建立哪個對象,都會先執行相同的構造代碼塊。

也就是說,構造代碼塊中定義的是不同對象共性的初始化內容。

3、靜態代碼塊:

格式:在類中static{靜態代碼塊執行語句}

作用:就是對類進行初始化。

  當類進入內存時,首先進行靜態代碼加載,例如靜態代碼塊,用static 修飾的變量,函數等。靜態代碼塊用於初始化類。構造函數是對對象進行初始化,

  而靜態代碼塊可以對類進行初始化,就如在靜態代碼塊中把靜態變量 num 修改他的值。而且在一些不需要對類實例化的場合,靜態代碼塊也可以非常有用。

java中靜態代碼塊(static{...}),局部代碼塊(方法中{...}),構造代碼塊(類中{...})區別。