没有方法名,只有static的方法,你们见过吗很怪的
时间:2008-09-28 14:14:40
来源:论坛整理 作者: 编辑:chinaitzhe
- Java code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ 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(); } }
网友回复:这是静态语句块。是由static和语句块组合而成的。一般用于初始化静态变量。
网友回复:这不是method,是block,
楼上都解释清楚了.
method一定有返回类型(可能是void),一定有名字,可能有参数.
网友回复:版主附记:
不相关回复被删除。
老婆,来看火星人。
网友回复:静态代码块
网友回复:版主附记:
不相关回复被删除。
老婆,来看那美克星人
网友回复:楼上的不要取笑人家啊,你们知道不代表别人也知道
,尤其那个星星的很了不起吗?
网友回复:
如上,晕一下...
网友回复:static查资料会有解释的了。
网友回复:代码里都写着是 静态代码块..
网友回复:一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;
需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的.
静态代码块是自动执行的;
静态方法是被调用的时候才执行的.
作用:静态代码块可用来初始化一些项目最常用的变量或对象;静态方法可用作不创建对象也可能需要执行的代码.
网友回复: static //下边这段代码怪吧?没有方法名,没有返回类型。。。。原因何在??
{
System.out.println(staticField);
System.out.println("静态初始化块");
}
System.out.println("静态初始化块"); 不是写的很清楚啦....
网友回复:恩 静态初始化块 只会在类被第一次使用的时候初始化一次
网友回复:这叫做静态块,是类加载时执行的
网友回复:static{} 部分是靜態塊。無論當前類被實例化多少次,只創建一次static區域。這個區域是共享的。所以處理static變量和static塊的時候一定要有清醒的認識。
网友回复:第一次见呢 惭愧 - -!
网友回复:每个人以前都是新手,不要嘲笑楼主。
还有,楼主,你应该系统的看一下书,大多数讲Java基础的书里都应该讲到过这个东西。
网友回复:呵呵.jni的时候用到比较多.
网友回复:学习!
网友回复:static{}中包含的是静态块,在java基础教程里面有提到的。
建议楼主去看看java编程思想——Thinking in Java(3rd),这个版本的感觉还不错,里面讲的很基础的。
另外,对待求知者,大家要学会尊重!
强烈鄙视嘲笑别人的人。再牛的人,也有不了解简单问题的时候。
网友回复:
就是这个意思了。
网友回复:
顶!呵呵!我现在才明白!
网友回复:有的书上称为“静态初始化器”就是由static引导的一对大括号括起来的语句组。作用与类的构造函数类似。用来完成初始化的。不过他是对类自身进行初始化的,而构造函数是对每个新创建对象进行初始化的。在类加载到内存是由系统自动运行。
网友回复: static block,在类加载的时候加载,而且是只加载一次;
在任何地方都能使用静态块,而且里面声明的变量只在块里面起作用;不影响类的其他变量;
网友回复:不奇怪,这是静态代码块。
网友回复:支持!
网友回复:??
楼主学多久的java了啊???
网友回复:表态语句块,在该类被加载时就会执行里面的语句。所以如果里面有输出语句的话,最先输出来的就是表态语句块内的内容。
网友回复:樓主應該看多一點書再發問,而且真系很奇怪,明明static塊里的代碼都寫明自己是什麼了...不過嘲笑是不應該的
网友回复:嗯,多看点基础知识吧!
{} //初始化块
恐怕上面那个符号你也不知道是什么?
只是个大括号。
网友回复:额 汗口....
网友回复:静态代码块,加载类时执行,只执行一次,执行的顺序在类的构造方法之前。
建议看一看java编程思想,里面有详细介绍代码的运行顺序
网友回复:
UP
网友回复:static静态块有什么好奇怪的
网友回复:
人家不懂也没什么好奇怪的呀,你懂不代表都懂。都是从不懂到懂过来的。
网友回复:静态代码块,执行一次,一般用于初始化静态变量
网友回复:
顺便补充一下,这种方法不仅可以出现在类的内部。好像方法的内部也有相似的代码块。
这种static代码块是在类的构造函数之前被调用的!
网友回复:
10楼朋友说的很对
网友回复:学习了...
网友回复:
装 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。
网友回复:类的初始化顺序:
父类静态语句块
子类静态语句块
父类普通语句块
父类构造方法
子类普通语句块
子类构造方法
网友回复:
正解,楼主应该多看一点书的哦。
网友回复:
其实 CORE JAVA里提到了。HOHO 表对19楼这么激动嘛 。
网友回复:
我想知道你入门的时候看的什么书,《Java大学讲义》之类的?
网友回复:静态代码块,运行时加载一次
jdbc连接数据库时经常用
网友回复:大家讨论的好认真
网友回复:
我也很想知道你看的是什么书?,《Java大学讲义》没看过,貌似你很牛逼,
LZ拿分问大家,想拿分就回答问题,回答不了,也别拿让LZ看书当挡箭牌,我就不信你出娘胎就能看什么Think in java,
我实在很不明白,一些人怎么那么能装!!!初学者,问问题时,就已经说的很明白,他们是初学者,大学里的选的教材原价很少超过40元RMB的,这样的书根本就不会介绍到静态代码块,大学里开一门编程语言课很少能超过60学时,很多问题他们不懂才来问大家,你不给他们解释这些问题的答案就算了,还拿什么Think in java这类有学习Java 1年时间以上看的才有收获的熟记推荐给初学者,难道只有这样才能表明自己很牛逼吗?
牛逼人是那些能给LZ很多帮助的,是别人浏览这个网页时,看到答案很赞许,而不是那些不给答案,讽刺初学者,夜郎自大的人。
网友回复:谢谢大家,
说实话,大家都是为JAVA活着。
我只想说:
我很笨,但我会努力的。不放弃。
网友回复:这不是方法。。。这是自由块
网友回复:
楼主问的问题书上有,我为什么还要费事再敲一遍?我当然不是出娘胎就看Thinking in Java,它又不是看图识字,但是Thinging in Java也不是要什么很高的基础才能看的书吧?至于说大学选教材如何如何,那是学校的问题,你去跟教育界的人讨论,难道学校只发两张纸,你也就永远只看这两张纸么?
关键字:法名,
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面