Java:构造代码块,静态代码块】的更多相关文章

父类静态(代码块,变量赋值二者按顺序执行) 子类静态 父类构造代码块 父类构造方法 子类构造代码块 子类构造方法 普通方法在实列调用的时候执行,肯定位于上面之后了 //父类A public class A { A() { System.out.println("A构造方法"); } { System.out.println("A构造代码块"); } static{ System.out.println("A静态码块"); } public sta…
1.局部代码块 位置:位于类的方法中 表示方法:{} 作用:控制变量的生命周期,减少内存消耗 demo: public class LocalCode { public static void main(String [] args){ int y = 10; { int x = 20; System.out.println(x); } System.out.println(y);//运行到此时x变量已被垃圾收集 } } 2.构造代码块 位置:位于类中 表示方法:{} 作用:用于给每个对象进行初…
Static那些事儿 Static关键字 被static修饰的变量成为静态变量(类变量) 作用:是一个修饰符,用于修饰成员(成员变量,成员方法) 1.被static修饰后的成员变量只有一份 2.当成员被static修饰之后,多了一种访问方式,除了可以被对象调用之外还可以被雷鸣直接调用(类名.静态成员) static关键字,修饰变量,只保存最后一个值,立即改,立即用. static关键字是一个修饰符说白了意思就是用static修饰成员以后,这个成员就变成大家共有的了 ,任意一个对象可以调用它并且也…
总结:静态代码块总是最先执行. 非静态代码块跟非静态方法一样,跟对象有关.只不过非静态代码块在构造函数之前执行. 父类非静态代码块.构造函数执行完毕后(相当于父类对象初始化完成), 才开始执行子类的非静态代码块和构造函数. ================================================================================ 相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个, 一般在代码块中对一些static变量…
子类A继承父类B,A a=new A(); 正确的执行顺序是:父类B静态代码块->子类A静态代码块->父类B非静态代码块->父类B构造函数->子类A非静态代码块->子类A构造函数 也就是说非静态初始化块的执行顺序要在构造函数之前. class FatherStaticTest { static { System.out.println("执行父类的静态代码块."); } FatherStaticTest() { System.out.println(&qu…
class B { public B() { super(); System.out.println("构造器B"); } { System.out.println("普通的代码块B"); } static{ System.out.println("静态代码块B"); } } public class ClassA extends B { public ClassA() { super(); System.out.println("构造…
非静态代码块: TestOrder: package com.aff.singleton; /* 类的第四个成员:初始化块(代码块) 代码块: 如果有修饰的话只能使用static 分类:非静态代码块:1.可以对类的属性(静态&非静态)进行初始化操作,同时可以调用本类声明的方法(静态&非静态) 2.里面可以有输出语句 3.一个类中可以有多个非静态代码块,多个代码块之间按顺序结构执行 4.每创建一个类的对象,非静态代码块就会加载一次 5.非静态代码块的执行要早于构造器 静态代码块:1.里面可以…
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--"先出现先执行" 2 public class CodeBlock01{ 3 public static void main(String[] args){ 4 5 { 6 int x…
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--"先出现先执行" 2 public class CodeBlock01{ 3 public static void main(String[] args){ 4 5 { 6 int x…
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 //普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行” public class CodeBlock01{ public static void main(String[] args){ { int x=3; System.out.println…
Java中普通代码块,构造代码块,静态代码块区别及代码示例.Java中普通代码块,构造代码块,静态代码块区别及代码示例 执行顺序:静态代码块>静态方法(main方法)>构造代码块>构造方法. 其中静态代码块在jvm加载类的时候执行,只执行一次.构造代码块和构造方法在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行” 2 public class CodeBl…
本文转自:http://www.cnblogs.com/sophine/p/3531282.html 执行顺序:(优先级从高到低)静态代码块>main方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象时都会执行. 1.普通代码块 //普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行” public class CodeBlock01{ public static void ma…
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 //普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行” public class CodeBlock01{ public static void main(String[] args){ { int x=3; System.out.println…
不多说,直接上干货! 这种形式的程序段我们将其称之为代码块,所谓代码块就是用大括号({})将多行代码封装在一起,形成一个独立的数据体,用于实现特定的算法.一般来说代码块是不能单独运行的,它必须要有运行主体.在Java中代码块主要分为四种: public class Test { { //// } } 普通代码块 普通代码块是我们用得最多的也是最普遍的,它就是在方法名后面用{}括起来的代码段.普通代码块是不能够单独存在的,它必须要紧跟在方法名后面.同时也必须要使用方法名调用它. public cl…
本文内容: 局部代码块 构造代码块 静态代码块 补充 首发日期:2018-03-28 局部代码块: 局部代码块用于限制变量的生命周期,如果希望某些变量在某一过程之后直接失效而不希望被后面继续操作时,可以使用局部变量来限制变量的生命周期带局部代码块中 构造代码块: 构造函数只对对应的对象进行初始化,构造代码块给类的所有对象进行初始化. 由于构造代码块给类的所有对象进行初始化,所以对于每个对象都要初始化成一样值的变量,可以防止构造代码块中初始化. class Person{ String gende…
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 //普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行” 1 2 public class CodeBlock01{ 3 public static void main(String[] args){ 4 5 { 6 int x=3; 7 Syst…
一.非静态代码块 1.声明格式 [修饰符] class 类名 { { 非静态代码块 } } 2.非静态代码块中的代码执行时机 (1)在"每次"创建对象的时候执行 (2)比构造方法早 Demo: class MyClass{ private String str; public MyClass(){ System.out.println("无参构造2"); } public MyClass(String str){ this.str = str; System.out…
------- android培训.java培训.期待与您交流! ---------- 主函数:是一个特殊的函数.作为程序的入口,可以被jvm调用. 主函数的定义: public:代表着该函数访问权限是最大的. static:代表主函数随着类的加载就已经存在了. void:主函数没有具体的返回值. main:不是关键字,但是是一个特殊的单词,可以被jvm识别. (String[] arr):函数的参数,参数类型是一个数组,该数组中的元素是字符串.字符串类型的数组. 主函数是固定格式的:jvm识别…
JAVA之旅(五)--this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块 周末收获颇多,继续学习 一.this关键字 用于区分局部变量和成员变量同名的情况 this的特点 this就代表本类对象 这在我们的set方法里面是有的 public void setName(String name) { this.name = name; } this代表他所在的函数对属对象的引用 现在我们这里有这么一个需求 //公共的 类 类名 public class H…
关于静态代码块 静态代码块的写法: static { System.out.println("我是静态代码块"); } 静态代码块的特点: 1.执行优先级高于非静态的初始化块,它会在类初始化的时候执行一次,执行完成便销毁,它仅能初始化类变量,即static修饰的数据成员. 2.随着类的加载而执行,而且只执行一次 先说一下类加载,一个程序要想运行,首先要把代码加载到内存中,然后才能去和CPU交流,这是冯诺依曼计算机规定的.Java也是一样,Java的.class字节码文件要想执行,首先也…
接口 接口中只能定义public并且是final的公共静态常量,不允许定义变量. 抽象类可以定义抽象方法和非抽象方法,接口中只能定义公共的,抽象的实例方法. 接口只能由其他接口实现继承 子接口继承的目的在于拥有父接口功能后添加新定义 任何一个非抽象类实现接口必需实现所有接口中方法(可以使用适配器,就不用都实现了) 接口被实现目的就是实现业务功能具体化 内部类 内部类的作用 内部类通过外部类访问从而被限定使用权限 内部类所定义功能更多时候只为外部类提供 内部类使某些功能使用更加安全 内部类的定义和…
java中的类的生命周期分为装载,连接,初始化,使用,和卸载五个过程. 而静态代码在类的初始化阶段被初始化. 而非静态代码则在类的使用阶段(也就是实例化一个类的时候)才会被初始化. 静态变量 可以将静态变量理解为类变量(与对象无关),而实例变量则属于一个特定的对象. 静态变量有两种情况: 静态变量是基本数据类型,这种情况下在类的外部不必创建该类的实例就可以直接使用 静态变量是一个引用.这种情况比较特殊,主要问题是由于静态变量是一个对象的引用,那么必须初始化这个对象之后才能将引用指向它. 因此如果…
/* * * static静态代码块: * 调用静态属性的时候 对应类里面的静态代码块就会被直接执行 * 注意: 只会执行一次,只能调用类内静态结构的(方法/属性) * 作用: 初始化类的属性 * * 非static静态代码块: * 只有类被实例化后,才会调用非static静态代码块里面的内容 * 注意:随着创建对象都会执行一次,可以调用静态结构/非静态的结构的(方法/属性) * 作用:创建对象时,对对象的属性进行初始化 * * 与Python对比: * 类似于Python中魔法方法__init…
感谢大佬:https://blog.csdn.net/qq_35868412/article/details/89360250 今天在项目中看到这行代码,静态代码块,很久没用静态代码块了,今天来复习一下, 依旧按照为什么?是什么?怎么用?的思想,去学习. [为什么?] 先说说代码中为什么要使用这种写法吧, 还记得静态代码块的特点吗?随着类的加载而执行,而且只执行一次 对,没错,就是这个,上面的代码就是因为这个特点而这样写的,可以使得静态代码块中的代码只执行一次,不需要每次调用这个变量都给它赋值.…
final final域使得确保初始化安全性(initialization safety)成为可能,初始化安全性让不可变形对象不需要同步就能自由地被访问和共享 作用在类上               则为final类,final类不能被继承.一般用于工具类时,同时把工具类构造函数声明为私有,暴露静态共有方法 作用在成员变量上    则视为常量.此时赋值方式有三种:(1)声明时赋值(2)构造函数中赋值(3)代码块中赋值. 即不管哪种方式都要保证在使用该变量之前要确保已经有值.使用该特性,可以强制赋…
在Java中代码块指的是使用”{}”括起来的代码称为代码块.代码块一共分为4种:局部代码块,静态代码块,同步代码块,构造代码块. 1.局部代码块 局部代码块就是定义在方法体内部的代码块. public class CodeBlockTest { public static void main(String[] args) { int i; { i=10; System.out.println("局部代码块"+i); int j=20; System.out.println("…
一 访问修饰符 要想本包中的类都可以访问不加修饰符即可:  要想仅能在本类中访问使用private修饰: 要想本包中的类与其他包中的子类可以访问使用protected修饰 要想所有包中的所有类都可以访问使用public修饰. 注意:如果类用public修饰,则类名必须与文件名相同.一个文件中只能有一个public修饰的类. 二 代码块 1.局部代码块 局部代码块是定义在方法或语句中 特点: 以”{}”划定的代码区域,此时只需要关注作用域的不同即可 方法和类都是以代码块的方式划定边界的 class…
静态代码块 静态代码块:定义在成员位置,使用static修饰的代码块{ }. ~位置:类中方法外. ~执行:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行 格式: public class ClassName{ static { // 执行语句 } } 作用:给类变量进行初始化赋值.用法演示,代码如下: public class Game { public static int number; public static ArrayList<String> list; sta…
初始化代码块 在18篇-类的基本要素中说到,类的三大成员:成员变量.构造方法.方法,初始化代码块是类的第4个成员 初始化块用于对类或者对象的初始化, 一个类的初始化块可以有0-多个,按先后顺序执行 跟实例方法-->类方法.实例变量-->类变量一样,也可以用static修饰初始化块,静态初始化块-->非静态初始化块 初始化块总是先于构造器执行 非静态初始化块 非静态初始化块相当于是对构造器的补充,用于创建对象时给对象的初始化,在构造器之间执行 如果一段初始化代码对所有对象完全相同,且无需接…
(所谓的初始化方法init()是另一回事, 在构造方法之后执行, 注意不要混淆) 在Java中,有两种初始化块:静态初始化块和非静态初始化块.它们都是定义在类中,用大括号{}括起来,静态代码块在大括号外还要加上static关键字. 非静态初始化块(构造代码块):作用:给对象进行初始化.对象一建立就运行,且优先于构造函数的运行.与构造函数的区别:非静态初始化块给所有对象进行统一初始化,构造函数只给对应对象初始化.应用:将所有构造函数共性的东西定义在构造代码块中. 静态初始化块:作用:给类进行初始化…