黑马程序员技术交流社区
标题:
关于静态代码块。静态代码块的实际意义是什么,有例子.....
[打印本页]
作者:
ReFly
时间:
2013-11-17 21:55
标题:
关于静态代码块。静态代码块的实际意义是什么,有例子.....
今天听到一位同学说一个面试题,问一个类,可不可以有多个静态代码块。
我不太确定。经测试,一个类可以有多个静态代码块。
public class StaticTest{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// System.out.println();
}
static{
int x=2;
}
static {
int x=1;
}
}
接着又想一想上面这段sx似得的代码,到底它起个什么做用。网上搜索一下关于静态代码块的资料。不敢相信,那些讲解静态代码块的例子都是
static{ System.out.println("static"); } 类似的代码。
我知道静态代码块的特点,最先执行(随类加载,先与构造代码块,构造代码块先于构造函数执行)。
但却是这种输出语句很难体现静态代码块的价值。
希望能够更明白,静态代码块的作用。
作者:
cuilitang
时间:
2013-11-17 22:11
有一些程序需要在初始化的时候加载内容,就使用静态代码块
作者:
赵晓海
时间:
2013-11-17 22:28
“最先执行(随类加载,先与构造代码块,构造代码块先于构造函数执行)。”由这句话就可以知道,静态代码块是对类进行初始化,而构造代码块是对对象进行初始化!基础视频里面有讲回去看一下就知道了!
作者:
狼王
时间:
2013-11-18 09:25
不知道除了楼上的回答还有木有其他的作用
作者:
张鹏
时间:
2013-11-18 11:14
本帖最后由 张鹏 于 2013-11-18 11:19 编辑
静态代码块,完成初始化工作,特点:最先执行,并永远只执行一次,无法被再次调用,里面的数据是静态唯一。
作者:
吴琼cola
时间:
2013-11-18 17:56
静态代码,类加载器首先加载静态代码,引用静态代码块的时候,1.不用创建对象,可以直接引用。2。这样可以避免经常使用的函数,被重复创建,浪费内存。3.引用更方便,节约时间。
作者:
ysunday
时间:
2013-11-18 19:12
是这样的,一般是用不到的,很少会用,工具类可能会用到,当一个类里边的所有方法都是静态的时候,这时候这个类不需要new出来,直接类名.调用就行,那么就需要将构造函数私有化,但是既然构造函数私有了,假如类中还有属性需要初始化,那么就只能用静态代码块初始化,或者显示初始化了
写个有点牵强的例子
public class ArrayTools{
private String name;//如果想初始化这个name可以直接 private String name = "haha"
//但是还有另一种方式就是
// {name = "haha"}
private ArrayTools(){}
public static void sort(){}
public static void search(){}
......
}
很少很少用,Arrays的源码中都没找到
作者:
Linuxgg
时间:
2014-2-23 18:00
#在这里快速回复#谢谢楼主期望灌水,我是来拿技术分 Sun Feb 23 18:00:56 CST 2014
作者:
Linuxgg
时间:
2014-2-23 20:35
#在这里快速回复#谢谢楼主期望灌水,我是来拿技术分 Sun Feb 23 20:35:45 CST 2014
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2