黑马程序员技术交流社区

标题: Staric静态代码块 [打印本页]

作者: 杨旭    时间: 2011-12-23 09:58
标题: Staric静态代码块
本帖最后由 杨旭 于 2011-12-23 12:58 编辑
  1. static{

  2. }
复制代码
是静态代码块,但是有什么用?什么时候用?
作者: 胡遇潮    时间: 2011-12-23 10:03
有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块, 初始化赋值;
静态代码块是自动执行的;
静态方法是被调用的时候才执行的.

作用:静态代码块可用来初始化一些项目最常用的变量或对象;

作者: 于汝国    时间: 2011-12-23 10:07
静态代码块只在类声明时执行,类实例化时将不再调用,它不像静态方法能被重复调用。当你只希望某段代码在程序开始时执行一次,以后就不再执行了,就可以使用静态代码块来实现。
静态块有时还是很有必要的。特别在一些数据占用内存空间较大,程序经常用到,又是该类所有实例共享的,又需要通过代码来生成时,如可以的话,尽量用之。其实它相当于静态变量,只不过它需要用代码生成。
构造函数在类实例化时,静态方法在调用时都会为这些数据另外开辟空间,变样就浪费了内存空间,因为这些数据是该类所有实例共享的。
作者: 陈帅雷    时间: 2011-12-23 10:08
在这个类第一次被调用或实例化的时候就会被执行。 静态代码块只会执行一次,一般会用来初始化一些值,并且在所有对象中全局共享
类装载步骤
   在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载、链接和初始化,其中链接又可以分成校验、准备和解析三步,除了解析外,其它步骤是严格按照顺序完成的,各个步骤的主要工作如下:
装载:查找和导入类或接口的二进制数据;
链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的;
校验:检查导入类或接口的二进制数据的正确性;
准备:给类的静态变量分配并初始化存储空间;
解析:将符号引用转成直接引用;
初始化:激活类的静态变量的初始化Java代码和静态Java代码块。
初始化类中属性是静态代码块的常用用途,但只能使用一次。

作者: 黑马巩伟伟    时间: 2011-12-23 12:34
静态块主要是在main方法执行之前就执行一次,并且在整个
程序的执行过程只执行一次。主要是避免有些重复功能的代码浪费资源。

作者: 杨旭    时间: 2011-12-23 12:57
谢谢大家,明白了
~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2