黑马程序员技术交流社区
标题:
静态代码块
[打印本页]
作者:
刺客015
时间:
2016-1-25 09:50
标题:
静态代码块
静态代码块优先于主函数吗 他的存在有什么作用??静态代码块需要返回值吗
作者:
吴迪
时间:
2016-1-25 21:28
静态代码块的格式:
static
{
静态代码块中的执行语句。
}
静态代码块的特点:随着类的加载而执行,只执行一次,并优先于主函数执行。
静态代码块的作用:一般用于给类进行初始化。
静态代码块中执行语句不需要返回值。
以下代码用于验证静态代码块的执行优先级高于主函数:
public class StaticTest {
//静态代码块
static{
System.out.println("b");
}
//主函数
public static void main(String[] args) {
StaticDemo sd = new StaticDemo();
System.out.println("d");
}
//静态代码块
static{
System.out.println("c");
}
}
class StaticDemo{
//静态代码块
static{
System.out.println("a");
}
}
复制代码
作者:
hekaikai
时间:
2016-1-25 22:45
静态代码块的作用:一般用于给类进行初始化。
静态代码块中执行语句不需要返回值
作者:
only-hou
时间:
2016-1-26 00:55
静态代码块,随着类的加载而执行。仅仅执行一次,并优先于主函数。主要是为了给类进行初始化操作。
作者:
ambitios0
时间:
2016-1-26 02:17
一 般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情 况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用 比如main方法就必须是静态的 这是程序入口 两者的区别就是:静态代码块是自动执行的; 静态方法是被调用的时候才执行的. 静态方法 (1)在Java里,可以定义一个不需要创建对象的方法,这种方法就是静态方法。要实现这样的效果,只需要在类中定义的方法前加上static关键字。例如: public static int maximum(int n1,int n2) 使用类的静态方法时,注意: a在静态方法里只能直接调用同类中其他的静态成员(包括变量和方法),而不能直接访问类中的非静态成员。这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才可使用,而静态方法在使用前不用创建任何对象。 b 静态方法不能以任何方式引用this和super关键字,因为静态方法在使用前不用创建任何实例对象,当静态方法调用时,this所引用的对象根本没有产生。 (2)静态变量是属于整个类的变量而不是属于某个对象的。注意不能把任何方法体内的变量声明为静态,例如: fun() { static int i=0;//非法。 } (3)一个类可以使用不包含在任何方法体中的静态代码块,当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化。例如: static { }
作者:
Mayer
时间:
2016-1-26 11:11
一楼说的好像就是答案
作者:
我是庄子
时间:
2016-1-27 10:28
朋友,我是来要黑马币的
作者:
jacky左
时间:
2016-1-27 12:44
是的,静态代码块简单说就是加上static的构造代码块.存在与类中方法外,例如
class Test{
static{
System.out.println("我是静态代码块");
}
System.out.println("我是代码块");
{
}
public static void main(String[] args){
System.out.println("我是主方法");
}
}
上面的顺序可以打乱.执行顺序是 静态代码块>代码块>主方法
静态代码块只在类加载的时候执行一次,一般用于加载配置文件,构造代码块是一般用来初始化数据的,每次new一个类的对象就会执行一次.纯手打,不明白的可以继续问我
作者:
梁志朋
时间:
2016-1-27 22:56
static{ 静态代码块中的执行语句。 } 特点:随着累的加载而执行,只执行一次,并优先于主函数。用于给类进行初始化的。
作者:
cjwhale
时间:
2016-1-27 22:56
静态代码块用来给类中的静态成员变量初始化用的.
作者:
ma464526717
时间:
2016-1-28 14:41
静态代码块优先于主函数,他的作用是初始化,静态代码不需要返回值。
作者:
sydsyd
时间:
2016-1-28 23:27
静态代码块优先于类存在,是给类进行初始化。类加载后如果有main会先执行main,然后执行构造代码块,构造代码块给所有的对象进行初始化。如果有创建实例对象,则会执行构造函数,构造函数是给对应的对象进行实例初始化。
作者:
18817602013
时间:
2016-1-29 15:00
我的理解是:静态代码块只是主函数的一部分,主函数刚调动时就运行静态代码块,他的作用是对主函数进行初始化,静态代码块不需要返回值
作者:
胖小子
时间:
2016-1-29 22:15
一般用于初始化,优先级最高,我还没见过 有人返回值
作者:
15521086286
时间:
2016-1-29 23:04
静态代码块优先于主函数吗 优先
他的存在有什么作用?? 用来加载需要随着类加载的资源,例如玩游戏的开场动画,你以打开游戏就是可以.
静态代码块需要返回值吗 不是说需要不需要,静态代码块没有返回值,,如果你些了,就会报错,例如
public class Demo {
public static void main(String[] args) {
}
static{
int b=1;
return b;
}
}
是报错的,
作者:
ambitios0
时间:
2016-1-30 23:55
111111111111111111111111
作者:
1900
时间:
2016-2-3 14:52
静态代码块在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。在开发中 一般用于加载驱动,例如游戏启动时,需要先加载一些驱动。
作者:
旼旼
时间:
2016-2-4 23:00
1.静态代码块 随着类的加载而执行,只执行一次,并优先于主函数,也优先于构造代码块。2.类加载的时候就会去执行静态代码块的内容。比如说:写连接数据库的那些内容时,经常有classforName("XXX"),用于加载一些东西,这些东西就可以写在静态代码块中。还有一些,你想让类加载时就执行的程序也可以放在里面。3.静态方法和返回值没有关系呀?如果一个方法没有访问对象的特有数据就可以定义为静态的,这样就可以通过类名直接调用,而没有必要通过创建对象来调用,这就是静态方法
作者:
yuchifeifan
时间:
2016-2-5 20:20
优先主函数 一班情况下是用来加载驱动和 初始化一些与类相关的属性的
作者:
陈梦佳
时间:
2016-2-8 20:54
class Demo{
{ // 直接在类中编写代码块,称为构造块
System.out.println("1、构造块。") ;
}
static{ // 使用static,称为静态代码块
System.out.println("0、静态代码块") ;
}
public Demo(){ // 定义构造方法
System.out.println("2、构造方法。") ;
}
};
public class CodeDemo03{
static{ // 在主方法所在的类中定义静态块
System.out.println("在主方法所在类中定义的代码块") ;
}
public static void main(String args[]){
new Demo() ; // 实例化对象
new Demo() ; // 实例化对象
new Demo() ; // 实例化对象
}
};
静态代码块优先于主方法执行,不管有多少个对象产生,静态代码块只执行一次,没有返回值。
作者:
斐不懂
时间:
2016-2-12 21:39
对类进行初始化,不要返回值吧
作者:
diaokb
时间:
2016-2-18 18:16
静态代码库一般用于加载驱动的
作者:
夜正黑
时间:
2016-2-19 19:42
静态代码块
在类中方法外出现,并加上static修饰;
用于给类进行初始化,在加载的时候就执行,并且只执行一次。
一般用于加载驱动,初始化一些必要的东西,优先于主方法
作者:
stapan1
时间:
2016-2-24 14:48
静态代码块是随着类的加载而加载的,且只执行一次,它的存在是用来给类进行初始化的,一般用来加载驱动。静态代码块的格式是static{
代码块
}
作者:
赵雄
时间:
2016-2-25 12:13
static
{
静态代码块中的执行语句。
}
静态代码块的特点:随着类的加载而执行,只执行一次,并优先于主函数执行。
静态代码块的作用:一般用于给类进行初始化。
静态代码块中执行语句不需要返回值。
作者:
cc19930915
时间:
2016-2-28 13:52
我只是来拿B的
作者:
AlphaCC
时间:
2016-3-5 16:19
静态代码块是在类的加载时被执行,而且只执行一次,静态代码块不用返回值。
作者:
gaoduilaile
时间:
2016-3-12 22:34
静态代码块先于主函数,一般用于加载驱动,不需要返回值。
作者:
飞扬的king
时间:
2016-3-20 21:48
静态代码块 对类的数据进行初始化,仅仅只执行一次。
作者:
604840337
时间:
2016-3-21 22:37
静态代码块优于主函数 是随着类的加载而加载 也就是说当类创建的时候 他就有了
作者:
zhengxiaomin
时间:
2016-3-22 22:38
静态代码块优先于主函数,所以会先运行并且只运行一次,可以用于加载程序需要的文件或者驱动,相当于初始化。类似于构造代码块,不需要返回值。
作者:
skxy2016
时间:
2016-3-23 14:25
/*
静态代码块:
静态代码块的特点:随着类的加载而执行,只执行一次,并优先于主函数执行。
静态代码块的作用:一般用于给类进行初始化。
静态代码块中执行语句不需要返回值。
*/
class B{
static{
System.out.println("in class B!");
}
}
public class StaticTest{
//优先于main函数执行
static{
System.out.println("in StaticTest A!");}
public static void main(String[] args){
System.out.println("in main!");
//随着类的加载而加载
B b = new B();
//只执行一次,再创建一个新对象时不会再执行。
B c = new B();
}
//优先于main函数执行
static{
System.out.println("in StaticTest B!");}
static{
System.out.println("in StaticTest C!");
//return 3;//编译出错,错误内容:返回外部方法
}
}
作者:
chaojiwudi
时间:
2016-3-26 20:31
静态代码块 写在类中 优先于主函数 只加载一次 好比驱动 先执行
作者:
linguoqun
时间:
2016-8-2 23:32
楼主,您好!很高兴为您解答!
静态代码块是优先于主函数的!
程序还没执行main函数里面的代码,静态代码块里面的内容就已经在内存的静态块声明好了。静态代码块里面的内容都是优先于main函数,
他的存在是使静态代码块里定义的变量的值不能被修改,而且只有一份,只有程序结束的时候才会被回收。节省了内存空间。避免了重复定义。而且一些系统在运行时需要加载一些数据,这样就可以把这些数据定义在静态代码块中,以便系统一运行就能加载。
静态代码块不需要返回值。原因很简单,静态代码块里的定义的变量是整个程序都能直接访问的。
纯手打的,满意请采纳,谢谢!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2