您的位置:首页 > 职场人生

黑马程序员----【javaSE基础】个人总结--代码块

2013-07-15 14:23 239 查看
------- android培训java培训、期待与您交流! ----------

1,局部代码块

局部代码块(定义在方法里)

作用:控制变量的生命周期;

在程序中,当我们已经使用完 x 后,并且在接下来的代码中,不会再用到x,那么就没必要让x 在内存中占用空间了,这用情况下,可以使用 局部代码块,将x及其所设计到的区域封装为局部代码块,他们在程序执行中顺序不变,只是在执行完成后消失。

public voidmethod(){

{

int x = 4;

System.out.println("x="+x);

}

}

这种写法开发并不常见,但是面试可能会出现,它的作用就是可以限定变量的生命周期.

2,构造代码块:(初始化块)

作用:它可以给所有对象进行初始化

存在于:类中。

定义在类里

{

System.out.println("我是初始化块")

}

括号里的是初始化块,这里面的代码在创建java对象时执行,而且在构造器之前执行!

其实初始化块就是构造器的补充,初始化块是不能接收任何参数的,定义的一些所有对象共有的属性、方法等内容时就可以用初始化块了初始化!!

好处是可以提高初始化块的复用,提高整个应用的可维护性。

当类中的构造方法以重载的形式存在时,并且有共同成员变量或共同的方法时,可以通过构造代码块对其进行初始化;这样可以减少代码的重复!

3,静态代码块:

作用:给类进行初始化。

当类中的方法都被静态了化,并且构造方法被private了,这时我们不能,在将这个类实例化,然而又想让类增加一些属性,就可以使用静态代码块

格式:

static{

静态代码块中的执行语句

}

特点:随着类的加载而执行,只执行一次并优先于主函数。 用于给类进行初始化。

Persong p =new Person("XX",XX);

这句话执行了:(对象初始化过程)

<1> 因为new用到了Person.class,所以会先找到Persong.class文件并加载到内存中

<2> 执行该类中的static代码块,如果有的话,给Person.class类进行初始化

<3> p定义函数中,那么在栈内存中开辟一个变量空间p。

<4> 在堆内存中给对象分配空间,并分配内存地址值

<5> 在堆内存中建立对象特有属性,并进行默认初始化

<6> 给对象中的属性进行显示初始化。

<7> 调用构造代码块对对象进行初始化。(执行类中的构造代码块)(6,7是和源码的顺序有关)

<8> 调用对应的构造函数进行对象初始化。对象初始化完毕。

<9> 将内存地址赋给栈内存中的p变量。让p变量指向该对象。

静态代码块和构造代码块的异同:

相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,

不同点:静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。

  静态代码块只在第一次new执行一次,之后不再执行,而构造代码块在每new一次就执行一次。

  非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行。

------- android培训java培训、期待与您交流! ----------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐