www.jbmf.net > jAvA 静态代码块

jAvA 静态代码块

Java静态代码块的作用:Java静态代码块中的代码会在类加载JVM时运行,且只被执行一次,也就是说这些代码不需要实例化类就能够被调用.一般情况下,如果有些代码必须在项目启动的时候就执行的时候,就需要使用静态代码块.Java静态代码块的用法:一个类可以使用不包含在任何方法体中的静态代码块,当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化.例如:static { int a=0; }

一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的.两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的.作用:静态代码块可用来初始化一些项目最常用的变量或对象;静态方法可用作不创建对象也可能需要执行的代码.

区别很简单:静态代码块,在虚拟机加载类的时候就会加载执行,而且只执行一次;非静态代码块,在创建对象的时候(即new一个对象的时候)执行,每次创建对象都会执行一次

还是不得不拿出<clinit>和<init>说事了.以下拿类T作为讲解的对象类型吧:class T{private static final String msg = "this is a test class!";private static int version = 1;static{version = 2;desc = "class T";}private static String desc = “T is a test Class”;private int age = 2;{age = 10;name = "panda";}public T(){

静态代码块是在类加载进jvm时类实例化之前运行的,比如业务场景有这种类初始化时需要加载许多资源,在运行实例化类的时候会影响程序响应时间,所以就在项目启动的时候加载类的时候就初始化了.非静态代码块是在类实例化的时候才会运行,所以静态代码块的执行一定在非静态代码块执行之前执行.至于你上面的第一个问题要看具体业务场景和需求,赋值都可以实现.第二个问题,可能是写那句代码的人要看程序加载后有没有执行那部分代码而加上的,知道了静态代码块和非静态代码块的本质区别,为什么那么做和目的你就应该知道了.

static 静态代码块,一般都会做为初始化使用,它会随着类的加载而执行.与对象的创建无关

静态代码块:有些代码必须在项目启动的时候就执行,这种代码是主动执行的(当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化)静态方法:需要在项目启动的时候就初始化,在不创建对象的情况下,这种代码是被动执行的(静态方法在类加载的时候就已经加载 可以用类名直接调用).两者的区别是:静态代码块是自动执行的,静态方法是被调用的时候才执行的.

如果需要程序在启动之前就进行一些操作,以及一些经常用到却不占用多少内存的代码或变量直接写在static静态代码块中,当程序启动的时候随之初始化,这样可以节省部分后续操作的时间

STATIC 静态代码块就是起到在类的初始化时执行静态代码块.

静态代码块:只要一用到某个类,那么这个类的静态代码块就先执行,比如:public class Dog(){ int i = 0; static { i = 1; } public Dog(){ i = 2; } }当你new 一个Dog()对象时,首先i= 1 会执行,然后才执行 public Dog(){}这个方法. pulic Dog

网站地图

All rights reserved Powered by www.jbmf.net

copyright ©right 2010-2021。
www.jbmf.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com