JAVA之学习笔记(1)-------------Java运行机制及JVM

来源:互联网 发布:改号任意显源码 编辑:程序博客网 时间:2024/05/20 22:29

理论篇:

 

Java程序运行机制:

Java语言是一种特殊的高级语言,既有解释性语言的特征,也有编译语言的特征,

Java程序经过先编译后翻译两个步骤。

 

计算机高级语言按程序的执行方式分为编译型和解释型两种。

 

计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言,计算机才能执行程序。将其他语言翻译成机器语言的工具,被称为编译器。

 

解释性语言:解释性语言编写的程序不进行预先编译,以文本方式存储程序代码。在发布程序时,看起来省了道编译工序。但是,在运行程序的时候,解释性语言必须先解释再运行。比如解释性Basic语言,其专用的解释器在执行Basic程序时,会逐条读取解释每个语句,这个其实就是一个编译过程,然后再执行。一般来说,现有的解释性语言都是采用的逐行解释一句,执行一句这样的方式来构建的。这样解释性语言每执行一次就要翻译一次,效率比较低。

 

编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等

 

运行编译型语言是相对于解释型语言存在的,编译型语言的首先将源代码编译生成机器语言,再由机器运行机器码二进制)。像C/C++等都是编译型语言

 

而相对的,解释性语言编写的程序不进行预先编译,以文本方式存储程序代码。在发布程序时,看起来省了道编译工序。但是,在运行程序的时候,解释性语言必须先解释再运行

 

编译型与解释型,两者各有利弊。前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。
 
 
但随着硬件的升级和设计思想的变革,编译型和解释型语言越来越笼统,主要体现在一些新兴的高级语言上,而解释型语言的自身特点也使得编译器厂商愿意花费更多成本来优化解释器,解释型语言性能超过编译型语言也是必然的。[

 

Java程序的运行机制和JVM

 

Java语言比较特殊-》

Java程序-------经过编译----------生成机器码,与平台无关的字节码文件----->(*.class文件)------由Java解释器执行。

 

 

 

 

 

所以Java既是编译型语言又是解释型语言。

 

Java语言里负责解释执行字节码文件的是Java虚拟机,即JVM(Java virtual Machine)

           Java虚拟机(JVM)一种用于计算机设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机指令集与编译微处理器指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。
Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
 
       
         Java虚拟机(JVM)一种用于计算机设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。
Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。
 
 
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
 
 
     安装方法
 
 
下载解压
 
下载j2sdk-1_4_2_05-linux-i586.bin随便放到一个目录里,比如/tmp。
 
在终端里输入:sh j2sdk-1_4_2_05-linux-i586.bin回车
 
之后会出现一堆软件说明,按回车n次直到问你yes or no,当然回答yes,输入y,回车后开始解压缩。
 
完成之后,在/tmp里就会出现一个名为j2sdk1.4.2_05的文件夹。
 
安装
安装很简单:将j2sdk1.4.2_05文件夹复制到/usr目录里。
 
设置环境变量:
 
只有设置好环境变量,系统才能调用java虚拟环境
 
打开/etc/profile文件,在相关位置中加入:
 
export JAVA_HOME=/usr/j2sdk1.4.2_05
 
export PATH=/usr/j2sdk1.4.2_05/bin:$PATH
 
export CLASSPATH=/usr/j2sdk1.4.2_05/lib:/usr/j2sdk1.4.2_05/jre/lib:.:
 
保存
 
设置中文字体:
 
注意:下面涉及到的文件请先备份,以防万一!
 
进入/usr/j2sdk1.4.2_05/jre/lib/文件夹
 
删除里面所有带.zn的文档,只留下font.properties.zh文档。
 
安装simsun字体如果不喜欢simsun可以不装。
 
编辑font.properties.zh,将所有-tlc-song-medium-r-normal--*-%d-*-*-c-*-gbk-0 替换成:
 
-misc-simsun-medium-r-normal--*-%d-*-*-c-*-gbk-0(如果没装simsun字体,可以将-simsun-那里改成你喜欢的字体,前提是该字体在系统中存在)
 
之后在终端中转到目录/usr/j2sdk1.4.2_05/jre/bin/下
 
输入命令:
./ControlPanel回车
 
细节
JVM的设计目标是提供一个基于抽象规格描述的计算机模型,为解释程序开发人员提范的任何系统上运行。
 
JVM对其实现的某些方面给出了具体的定义,特别是对Java可执行代码,即字节码(Bytecode)的格式给出了明确的规格。
 
这一规格包括操作码和操作数的语法和数值、标识符的数值表示方式、以及Java类文件中的Java对象、常量缓冲池在JVM的存储映象。
 
这些定义为JVM解释器开发人员提供了所需的信息和开发环境。Java的设计者希望给开发人员以随心所欲使用Java的自由。
 
JVM定义了控制Java代码解释执行和具体实现的五种规格,它们是:
 
*JVM指令系统
*JVM寄存器
*JVM栈结构
*JVM碎片回收堆
*JVM存储区
 
总结:
 
好了,这一笔记中,总结一些Java的基本的知识,也是了解Java是如何与计算机进行交互的。希望通过这些总结的内容,
可以给你带来帮助。
0 0
原创粉丝点击