第一章 Java代码执行流程
说明:本文主要参考自《分布式Java应用:基础与实践》
1、Java代码执行流程
- 第一步:*.java-->*.class(编译期)
- 第二步:从*.class文件将其中的内容加载到内存(类加载)(运行期)
- 第三步:执行代码(运行期)
说明:
- 整个白框部分表示JVM管理的内存
- 包含栈帧的地方称作JVM方法栈,一个栈帧就是一个方法
- 在Hotspot JVM中,JVM方法栈和本地方法栈是同一个
- java方法是通过出栈操作来执行的(在类加载后入栈),所以执行引擎直接操作的是栈帧(即一个方法)
- 具体的JVM内存结构,查看第一章 JVM内存结构
2、代码编译
javac命令将源码文件编译为*.class文件。
后边将介绍:
- javac将*.java编译成*.class文件的过程
- class文件的文件格式,以及其存储的内容
3、类加载
主要是指将*.class文件加载到JVM,并形成Class对象的机制,之后就可以对Class对象实例化并调用了。
特点:
- 类加载机制可以在运行时动态加载外部类
后边将介绍:
- 类加载的过程
- 类加载的双亲委托机制
- 类加载器的层次关系及源码
4、执行代码
两种执行方式:
- 解释执行(运行期解释字节码并执行)
- 速度慢,效率低
- 但是要比编译为机器码执行省内存
- 编译为机器码执行(将字节码编译为机器码并执行,这个编译过程发生在运行期,称为JIT编译),下面是两种模式
- client(即C1):只做少量性能开销比高的优化,占用内存少,适用于桌面程序。
- server(即C2):进行了大量优化,占用内存多,适用于服务端程序。会收集大量的运行时信息。
注意:
- 32为机器默认选择C1,可在启动时添加-client或-server来指定,64位机器若CPU>2且物理内存>2G则默认为C2,否则为C1
- Sun JDK执行代码的机制:对在执行过程中执行频率高的代码进行编译,对执行频率不高的代码继续解释执行
后边将介绍:
- Sun JDK执行代码的过程
- C1以及C2执行的一些优化
- 编译执行与解释执行的使用的衡量点
转载于:https://www.cnblogs.com/java-zhao/p/5185500.html
第一章 Java代码执行流程相关推荐
- java代码执行流程
JIT编译器将热点代码编译成机器指令给缓存起来,主要是解决性能和响应时间的问题.
- 【JAVA SE】第一章 Java语言概述、环境变量和HelloWorld
第一章 Java语言概述.环境变量和HelloWorld 文章目录 第一章 Java语言概述.环境变量和HelloWorld 一.Java语言概述 1.Java简介 2.Java发展历史 3.Java ...
- 《整洁代码之道》学习书摘(二)第一章——整洁代码
第一章 整洁代码 第一章 整洁代码 要有代码 糟糕的代码 混乱的代价 思想流派 我们是作者 童子军军规 前传与原则 小结 学习收获 要有代码 阅读本书(书摘)有两种原因,第一,你是个程序员:第二,你想 ...
- 【Java开发语言 01】第一章 Java语言概述(基础常识+Java语言概述+Java程序运行机制及运行过程+Java语言环境的搭建+开发体验hello world+错误:编码GBK的不可映射字符)
java入门-第一章Java语言概述 1基础常识 软件开发 人机交互方式 常用的DOS命令(win系统,有一些直接通过命令执行的) 2 Java语言概述 什么是计算机语言 关于面向对象和面向过程 Ja ...
- 基于《java2实用教程》的java知识点复习整理【第一章——java入门】
第一章--java入门 一.知识结构框架 二.知识点详解 1.java特点:编写一次,随处运行 简单 Java要比C++简单,C++中许多容易混淆的概念,被Java弃之不用了,或者以一种更清楚更容易理 ...
- Java 学习笔记:第一章 Java入门
Java 学习笔记:第一章 Java入门 1.1 计算机语言发展史以及未来方向 1.2 常见编程语言介绍 C语言 C++ 语言 Java语言 PHP 语言 Object-C和Swift 语言 Java ...
- Java代码执行顺序
Java代码执行顺序 1. Java初步认知 2. Javayun.java例子 3. 反编译Javayun.class文件 4. 分析Javayun_dxdump文件 5. 再来一个网上的例子Jav ...
- 第一章 Java环境搭建、IDEA、Java语言
JavaSE基础大纲: 一. Java环境搭建.IDEA.Java语言 二.Java语法.运算符.随机数 三.分支.循环.控制关键字 四.数组详解.案例训练 五.方法详解.案例训练 六.面试常见编程案 ...
- JVM03Java代码执行流程
一.Java的跨平台性 Java代码的执行流程 jvm运行原理: 运行一个HelloWorld的类,运行完毕之后,文件夹里出现HelloWorld.class的文件 javac程序是一个Java编译器 ...
- Java极速入门系列:第一章Java概述、Java环境、IDEA开发工具
Java极速入门-第一章Java概述.Java环境.IDEA开发工具 一.什么是Java 1.好的编程语言的特性 2.Java的特点 3.Java的运行机制 4.Java的三大体系 5.Java环境 ...
最新文章
- History(历史)命令用法
- 5G RRC——为NAS层提供连接管理,消息传递等服务; 对接入网的底层协议实体提供参数配置的功能; 负责UE移动性管理相关的测量、控制等功能...
- tomcat jdk servlet websocket版本对应关系
- git的入门摸索和入门研究
- Makefile文件试错
- android node
- JavaScript-操作DOM对象-删除dom节点
- 34 MM配置-采购-采购订单-定义凭证类型
- php框架例子,php框架中的动态实例化对象详解
- Qt4_读取和写入二进制数据
- 最大回撤,最大回撤恢复时间与最大回撤持续期
- ios学习:Xcode工具
- 莫烦python学习笔记之numpy.array,dtype,empty,zeros,ones,arrange,linspace
- timeSetEvent的用法(一)
- 面向对象的JavaScript-008-Function介绍
- android壁纸路径/目录
- deb 中标麒麟_中标麒麟linux
- android铃声总结
- Final Project 期末项目: PySnake
- Diy-Scratch(4) 大家来找茬