java代码块与构造函数

来源:互联网 发布:linux message日志分析 编辑:程序博客网 时间:2024/05/22 06:46
静态代码块、代码块、构造函数:
class StaticCode{
int num=9;
StaticCode(){
  Sstem.out.println("b");
}
static{ //静态代码块为类初始化
  System.out.println("a");
}
{ //对象初始化
  System.out.println("c"+this.num);
}
StaticCode(int x){//对应对象初始化
  Syste.out.println("d");
}
public static void show(){
System.out.println("show run");
}
}


class StaticCodeDemo{
public static void main(String[] args){
new StaticCode(4);
}
}


//打印结果为:a c9 d

1.构造函数用于为对应的对象初始化如成员变量

1.1java默认存在空构造函数,但是开发人员也可以重新写空构造函数,此时不在成为空构造函数而是自定义构造函数。

1.2 构造函数同样可以进行重载。

2.代码块有三种:普通代码块、构造代码块、静态代码块、同步代码块

2.1 普通代码块:直接在方法中出现{}成为普通代码块。

2.2 构造代码块:直接在类中定义的{}没有加static修饰的代码块称为构造代码块

且在创建对象时构造代码块优先构造方法执行。

2.3 静态代码块:当构造代码块使用static关键字修饰时成为静态代码块

同城用来为静态初始化。静态代码块优于主方法和构造方法执行,并且只执行一次。

2.4 同步代码块:多用于多线程中,如:

synchronized (lock) {
                       System.out.print("同步代码块");
                   }

使用了相同锁对象的同步代码块具有原子性,在进行执行的时候会持续的拥有 CPU 资源直到同步代码块执行完毕,要么继续持有 CPU 资源,

要么 CPU 切换到到另一个线程,这样保证了在执行一组代码的时候不会有其他线程插入执行。


参考资料:

1.黑马程序员java基础教程视频

2.风生水起博客—java的4种代码块http://www.cnblogs.com/end/archive/2012/12/21/2827554.html  

3.sunzn'Blog博客—Java编程下的同步代码块http://www.cnblogs.com/sunzn/archive/2013/02/13/2910895.html

0 0
原创粉丝点击