class InitialOrderTest
{
public static String staticField = "静态变量";
public String field = "变量"; static //下边这段代码怪吧?没有方法名,没有返回类型。原因何在??
{
System.out.println(staticField);
System.out.println("静态初始化块");
}
{
System.out.println(field);
System.out.println("初始化块");
} // 构造器
public InitialOrderTest() {
System.out.println("构造器");
} public static void main(String[] args) {
new InitialOrderTest();
}
}
{
public static String staticField = "静态变量";
public String field = "变量"; static //下边这段代码怪吧?没有方法名,没有返回类型。原因何在??
{
System.out.println(staticField);
System.out.println("静态初始化块");
}
{
System.out.println(field);
System.out.println("初始化块");
} // 构造器
public InitialOrderTest() {
System.out.println("构造器");
} public static void main(String[] args) {
new InitialOrderTest();
}
}
楼上都解释清楚了.
method一定有返回类型(可能是void),一定有名字,可能有参数.
{
System.out.println(staticField);
System.out.println("静态初始化块");
} System.out.println("静态初始化块"); 不是写的很清楚啦....
建议楼主去看看java编程思想——Thinking in Java(3rd),这个版本的感觉还不错,里面讲的很基础的。
另外,对待求知者,大家要学会尊重!
强烈鄙视嘲笑别人的人。再牛的人,也有不了解简单问题的时候。
在任何地方都能使用静态块,而且里面声明的变量只在块里面起作用;不影响类的其他变量;
楼主学多久的java了啊???
建议看一看java编程思想,里面有详细介绍代码的运行顺序
这种static代码块是在类的构造函数之前被调用的!
装 B吧你Thinking in Java是讲很基础的!!!!!!!!!!!!!!!!?
Thinking in Java初学者适合看吗?装吧你
大部分基础书都没介绍静态代码块,说毛的看看基础书。1: 继承情况下,首先是从顶层父类的静态变量和代码块开始执行,依次向下。同一个类中,执行的顺序是依照静态变量和静态代码在类中的编码顺序执行,变量和代码块无任何优先级之分。全部继承树中的类静态变量和代码块都初始化完毕后,开始从顶层父类执行非静态的类变量和类代码块初始化,执行顺序同静态,然后紧接着是执行构造函数,完毕后才向下,执行子类的类变量、代码块和构造函数。
2:非静态内部类中不能定义类静态代码块和非final的类静态变量;静态内部类,可以声明非final的静态变量和静态代码块。3:因为类加载存在2种方式:预加载(pre-loading)和按需加载(load-on-demand),所以类中的静态变量和代码块何时执行也受这2种方式的直接影响,不加载时不可能会被执行。 4:隐式(implicit)和显式类加载(explicit):显式加载中的forName(String name, boolean initialize,ClassLoader loader)方法,当initialize=true时,会在执行类加载后立刻运行静态代码和变量。当initialize=false时,类加载后不会立即初始化静态代码和变量,直到第一次new 或者通过反射取值 的时候才会初始化静态代码块和变量。使用loadclass方法加载类时,同initialize=false时的forname。
jdbc连接数据库时经常用
LZ拿分问大家,想拿分就回答问题,回答不了,也别拿让LZ看书当挡箭牌,我就不信你出娘胎就能看什么Think in java,
我实在很不明白,一些人怎么那么能装!!!初学者,问问题时,就已经说的很明白,他们是初学者,大学里的选的教材原价很少超过40元RMB的,这样的书根本就不会介绍到静态代码块,大学里开一门编程语言课很少能超过60学时,很多问题他们不懂才来问大家,你不给他们解释这些问题的答案就算了,还拿什么Think in java这类有学习Java 1年时间以上看的才有收获的熟记推荐给初学者,难道只有这样才能表明自己很牛逼吗?
牛逼人是那些能给LZ很多帮助的,是别人浏览这个网页时,看到答案很赞许,而不是那些不给答案,讽刺初学者,夜郎自大的人。
说实话,大家都是为JAVA活着。
我只想说:
我很笨,但我会努力的。不放弃。
照你的逻辑,别人无需在你问题下写出答案,书上有的东西,你不愿意敲,别人也不愿意敲。
你能告诉我你编程的入门书和学习Java入门书吗?呵呵,为啥有些人总爱提Think in Java这书呢,很像个下贱的推广员啊。
我说大学教材的事只是表明,一个高中生升入大学,学了几十年的10进制的数学和人类语言,忽然学编程语言,他是多么无措,听课就像听天书,什么Think in Java,什么经典书,谁听过!我当然不是和你讨论教育体制问题,也没这个必要,我就是看不贯那些,看见对提简单问题嘲笑者并说看什么Think in Java书,对复杂不会的装B者。
第二,这个问题我认为在书上很容易找到,至于“我问的问题大部分书上有”,这点你是从哪看出来的,麻烦你告诉我
第三,我们提Think in Java是因为它确实不错,如果你写出一本好书我们也会经常提你的大作,我想知道高贵的您写过什么大作可以让我们这些下贱的推广员推广?
第四,我不觉得大学的编程语言听起来会像天书,如果你这么觉得,要么是你们老师讲课有问题,要么是你有问题,不要把你自己的经验往每一个人身上套