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

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 }...:每次初始化一个对象,都会导致一次非静态的执行;在构造函数执行之前执行 21 //继承关系:父类的非静态->父类的构造函数->自己的自由->自己的构造函数 22 { 23

1.1K20

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

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

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

(转) 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 静态、构造、构造函数执行顺序

Java代码行执行顺序: 1.静态:用static声明,JVM加载类时执行,仅执行一次 2.构造:类中直接用{}定义,每次创建对象时执行 3.执行顺序优先级:静态>main()>构造>构造方法...4.静态静态属性优先执行,谁在前先执行谁。...出现继承时: 1.初始化父类的静态变量、静态代码,初始化的顺序按照出现的顺序。 2.初始化子类的静态变量,静态代码。 3.初始化父类的成员变量。 4.执行父类的构造函数。...**构造**调用;n=10 m=40 父类$$构造函数$$; n=100 m=50 父类%%静态%%调用; m=100 父类**构造**调用;n=10 m=200 父类$$构造函数$...%%调用; m=10 父类**构造**调用;n=10 m=20 父类$$构造函数$$; n=100 m=30 【 子类 】@@ 静态 @@调用; m=32 父类**构造**调用;

1.7K30

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

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

93120

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

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

45920

Java中静态代码和构造代码

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

1.1K10

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

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

1.4K30

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

使用static{//Code...}的格式代表静态代码。...一个类中若有多个静态代码,则顺序执行它们。另一方面,静态的代码也不能访问非静态域。  静态代码的作用:一般情况下,如果有些代码需要在项目启动的时候就执行,这时候就需要静态代码。...2.构造代码  Java使用{//Code...}的格式代表构造代码,对比于静态代码,其只少了static关键字的修饰。...%d个执行\n", ++i); } } 控制输出: 静态代码代码第1个执行 执行main方法 构造代码第2个执行 构造函数第3个执行 普通代码第4个执行 执行顺序:  静态代码->...1个执行 父类的静态代码第2个执行 子类的静态代码第3个执行 父类的父类的构造函数第4个执行 父类的构造函数第5个执行 子类的构造函数第6个执行  根据Demo-2代码实验可知,涉及继承的代码执行顺序是这样的

1.5K20

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

("静态代码"); } }   ②、执行时机   静态代码在类被加载的时候就运行了,而且只运行一次,并且优先于各种代码以及构造函数。...如果一个类中有多个静态代码,会按照书写顺序依次执行。后面在比较的时候会通过具体实例来证明。   ③、静态代码的作用   一般情况下,如果有些代码需要在项目启动的时候就执行,这时候就需要静态代码。...比如一个项目启动需要加载的很多配置文件等资源,我们就可以都放入静态代码中。   ④、静态代码不能存在任何方法体中   这个应该很好理解,首先我们要明确静态代码是在类加载的时候就要运行了。...对于静态方法,在类加载的时候,静态方法也已经加载了,但是我们必须要通过类名或者对象名才能访问,也就是说相比于静态代码静态代码是主动运行的,而静态方法是被动运行的。   ...⑤、静态代码不能访问普通变量   这个理解思维同上,普通变量只能通过对象来调用,是不能放在静态代码中的。

1.3K20

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加载完成

25030

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

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

75910

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

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

40810

PHP 静态属性和静态方法

1、基本使用 前面介绍的 PHP 类属性和方法都要在类实例化后才能调用(常量属性除外),除此之外,PHP 还提供了静态属性和静态方法,所谓「静态」指的是无需对类进行实例化,就可以直接调用这些属性和方法,...静态属性和方法的定义和调用 在 php_learning/oop 目录下新建一个 static.php 文件,编写一段测试代码如下: <?...return self::$WHEELS; } } 在 PHP 中,我们通过 static 关键字来修饰静态属性和方法,这里我们定义了一个静态属性$WHEELS 和静态方法 getWheels...PHP_EOL; 如果是在类内部方法中,需要通过 self:: 引用当前类的静态属性和方法,就像常量一样,因为静态属性和方法无需实例化类即可使用,而没有实例化的情况下,$this 指针指向的是空对象,...关于 PHP 静态属性和方法的使用就简单介绍到这里,明天,学院君将给大家介绍下 PHP 类中常见的魔术方法。 (全文完)

4.2K10

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

静态代码 a.定义格式 在Java类(静态代码不能定义在方法中)中,通过static关键字和{}声明的代码: public class Person { static{...System.out.println("静态代码"); } } b.执行时机 静态代码在类加载的时候执行,并且仅执行一次,如果一个类中有多个静态代码,将按照书写顺序执行。...c.静态代码的作用 一般情况下,如果有些代码需要在项目启动的时候就执行,这时候就需要静态代码。比如一个项目启动需要加载的很多配置文件等资源,就可以都放入静态代码中。...d.静态代码不能访问普通成员变量,只能访问静态成员变量 构造代码 a.定义格式 在Java类中通过{}声明的代码: public class Person { static{...图1-1 代码清单1-1运行结果 父类和子类执行顺序   首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看父类有没有构造代码,如果有就执行父类的构造代码

3.4K10

【Java】Java中类的初始化顺序(静态方法,静态,非静态,最后有流程图)

在我们的类第一次进行初始化的时候,我们类中的静态静态属性会被优先构建。之后才轮得到非静态和非静态属性。...当你知道了上边的规则之后,我们来看代码,类中有五个静态属性,一个非静态属性,一个静态,一个非静态还有一个静态方法。我们优先构建静态方法、属性和静态,之后在构建非静态。...类的一个对象进行初始化,按照代码顺序从上往下先构建静态的属性、方法和静态,之后在构建非静态和非静态属性。...但你要知道,我们在上边初始化的非静态和非静态属性所打印的语句是我们的t1和t2对象引起的,并非我们主方法内构建的i对象引起的,接下来还要初始化我们的非静态和属性。...如果你可以完整的走出以上的输出顺序,你就可以把t1和t2对象加上去了,不过不要被输出顺序所迷惑,就比如说,你可能会看到父类静态和属性初始化完成后,初始化的不是子类的静态静态属性,而是父类的非静态和非静态属性

13010
领券