A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨旭 黑马帝   /  2011-12-23 09:58  /  2054 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨旭 于 2011-12-23 12:58 编辑
  1. static{

  2. }
复制代码
是静态代码块,但是有什么用?什么时候用?

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

5 个回复

倒序浏览
有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块, 初始化赋值;
静态代码块是自动执行的;
静态方法是被调用的时候才执行的.

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

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
静态代码块只在类声明时执行,类实例化时将不再调用,它不像静态方法能被重复调用。当你只希望某段代码在程序开始时执行一次,以后就不再执行了,就可以使用静态代码块来实现。
静态块有时还是很有必要的。特别在一些数据占用内存空间较大,程序经常用到,又是该类所有实例共享的,又需要通过代码来生成时,如可以的话,尽量用之。其实它相当于静态变量,只不过它需要用代码生成。
构造函数在类实例化时,静态方法在调用时都会为这些数据另外开辟空间,变样就浪费了内存空间,因为这些数据是该类所有实例共享的。

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
在这个类第一次被调用或实例化的时候就会被执行。 静态代码块只会执行一次,一般会用来初始化一些值,并且在所有对象中全局共享
类装载步骤
   在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载、链接和初始化,其中链接又可以分成校验、准备和解析三步,除了解析外,其它步骤是严格按照顺序完成的,各个步骤的主要工作如下:
装载:查找和导入类或接口的二进制数据;
链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的;
校验:检查导入类或接口的二进制数据的正确性;
准备:给类的静态变量分配并初始化存储空间;
解析:将符号引用转成直接引用;
初始化:激活类的静态变量的初始化Java代码和静态Java代码块。
初始化类中属性是静态代码块的常用用途,但只能使用一次。

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
静态块主要是在main方法执行之前就执行一次,并且在整个
程序的执行过程只执行一次。主要是避免有些重复功能的代码浪费资源。
回复 使用道具 举报
杨旭 黑马帝 2011-12-23 12:57:50
地板
谢谢大家,明白了
~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马