首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

(转) Java 静态代码和非静态代码

参考:http://uule.iteye.com/blog/1558891 Java中的静态代码是在虚拟机加载类的时候,就执行的,而且只执行一次。...如果static代码有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码只会被执行一次。 非静态代码是在类new一个实例的时候执行,而且是每次new对象实例都会执行。...代码的执行顺序 主调类的静态代码 对象父类的静态代码 对象的静态代码 对象父类的非静态代码 对象父类的构造函数 对象的非静态代码 对象的构造函数 示例代码 public class StaticBlockTest1...{ //主调类的非静态代码 { System.out.println("StaticBlockTest1 not static block"); }...Parent static block //父类的静态代码 Children static block //子类的静态代码 Parent not static

1.1K10

Java——代码(普通、构造静态

代码编写中,使用{}声明的程序就属于代码,而根据其出现的位置,及声明关键字的不同,分为四种:普通代码、构造静态、同步代码(多线程中涉及) 1、普通代码 在方法中使用{}定义起来的一段代码...将普通代码中提取到类中使用,就形成了构造代码。...3、静态代码 如果代码中使用了static关键字定义,则该代码静态代码: 在非主类中定义的; 在主类中定义的; 【举例】:非主类中定义的静态 protected void onCreate...由以上运行可知,静态最先执行,并且只执行一次。...以上可以发现,静态优于主方法先执行。 4、总结 代码对于现阶段开发意义不大,了解即可。

1.9K10
您找到你想要的搜索结果了吗?
是的
没有找到

Java静态代码和构造代码

静态代码:     在java中使用static关键字声明的代码静态用于初始化类,为类的属性初始化。每个静态代码只会执行一次。...由于JVM在加载类时会执行静态代码,所以静态代码先于主方法执行。 注意: 静态代码不能存在于任何方法体内。 静态代码不能直接访问静态实例变量和实例方法,需要通过类的实例对象来访问。...静态代码、构造代码、构造函数同时存在时的执行顺序: 静态代码 > 构造代码 > 构造函数; 下面来举几个例子说明: 构造方法 public class Test { static...第二构造 构造方法 第一代码 第二构造 构造方法 第一代码 第二构造 构造方法 */ 静态代码 /*静态代码:在java中使用static关键字声明的代码。...静态用于初始化类,为类的属性初始化。 每个静态代码只会执行一次。 由于JVM在加载类时会执行静态代码,所以静态代码先于主方法执行。

1.1K10

关于java中普通代码、构造代码静态代码

; {   System.out.println("这里是普通代码B"); } } 执行结果:这里是普通代码A      这里是普通代码B 2.静态代码与构造代码java...常用于对类的初始化,每个静态代码只会执行一次(类在内存中加载时执行,类在内存中加载后类已经存在)由于JVM在加载类时会执行静态代码,所以静态代码先于主方法执行。...如果类中包含多个静态代码,那么将按照"先定义的代码先执行,后定义的代码后执行。 ps:1 静态代码不能存在于任何方法体内。...2 静态代码不能直接访问静态实例变量和实例方法,需要通过类的实例对象来访问。 构造:直接在类中定义且没有加static关键字的代码称为{}构造代码。...1 这里是A中的普通代码2 这里是普通代码B 优先级总结:静态代码>Main()>构造代码

1.3K30

Java静态代码、构造代码、构造函数、普通代码

版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons) 一、格式区分及其性质 1.静态代码Java...一个类中若有多个静态代码,则顺序执行它们。另一方面,静态代码也不能访问非静态域。  静态代码的作用:一般情况下,如果有些代码需要在项目启动的时候就执行,这时候就需要静态代码。...2.构造代码Java使用{//Code...}的格式代表构造代码,对比于静态代码,其只少了static关键字的修饰。...4.普通代码Java使用{//Code...}的格式代表构造代码,对比于构造代码,其区别是普通代码跑到方法内部了。位置:位于方法内部。...%d个执行\n", ++i); } } 控制输出: 静态代码代码第1个执行 执行main方法 构造代码第2个执行 构造函数第3个执行 普通代码第4个执行 执行顺序:  静态代码->

1.5K20

Java静态代码、构造代码、构造函数、普通代码

Java中,静态代码、构造代码、构造函数、普通代码的执行顺序是一个笔试的考点,通过这篇文章希望大家能彻底了解它们之间的执行顺序。...1、静态代码   ①、格式   在java类中(方法中不能存在静态代码)使用static关键字和{}声明的代码: public class CodeBlock { static{ System.out.println...("静态代码"); } }   ②、执行时机   静态代码在类被加载的时候就运行了,而且只运行一次,并且优先于各种代码以及构造函数。...2、构造代码   ①、格式   在java类中使用{}声明的代码(和静态代码的区别是少了static关键字): public class CodeBlock { static{ System.out.println...父类:SuperClass.java package com.ys.extend; public class SuperClass { static{ System.out.println("父类静态代码

1.2K20

静态代码和非静态代码区别

静态代码在第一次创建对象的时候执行一次,之后再也不执行。 非静态代码每创建一次对象就执行一次。...("静态代码"); } { System.out.println("非静态代码"); } } public class TestStatic{ public...非静态代码 构造代码 ==========分隔符================ 非静态代码 构造代码 当调用一个类里面的静态方法的时候,静态代码也会执行 例子 class...("测试静态代码会不会执行"); } static { System.out.println("静态代码"); } { System.out.println...Cat.f(); } } 执行结果 静态代码 测试静态代码会不会执行 注意程序的唯一入口main方法也是静态方法 它同样也遵循静态方法的规则,所以它由系统在创建对象之前就调用.

1.2K50

Java static(三) – 静态代码

静态代码 static代码也叫静态代码,是在类中独立于类成员的static语句,可以有多个,位置可以随便放,它不在任何的方法体内 JVM加载类时会执行这些静态代码,如果static代码有多个...,JVM将按照它们在类中出现的先后顺序依次执行它们 每个静态代码只会被执行一次 实例说明 // 父类 public class ParentStatic { private static...String pstr = "父类静态变量"; static { System.out.println("执行父类静态代码:" + pstr); }..."; static { System.out.println("执行子类静态代码:" + cstr); } public ChildStatic(...,便执行父类的静态代码(父类有父类还会往上找父类静态) 父类ParentStatic加载完成,继续加载子类ChildStatic,发现子类有静态代码,执行子类静态代码 类ChildStatic加载完成

24630

Java 静态代码,构造代码,构造函数执行顺序

静态代码 关键字static,实例如下: public class FileUploadUtils { static { try { InputStream in...具体说,静态代码是由类调用的。...类调用时,先执行静态代码,然后才执行主函数的,总的来说,静态代码是和类一起的,优先级最高,类加载的同时,静态代码同时也执行,但只执行一次,所以作用一般是用来加载一些配置代码,或者加载某些文件配置。...构造代码 构造代码的作用同样是给对象进行初始化。对象一建立就运行构造代码了,而且优先于构造函数执行。...也就是说,构造代码中定义的是不同对象共性的初始化内容。 运行结果: 可以看出来,静态代码只执行一次,而每次创建对象都会调用共同的构造代码,而构造函数也只在创建对象时执行该对象的构造函数。

75510

Java中类的静态代码、构造代码、构造方法、普通代码

前言 Java静态代码、构造代码、构造方法、普通代码的执行顺序是一个比较常见的笔试题,合理利用其执行顺序也能方便实现项目中的某些功能需求 。...静态代码 a.定义格式 在Java类(静态代码不能定义在方法中)中,通过static关键字和{}声明的代码: public class Person { static{...System.out.println("静态代码"); } } b.执行时机 静态代码在类加载的时候执行,并且仅执行一次,如果一个类中有多个静态代码,将按照书写顺序执行。...c.静态代码的作用 一般情况下,如果有些代码需要在项目启动的时候就执行,这时候就需要静态代码。比如一个项目启动需要加载的很多配置文件等资源,就可以都放入静态代码中。...d.静态代码不能访问普通成员变量,只能访问静态成员变量 构造代码 a.定义格式 在Java类中通过{}声明的代码: public class Person { static{

3.4K10

java_自由静态和非静态

java中的自由分为两种: 静态和非静态 静态: 1 public class Test { 2 static int x = 10; 3 //静态:静态的执行时机是在class...文件装载的时候;静态只会执行一次 4 //多个静态的时候,按出现顺序执行 5 static{ 6 x+=5; 7 } 8 } 非静态: 1 public class...Test { 2 //非静态:每次初始化一个对象,都会导致一次非静态的执行;在构造函数执行之前执行 3 //继承关系:父类的非静态->父类的构造函数->自己的自由->自己的构造函数...:静态的执行时机是在class文件装载的时候;静态只会执行一次 5 //多个静态的时候,按出现顺序执行 6 static{ 7 x+=5; 8 }...System.out.println("before"); 24 } 25 } 控制台输出: before 构造函数 5 更多信息:java自由

1.1K20

Java静态代码执行方法和顺序

执行代码格式: static{ procudure... } 特点: 随着类的加载而执行,且只执行一次,并优先于主函数。用于给类初始化。...执行顺序: 示例: 静态代码随着类的加载而加载 有多个静态代码的,按代码前后顺序加载 一个代码,只执行一次 class StaticCode1{ static{...System.out.println("x"); } } public class StaticDemo1{ static{ //第一步,先加载主函数所在类,所以先加载并执行这段静态代码...args){ new StaticCode1(); //第三步,加载StaticCode1类 new StaticCode1(); //第四步,类只加载一次,静态代码只执行一次...,这里不再执行 System.ou.println("over"); //第五步,输出打印 } static{ //第二步,多个静态代码

1.5K20

普通代码 静态代码 构造代码......傻傻分不清

代码的定义 在Java中,使用{ }括起来的代码被称为代码代码的分类 根据其位置和声明方式不同: ?...图片来自网络 面试题: 构造静态执行顺序 在上面分类描述中,我们已经给出了答案;接下来我们跑一跑测试代码,根据代码执行结果来验证这些答案 无继承关系 package com.milo.java7...我们发现静态代码只执行了一次,这一点要特别注意; 有继承关系 我们新建Student类来继承People类,来看看有继承关系情况下,执行结果如何 package com.milo.java7.codeblock...静态代码 作用有两个:(1)给类的静态变量赋值;(2)声明静态变量; 作用在类的Body中,对类中的静态变量初始化: public class APP { static int x, y; /...: static { int x = 5; // 声明一个静态变量 } 则只是在声明静态变量,而且这个静态变量的作用域只在这个代码中,而不是进行初始化,最后的输出结果是3。

92620

Java静态代码代码以及构造函数执行顺序详解

静态代码代码,构造方法执行顺序 前段时间面试,做到一个笔试题主要考察的是静态代码代码,构造方法的执行顺序,由于自己没复习所以这个题肯定没做出来,回家后在Idea中进行代码测试运行。...可以看出到实际上执行顺序应该是父类静态代码——>子类静态代码——>父类代码——>父类构造方法——>子类代码——>子类构造方法。 为什么先执行父类的静态代码呢? 但是为什么会这样呢?...静态代码Java是最优先执行的,且只会执行一次,当子类的super在调用父类的构造方法时所以先回去执行父类的静态代码,然后执行子类的静态代码,所以会执行父类静态代码再执行子类静态代码。...为什么第二个执行代码? 讲完了静态代码是最优先执行的,但是为什么代码的执行顺序会比构造方法先呢?我们通过反编译工具来看一下 ?...其实在我们执行子类的构造方法时,子类super指向父类的构造方法同时执行父类的构造方法,所以先会去执行父类的静态代码再执行子类的静态代码,然后此时super由于指向父类需要去执行父类的构造方法,且代码会被转换到构造方法的第一行

1.3K30

Java学习笔记之十七】Java中普通代码,构造代码静态代码区别及代码示例分析

静态代码>mian方法>构造代码>构造方法。 其中静态代码只执行一次。构造代码在每次创建对象是都会执行。 1 普通代码 1 //普通代码:在方法或语句中出现的{}就称为普通代码。...27 第二构造 28 构造方法 29 第一代码 30 第二构造 31 构造方法 32 第一代码 33 第二构造 34 构造方法 35 */ 3 静态代码 1 //静态代码:在java中使用...静态用于初始化类,为类的属性初始化。每个静态代码只会执行一次。由于JVM在加载类时会执行静态代码,所以静态代码先于主方法执行。...2 //如果类中包含多个静态代码,那么将按照"先定义的代码先执行,后定义的代码后执行"。 3 //注意:1 静态代码不能存在于任何方法体内。...2 静态代码不能直接访问静态实例变量和实例方法,需要通过类的实例对象来访问。

91240

静态代码、非静态代码、构造函数三者执行顺序

主要探讨一下关于静态代码,非静态代码,构造函数的执行顺序。 如有错误,欢迎指出。 首先: 静态成员变量和静态代码的优先级是一样的,先定义的先执行。...在创建一个对象的时候会执行非静态代码和构造函数 再者是执行顺序: /* * *(1)父类静态成员和静态初始化,按在代码中出现的顺序依次执行。...* *(2)子类静态成员和静态初始化,按在代码中出现的顺序依次执行。 * *(3)父类实例成员和实例初始化,按在代码中出现的顺序依次执行。 * *(4)执行父类构造方法。...,变成第二步执行 //非静态代码 { System.out.println("A"); } } 输出: B A A 所以验证: 1.静态成员变量和静态代码的优先级是一样的...2.在创建一个对象的时候会执行非静态代码和构造函数。

45220

【小家java】类中静态代码、构造代码静态变量、成员变量执行顺序和继承逻辑

静态代码只执行一次,并且优先于mai方法先执行 public class Main { public static void main(String[] args) { Parent...情况五:静态代码属于类的,并且优先于main方法执行 public class StaticDemo1 { public static...{ System.out.println("a");; } static { //第1步,静态代码随着类的加载...如果StaticDemo1没有new或者静态方法没有调用,静态代码是不会被执行的哦,只有加载了才会执行,并且只执行一次 static真正的执行时机。...我觉得脑子里应该浮现出一个这样的知识点: Java中赋值顺序: 1、父类的静态变量赋值 2、自身的静态变量赋值 3、父类成员变量赋值和父类赋值 4、父类构造函数赋值 5、自身成员变量赋值和自身赋值

1.4K20

为什么要用静态代码,怎么使用静态代码

1、为什么要用静态代码 随着类的加载而执行,而且只执行一次,不需要每次调用这个变量都给它赋值 2、静态代码是什么 静态代码优先级高于非静态代码静态代码要先执行,只执行一次,执行完即销毁。...代码实现 package com.staticTest; import java.nio.charset.CoderMalfunctionError; public class BlockTest...{ static { System.out.println("BlockTest静态代码执行"); } { System.out.println...("coder无参构造执行"); } } 结果: BlockTest静态代码执行 main coder静态代码 Coder构造代码执行 coder无参构造执行 Coder构造代码执行 coder...无参构造执行 Coder构造代码执行 coder无参构造执行 Coder构造代码执行 coder无参构造执行 Coder构造代码执行 coder无参构造执行 Coder构造代码执行 coder无参构造执行

40710
领券