java语言基础之代码块

代码块分类:

  1. 普通代码块
  2. 静态代码块
  3. 构造代码块
  4. 同步代码块

普通代码块:由{ } 花括号括起来的代码段。一般跟在方法名后面,作为方法体。应注意在代码块中声明变量,那么变量的生命周期作用域就是此括号括中的部分了。

静态代码块:是指在代码块前加上static。 他的主要作用是对静态变量进行修饰或操作,达到初始化的目的。当然,和所有的静态成员一样,他同样具有静态属性,随着类的加载而存在,不需要通过创建对象就可以用。

构造代码块:是用来扩展构造函数功能的代码段,主要进行对成员变量的初始化。也可以理解为,构造函数的前奏,他会和构造函数一起,在创建对象的时候,进行对成员变量的初始化操作。

同步代码块:是指关键字synchronized所修饰的代码块,用于多线程问题的解决。他的作用是在同一时刻的时候,只能有一个线程进行访问此代码块,从而解决了同一时刻多个线程同时访问共享变量造成的问题。


以上就是几种代码块的简要介绍,有个很奇特的问题:类中含有多种代码块时,创建对象的时候谁先运行

刚开始的时候我猜的是以代码块的代码顺序来执行。实际上是静态代码先执行,因为静态代码块在类创建的时候便已经存在,并执行初始化了,不需要等到创建对象。其次是构造代码块,就算把构造代码块写到构造函数下面,构造代码块也会先执行(所以我才会在上文说:构造代码块是构造函数的前奏),最后才是构造函数

class codelock {
     static
   {
//静态代码块
   }
   codeblock()
   {
//构造函数
   }

   {
//构造代码块
    }   
}

完结撒花~ 

第一次写技术博客,写的很粗糙<甚至不会贴代码...>,可能有些知识点也么有写到,各位看官可以补充一下,谢谢咯。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值