Java程序执行的过程

ava程序执行的过程:

Step1:将字节码加入内存;

Step2:对字节码进行合法性检查;

Step3:jvm会为每个字节码文件都生成一个对象(class);

Step4:执行静态代码块,初始化静态成员等;

Step5:执行入口函数main方法;

注意:实例块和静态块,可以对java对象进行初始化操作,和构造器非常类似

静态块先于main方法执行,实例块先于构造方法执行

下面来看一段代码你能排出先后顺序吗?

Demo.java

public class Demo
{
public int j = 10;
public static int i = 0; //静态成员
//静态块 用于对静态成员初始化
static
{
i=50;
System.out.println("1、静态块1...");
}
//静态块 用于对静态成员初始化
static
{
i=100;
System.out.println("2、静态块2...");
}

public Demo()
{
System.out.println("3、构造方法...");
j=10;
}
//实例块 在构造方法前执行一般也用于初始化成员变量
{
j=90;
System.out.println("4、实例块2...");
}

//实例块 在构造方法前执行一般也用于初始化成员变量
{
j=20;
System.out.println("5、实例块2...");
}

public static void main(String args[])
{
System.out.println("6、main方法开始---i="+i);
Demo d=new Demo(http://www.amjmh.com);
}
}
程序运行结果截图:

从结果我们可以看出当程序中有多个静态块或实例块程序按先后顺序执行。
---------------------

原文地址:https://www.cnblogs.com/ly570/p/11257589.html

时间: 2024-11-13 01:41:08

Java程序执行的过程的相关文章

java程序执行过程&基本数据类型

1. 程序load到内存. 2. 找到程序入口方法(main())开始执行. 3. 程序在内存中的存放 3.1 代码段(code segment)--------存放代码 3.2 数据段(data segment)--------存放静态变量,字符串常量 3.3 栈(stack)                ----------存放局部变量 3.4 堆(heap)                -----------存放new出来的东西 ----------------------------

深入理解Java程序执行顺序

下面将从一道阿里巴巴试题详细分析Java程序执行顺序. 阿里巴巴试题 public class Test { public static int k = 0; public static Test t1 = new Test("t1"); public static Test t2 = new Test("t2"); public static int i = print("i"); public static int n = 99; publi

java 程序执行输出有两种简单方式

java 程序执行输出有两种简单方式: 1. System.out.println("需要输出的内容"): 该方法可参看运行一个简单的Java程序 结果图: 2. System.out.print("需要输出的内容"): 1 public class HelloWorld 2 { 3 //Java程序的入口方法,程序将从这里开始运行 4 public static void main(String[] args) 5 { 6 //向控制台打印一条语句 7 Syste

java程序执行SQL脚本文件

首先引入ibatis-common-2.jar包 import com.ibatis.common.jdbc.ScriptRunner; import com.ibatis.common.resources.Resources; jpetstore测试代码如下: package com.ibatis.jpetstore.test; import java.sql.DriverManager; import java.util.Properties; import com.ibatis.commo

java程序执行sql文件

List<String> sqlFileList = new ArrayList<String>();从文件读放内容到按分号放到sqlFileListpublic List<String> readSqlFiles(List<String> fileNameList) {List<String> sqlList = new ArrayList<String>();for (String fileName : fileNameList)

Java程序的运行过程

Java程序的运行过程 java的两种核心机制:java 虚拟机 (java Virtual Machine) 垃圾回收机制:Garbagr collection java程序的运行过程 *.java源程序 -->java编译器 -->.class 字节码文件 --> 类装载器 -->字节码校验器  -->解释器 -->操作系统平台 核心机制之java虚拟机:(JVM) java虚拟机可以理解为一个以字节码为机器指令的CPU 对于不同的运行平台,有不同的虚拟机 java

java程序执行内存处理过程

我们学习知识,不仅要知其然,还要知其所以然,你的工资必定和你学习的深度成正比. 在以往.net的学习过程中,我们了解了怎么去开发一个程序,并有了一定的开发经验,但是一个程序具体是怎么在内存中运行的呢? 1.首先来看一张图. 2.在这张图中,我们可以很清楚的了解到: 栈中主要存放局部变量. 堆中存放new出来的东西. 而static 的变量或者字符串常量 则存在在 data segment(数据区)中: 那么类中方法的话,是存在在 code segment(代码区)中了. 3.举例 给一个简单的j

Java程序执行Linux命令(JSP运行其他程序)

java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获得相关信息.Process 类提供了执行从进程输入.执行输出到进程.等待进程完成. 检查进程的退出状态以及销毁(杀掉)进程的方法. 创建进程的方法可能无法针对某些本机平台上的特定进程很好地工作,比如,本机窗口进程,守护进程,M

使用记事本编写JAVA程序(了解JAVA程序的实现过程)

虽然现在有很多编程软件可以实现JAVA程序,很少人会用记事本去写,但这对初学者来说,这是很好的对JAVA的运行方式理解方法.而且别人不懂,你懂是不是很帅.(个人看法)------------ 一.新建JAVA文件 1.新建记事本(.txt)à重命名成HelloWorld.java(以新建HelloWorld为例) 2.你可能遇到的问题是没有扩展名(以下以WIN7为例) ->打开我的电脑 ->发现我的电脑上没有菜单->组织->布局->菜单栏(菜单栏就会出现,就是图片上的文件那行