java 代码块的作用_4种Java代码块的作用讲解
4種Java代碼塊的作用講解
時(shí)間:2017-06-28?????來源:華清遠(yuǎn)見JAVA學(xué)院
今天華清Java學(xué)院小編要和大家分享的是Java代碼塊的作用,代碼塊是一種常見的代碼形式,他用大括號(hào)“{}”將多行代碼封裝在一起,形成一個(gè)獨(dú)立的代碼區(qū),這就構(gòu)成了代碼塊。代碼塊的格式如下:
java中的代碼塊按其位置劃分為四種:
Java代碼塊一:局部代碼塊
位置:局部位置(方法內(nèi)部)
作用:限定變量的生命周期,盡早釋放,節(jié)約內(nèi)存
調(diào)用:調(diào)用其所在的方法時(shí)執(zhí)行
舉例:
class exampleDemo{
public void example(){
{
int a = 10;
System.out.println(a);
}}}
Java代碼塊二: 構(gòu)造代碼塊
位置:類成員的位置,就是類中方法之外的位置
作用:把多個(gè)構(gòu)造方法共同的部分提取出來,共用構(gòu)造代碼塊
調(diào)用:每次調(diào)用構(gòu)造方法時(shí),都會(huì)優(yōu)先于構(gòu)造方法執(zhí)行,也就是每次new一個(gè)對象時(shí)自動(dòng)調(diào)用,對 對象的初始化
舉例:
class exampleDemo{
{
int a = 10;
System.out.println(a);
}
public void example(){
}}
Java代碼塊三: 靜態(tài)代碼塊
位置:類成員位置,用static修飾的代碼塊
作用:對類進(jìn)行一些初始化 只加載一次,當(dāng)new多個(gè)對象時(shí),只有第一次會(huì)調(diào)用靜態(tài)代碼塊,因?yàn)?#xff0c;靜態(tài)代碼塊 是屬于類的,所有對象共享一份
調(diào)用: new 一個(gè)對象時(shí)自動(dòng)調(diào)用
舉例:
class exampleDemo{
static {
int a = 10;
System.out.println(a);
}
public void example(){
}
}
執(zhí)行順序 靜態(tài)代碼塊 -----> 構(gòu)造代碼塊 -------> 構(gòu)造方法
Java代碼塊四: 同步代碼塊
位置:方法內(nèi)部
作用:達(dá)到線程安全的目的
調(diào)用: 線程調(diào)用該方法時(shí)
格式:
synchronized(obj){
// 需要同步執(zhí)行的代碼
}
obj 作為參數(shù)傳遞 相當(dāng)于同步代碼塊的鎖,可以是任意對象
同步代碼塊:
使用synchronized(obj){ } 裹起來的代碼塊,
在多線程環(huán)境下,對共享數(shù)據(jù)進(jìn)行讀寫操作是需要互斥進(jìn)行的,否則會(huì)導(dǎo)致數(shù)據(jù)的不一致性。常見的是synchronized用來修飾方法,其語義是任何線程進(jìn)入synchronized需要先取得對象鎖如果被占用了,則阻塞,實(shí)現(xiàn)了互斥訪問共享資源。而synchronized也是有代價(jià)的。一個(gè)常見的場景是,一個(gè)冗長的方法中,其實(shí)只有一小段代碼需要訪問共享資源,這時(shí)使用同步塊,就只將這小段代碼裹在synchronized block,既能夠?qū)崿F(xiàn)同步訪問,也能夠減少同步引入的開銷。 同步代碼塊須寫在方法中。
synchronized(obj){
//code
}
Java代碼塊的作用很多,以上介紹了Java中常見的4種代碼塊極其各自的作用,希望以上的總結(jié),對大家理解和使用Java代碼塊有所幫助。
總結(jié)
以上是生活随笔為你收集整理的java 代码块的作用_4种Java代码块的作用讲解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实验报告:抽象数据类型的表现和实现
- 下一篇: 新能源车的0530的故障码代表什么?