java执行顺序_java执行顺序
本文讨论Java中(静态)变量、(静态)代码块的执行顺序
首先创建3个类:
1、Foo类,用于打印变量
public class Foo {
public Foo(String word) {
System.out.println(word);
}
}
2、Parent类
public class Parent {
static Foo FOO = new Foo("Parent's static parameter");
Foo foo = new Foo("Parent's parameter");
static {
System.out.println("Parent's static code block");
}
{
System.out.println("Parent's code block");
}
public Parent() {
System.out.println("Parent.Parent()");
}
}
3、Child类
public class Child extends Parent{
static Foo FOO = new Foo("Child's static parameter");
Foo foo = new Foo("Child's parameter");
static {
System.out.println("Child's static code block");
}
{
System.out.println("Child's code block");
}
public Child() {
System.out.println("Child.Child()");
}
}
接下来运行实例:
public class Run {
public static void main(String[] args) {
new Child();
}
}
打印结果:
Parent's static parameter
Parent's static code block
Child's static parameter
Child's static code block
Parent's parameter
Parent's code block
Parent.Parent()
Child's parameter
Child's code block
Child.Child()
总结
Java中的静态变量和静态代码块是在类加载的时候就执行的,实例化对象时,先声明并实例化变量再执行构造函数。如果子类继承父类,则先执行父类的静态变量和静态代码块,再执行子类的静态变量和静态代码块。同样,接着在执行父类和子类非静态代码块和构造函数。
注意:(静态)变量和(静态)代码块的也是有执行顺序的,与代码书写的顺序一致。在(静态)代码块中可以使用(静态)变量,但是被使用的(静态)变量必须在(静态)代码块前面声明。
最后给出执行步骤:
1、父类静态变量和静态代码块(先声明的先执行);
2、子类静态变量和静态代码块(先声明的先执行);
3、父类的变量和代码块(先声明的先执行);
4、父类的构造函数;
5、子类的变量和代码块(先声明的先执行);
6、子类的构造函数。
java执行顺序_java执行顺序相关推荐
- java cd命令_java执行cd命令
如果要在java程序里执行一条linux可以用下面的写法 Process process = Runtime.getRuntime().exec(cmd);process.waitFor(); 但是当 ...
- java运行过程_Java执行过程
Java的运行原理 在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器.这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口.编译程序只需要面向虚拟机,生成虚拟机能 ...
- java阻塞执行命令_java执行bat命令碰到的阻塞问题的解决方法
使用Java来执行bat命令,如果bat操作时间过长,有可能导致阻塞问题,而且不会执行bat直到关闭服务器. 如: Runtime r=Runtime.getRuntime(); Process p= ...
- java sql脚本_java执行sql脚本
package com.unmi.db; import java.io.FileInputStream; import java.io.InputStream; import java.sql.Con ...
- java sql脚本_Java 执行 SQL 脚本文件
是拷贝的别人的,以备学习 package com.unmi.db; import java.io.FileInputStream; import java.io.InputStream; import ...
- java 数组 树_java使用顺序数组实现二叉树
顺序数组实现二叉树 实现原理 对于下标为index的节点其满足 1.左孩子节点的下标为2index+1 2.右孩子节点的下标为2index+2 代码实现 package tree; public cl ...
- java构造顺序_Java构造顺序
直接上代码: >>Case1 package com.test; class Apple { private static Apple apple = new Apple(); publi ...
- java 排序队列_java实现顺序队列
packagequeue;importjava.util.Scanner;public classArrayQueueLoop {public static voidmain(String[] arg ...
- java 类的执行顺序_Java中类的执行顺序
讲解在代码中: package 类执行顺序; /** * java类执行顺序 * * 1.如果父类有静态成员赋值或者静态初始化块,执行静态成员赋值和静态初始化块 * 2.如果类有静态成员赋值或者静态初 ...
最新文章
- css3教程:弹性盒模型
- 计算机语言中display翻译,display的意思在线翻译,解释display中文英文含义,短语词组,音标读音,例句,词源,同义词,反义词【澳典网ODict.Net】...
- Zoj 3201 Tree of Tree
- MySQL学习笔记01【数据库概念、MySQL安装与使用】
- java 安全策略,编程式安全策略配置
- 拓端tecdat|R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计
- vs有断点就卡死_再分享 5 个 vs 调试技巧
- 使用markdown写大论文
- stdafx.h到底有什么用
- HDU 1019 least common Multipy
- 易我数据恢复向导 v2.0 官网
- c语言毕业论文,关于c语言的毕业论文题目[word文档]
- 执行SOA ——SOA实践指南
- 新概念英语(第四册,旧版)复习(原文及全文翻译)——Lesson 58 - Hobbies(培养一种爱好)
- Windows---命令打开截图工具,.bat文件执行
- 认真阅读完这篇文章熟练掌握关于IDEA断点调试操作(图文详解)
- python的秘密_Shamir秘密共享方案 (Python)
- C语言邻接矩阵的实现
- 软件测试基础-Web前端(二)
- Win10系统修改时间设置
热门文章
- jQuery插件之-selectList
- Visual Studio 2005 SP1安装 关键点
- Mac 下安装 ruby 环境解决 brew 安装 yarn 问题
- Eclipse 中 Debug 模式跳转到 exitCurrentThread 的问题解决
- 用Raspberry Pi搭建Azure IOT解决方案
- Echarts 解决饼图文字过长重叠的问题
- Windows - CMD窗口UTF8编码乱码问题的解决!
- $.ajax返回的JSON格式的数据后无法执行success的解决方法
- ubuntu系统下用kazam软件录制的视频不能在windows系统下播放的解决方案
- 如何使用意图将对象从一个Android活动发送到另一个?