Java程序的运行过程


Java程序的运行过程


java的两种核心机制:java 虚拟机 (java Virtual Machine)

垃圾回收机制:Garbagr collection



java程序的运行过程


*.java源程序 -->java编译器 -->.class 字节码文件 --> 类装载器 -->字节码校验器  -->解释器 -->操作系统平台



核心机制之java虚拟机:(JVM)

java虚拟机可以理解为一个以字节码为机器指令的CPU

对于不同的运行平台,有不同的虚拟机

java虚拟机机制屏蔽了底层运行平台的差别,实现了    一次编译,到处运行

核心机制之垃圾收集:

不再使用内次年控件应回收--垃圾收集

在C/C++中, 由程序员自己来收集无用内存

java语言消除了程序员回收无用内存的责任,它是一种系统级线程跟从存储空间的分配情况,并在JVM的空闲时,检测查并释放那些可悲释放的存储器空间

垃圾收集在java程序运行的过程中,完全自动运行,程序员无法精确控制和干预

来自为知笔记(Wiz)

时间: 2024-08-18 14:12:13

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

Java程序的运行过程,以及Java为什么能够跨平台

Java程序运行机制  Java的运行主要分两步:先编译再解释执行 (1)先通过“编译器”将Java源程序(.java)编译成Java字节码文件(.class) (2)通过不同的虚拟机(JVM)将字节码文件解释为机器语言并执行 Java跨平台原理         JVM 把这种不同软.硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植.  JVM 是 Java 平台架构的基础,Java 的跨平台特性正是通过在 JVM 中运行 Java 程序实现的. 因为程序都需要编译生成字节码

java拾遗4----一个简单java程序的运行全过程

简单说来,一个java程序的运行需要编辑源码.编译生成class文件.加载class文件.解释或编译运行class中的字节码指令. 下面有一段简单的java源码,通过它来看一下java程序的运行流程: 1 class Person 2 3 { 4 5 private String name; 6 7 private int age; 8 9 10 11 public Person(int age, String name){ 12 13 this.age = age; 14 15 this.na

1.3.2 java程序的运行机制和jvm

java语言比较特殊,由java语言编写的程序需要经过编译步骤,但这个编译步骤并不会生成特定平台的机器码,而是生成一种与平台无关的字节码(也就是*.class文件).当然,这种字节码不是可执行性的,必须使用java解释器来解释执行.因此,我们可以认为:java语言既是编译型语言,也是解释型语言.或者说,java语言既不是纯粹的编译型语言,也不是纯粹的解释型语言.java程序的执行过程必须经过先编译,后解释两个步骤.如图1.1所示. java语言里负责解释执行字节码文件的是java虚拟机,既 JV

Java程序的运行机制和JVM

1. Java语言比较特殊, 由Java编写的程序需要经过编译步骤,但这个编译步骤不会产生特定平台的机器码,而是生成一种与平台无关的字节码(也就是.class文件).这种字节码不是可执行性的,必须使用Java解释器来解释执行.因此可以认为: Java语言既是编译型语言,也是解释型语言. 或者说,Java语言既不是纯粹的编译型语言,也不是纯粹的解释型语言. Java程序的执行过程,必须经过先编译,后解释两个步骤. 2. Java语言里,负责解释执行字节码文件的是Java虚拟机,即JVM(Java

黑马程序员----整个程序的运行过程

程序的运行过程: 1.编写代码: 2.编译:把C语言代码翻译成0和1 *工具:clang编译器,(Xcode 3 gcc Xcode 4 llvm clang) *指令:cc -c 文件名.c *编译成功会自动生成一个.o目标文件 3.连接:把我们的.o目标文件和系统自带的函数库合并在一起,生成一个可执行文件 *指令:cc 文件名.o *链接成功后会自动生成一个.out可执行文件 4.运行 *指令:./a.out(./代表在当前文件夹下,a.out为生成的可执行文件) 注意: 1.cc 文件名.

如何利用 JConsole观察分析Java程序的运行,进行排错调优(转)

如何利用 JConsole观察分析Java程序的运行,进行排错调优 博客分类: JAVA JavaOracleSUNEclipseJDK 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码. 二.如何启动JConsole 如果是从命令行启

程序在运行过程中变量的保存位置与生命周期

本例说明了一个程序在运行的时候,各种变量所保存的位置.因为位置不同,自然,变量的生命周期也各不相同. 代码示例: #include <iostream> using namespace std; int nGNum1; void showStackAddress(){    cout<<"address of showStackAddress() is:\t["<<(void*)&showStackAddress<<"]

C++IO小程序附带运行过程 & get()函数解析

     int ch,count=0; ch=cin.get(); while(ch!=EOF) { cout.put(ch); ++count; ch=cin.get(); } cout<<count; cin.get(ch)与cin.get() 属性 cin.get(ch) ch=cin.get() 传递输入字符的方式 赋给参数ch 将函数返回值赋给ch 用于字符输入时函数的返回值 istream对象(执行布尔转换后为true) int类型的字符编码 到达EOF时函数的返回值 istre

利用jdk自带的运行监控工具JConsole观察分析Java程序的运行

利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码. 二.如何启动JConsole 如果是从命令行启动,使 JDK 在 PATH 上,运行 jconsole