关于Java中代码的执行顺序
结论
注意 只有显式的加载类 JVM才会加载到内存中
- 先加载父类的静态代码块 然后执行子类静态代码块
- 当前类存在类静态变量
注意引用类型没进行赋值操作初始化为null 并不会显式的加载类
又存在静态代码块 会先执行前者进行初始化 再执行静态代码块 - 在实例化类的时候 执行顺序 构造代码块-->构造方法
存在父类先执行父类
- 注意 静态成员变量/静态代码块只在JVM运行时 类加载到内存的时候执行一次
public class Test {
static B b=new B(); //这里存在实例 会加载类B 类A
A a =new A();
static {
System.out.println("test static");
}
public Test(){
System.out.println("test constructor");
}
{
System.out.println("test module");
}
public static void main(String[] args) {
//A1-->B1-->A2-->A3-->B2-->B3-->TEST STATIC
}
}
class A{
static {
System.out.println("A1");
}
{
System.out.println("A2");
}
public A(){
System.out.println("A3");
}
}
class B extends A{
static {
System.out.println("B1");
}
{
System.out.println("B2");
}
public B(){
System.out.println("B3");
}
}
关于Java中代码的执行顺序的更多相关文章
- 2018.11.20-day22 类中代码的执行顺序&组合
1.类中代码的执行顺序 2.组合
- Java类中代码的执行顺序 静态代码块>构造代码块>构造方法
一:静态代码块 注意是代码块,不是静态函数.函数要调用才执行,代码块加载就执行,一般是静态变量的声明与初始化.被static修饰的代码块(赋值.输出操作等).类中静态语句块仅在类加载时被执行一次 如 ...
- java中的一些执行顺序,代码块,静态,构造,成员。。。。(转的)
Java初始化顺序(转来的) 1在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入) 2,在装载类时,先装载父类A,再装载子类B3,装载父类A后,完 ...
- Java中构造方法的执行顺序
一.先执行内部静态对象的构造方法,如果有多个按定义的先后顺序执行:静态对象在构造的时候也是也先执行其内部的静态对象. 二.再调用父类的构造方法(父类还有父类的话,从最开始的基类开始调用),如果没有明显 ...
- Java:面向对象(继承,方法的重写(overide),super,object类及object类中方法的重写,父子类代码块执行顺序)
继承: 1.继承是对某一匹类的抽象,从而实现对现实世界更好的建模. 2.提高代码的复用性. 3.extends(扩展),子类是父类的扩展. 4.子类继承父类可以得到父类的全部属性和方法.(除了父类的构 ...
- java中代码执行顺序
静态代码块 -- >构造代码块 --> 构造方法静态代码块:只执行一次构造代码块:每次调用构造方法都执行 http://blog.csdn.net/wuhaiwei002/article/ ...
- 通过指令码来判断Java代码的执行顺序(++问题与return和finally的问题)
问题 在<深入理解Java虚拟机>一书中遇到了如下代码: public int method() { int i; try { i = 1; return i; } catch (Exce ...
- php课程 1-3 web项目中php、html、js代码的执行顺序是怎样的(详解)
php课程 1-3 web项目中php.html.js代码的执行顺序是怎样的(详解) 一.总结 一句话总结:b/s结构 总是先执行服务器端的先.js是客户端脚本 ,是最后执行的.所以肯定是php先执行 ...
- Java基础系列5:Java代码的执行顺序
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.构造方法 构造方 ...
- Java——Java代码的执行顺序
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.构造方法 构造方 ...
随机推荐
- C语言基础编程题
//1.ASCII码值 ->相应字符 #include <stdio.h> int main() { int asc; scanf("%d",&asc); ...
- jmeter-脚本制作
HTTP请求 默认端口号 HTTP默认端口号:80 HTTPS默认端口:443 数据来源 通过网络抓包软件(Fiddler.Charles等).接口文档数据 脚本制作+结果 录制脚本 badbod 录 ...
- Arrays.asList()需要注意的点
千万不要这样使用Arrays.asList ! 测试的几种情况及原因: public static void main(String[] args) { //第一种基本类型数组 int[] arr = ...
- C#中字符数组,字节数组和string之间的转化(转)
原文链接:http://hi.baidu.com/endyli/item/7bf074945de35e1f934f41fe 来源: NDC(NetworkDiskClient)的界面和后台程序之间用S ...
- 使用ASP.NET Core开发信息采集系统将用户数据添加至企业微信
一.启动Visual Studio 2019,创建ASP.NET Core Web应用程序 二.在Models文件夹添加新项 Person.cs using System.ComponentModel ...
- Asp.Net Core 程序开发技巧汇总
使用Sqlite数据库 创建项目 Asp.Net Core Web应用程序 Web应用程序 ASP.NET Core 2.2 NuGet管理,添加Sqlite数据库支持 Microsoft.Entit ...
- 转发:TypeScript Monorepo 最佳实践
当我们跨多个代码仓库管理多个项目之间的依赖关系时,既耗时又容易出错.monorepo 是一种处理上述问题的代码管理架构概念,它将多个项目的所有隔离代码库整合到一个大型存储库中,而不是单独管理它们.当与 ...
- MQ:Communications link failure
ActiveMQ:Communications link failure问题以及解决办法 ActiveMQ版本:5.5.1 MQ 所使用的 MySQL 是 InnoDB存储引擎 记录人:@郑昀 现 ...
- Spring 常见问题 - 1
1. 什么是spring? 两大功能,依赖注入和面向切面编程(DI & AOP) 为了降低 Java 开发的复杂性,Spring 采取了以下4种关键策略 基于 POJO 的轻量级和最小侵入性编 ...
- 微信小程序中如何上传和下载文件
.wxml <button bindtap="chooseFile">选择文件</button> <view>请输入下载链接</view& ...