java解释器是什么,jdk中的编译器是什么,解释器是什么
本篇文章给大家谈谈java解释器是什么,以及jdk中的编译器是什么,解释器是什么对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
java的虚拟机 编译器 解释器 都什么关系啊
Java虚拟机(JVM)一种用于计算机设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。
Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
参考:http://baike.baidu.com/view/374952.htm
Javac编译器
Javac编译器读取Java源代码,并将其编译成字节代码,调用Javac的命令行示例如下:
C:>javac options filename.java
值得注重的是,和Java解释器不同,Javac编译器期望它正在编译的文件具有扩展名.java。其命令行如下表选项功能
-classpath path此选项用于设定路径,在该路径上Javac寻找需被调用的类。该路径是一个用分号分开的目录列表。
-d Directory此选项指定一个根目录。该目录用来创建反映软件包继续关系的目录数。
-g此选项在代码产生器中打开调试表,以后可凭此调试产生字节代码。
-nowarn此选项禁止编译器产生警告。
-o此选项告诉javac优化由内联的static、final以及privite成员函数所产生的码。
-verbose此选项告知Java显示出有关被编译的源文件和任何被调用类库的信息。
参考:http://baike.baidu.com/view/2972115.htm
jdk中的编译器是什么,解释器是什么
Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是不同的,但是实现的虚拟机是相同的。Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。
Java源代码---->编译器---->Java字节码(即虚拟指令)---->jvm---->解释器----->二进制机器码
什么是java
(Java标志)
简介:
Java是一种基于面向对象的程序设计语言和Java开发平台的总称,由SunMicrosystems公司于1995年5月推出(后于2010年被Oracle收购)。Java编程应用范围广泛,而且随着语言本身以及关联的函数库的增长,Java的应用领域仍然在不断扩展。自从发布以来,Java作为一门面向对象的语言已成为Internet编程、跨平台应用以及教学中的首选语言。这其中有三个原因:Java与生俱来的系统无关的特性、Java语言的简单性和强大,以及Java作为工具可以有效并轻松实现的编程任务的广泛性。对于主要的应用程序开发,Java是许多程序员的选择。与其他语言相比,Java能提供便捷的开发和维护优势。此外,还有在各种计算机和操作系统中不用修改代码即可运行的内在能力。使用Java可以做到更多、更快、更容易。
Java是一门具有创新性的编程语言,对于必须在各种不同计算机系统中运行的程序来说,它已经成为首选语言。首先,Java允许编写很小的成为applet的小程序。这些小程序可以嵌入到网页中来提供一些功能。将可执行的代码嵌入到网页中能提供各种各样令人兴奋的可能性。不用被动地展示文本和图形,网页能够以想要的方式进行交互,其中包括动画、游戏和交互式事务处理——几乎涵盖所有可能。
Java的源代码是Unicode字符,允许使用32比特编码的超大字符集,因而可以支持几乎所有语言。在Java中,你甚至可以创建一个名称为中文的变量。
(JDK结构图)
(Java基本语法)
语言特征:
Java编程语言的风格十分接近C、C++语言。Java是一个纯粹的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5版本中,Java又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。编辑Java源代码可以使用任何无格式的文本编辑器,在Windows操作系统上可以使用系统自带的记事本(Notepad)、EditPlus、Notepad++等程序,在Linux平台上可使用VI工具等。
主要特性:
Java语言是简单的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的垃圾回收器,使得程序员不必为内存管理而担忧。
Java语言是面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
什么命令是java语言的解释器
Java解释器可用来直接解释执行Java字节代码,具体命令行格式如下:
C:\>java options className
argumentsclassName必须包括所有软件包信息。不仅有类名本身,还有Java解释器所期望的类名(不是Java字节代码的文件名),所有在解释器环境下运行的类都必须包括解释器第一次调用时所需的main成员函数,用以传递命令所带的变量。public static void main(string args[]){......}
下面Java解释器的所有选项。-cs-checksource此选项让解释器重编译Java源文件已更新的类--重编译已改变过了的类。-classpath path此选项重写CLASSPATH环境变量,告诉Java在哪里能找到类库。如果其中用冒号分开,则可能包含多个目录。-mx x此选项设置内存分配池的最大值。所指定的池必须大于1,000字节。
另外“K”,“M”可附加在数字上指定是千字节还是兆字节。缺省值是16MB。-ms x此选项设置内存分配池的最小值。所指寂的池必须大于1,000字节。
另外,“K”,“M”可加在数字上指定的是千字节还是兆字节。缺省值是1MB。-noasyncgc此选项关闭异步无用单元收集功能,只有在程序中调用它或内存溢出的时候,无用单元收集才会被激活。
-ss x此选项将C线程栈的最大值设置为x, x必须大于1KB,其设定方式同-ms。-oss x此选项设定Java堆栈最大值为x。
-v,-verbose此选项告知Java每当类被调用之时,向标准输出设备输出信息。-verify此选项告知Java在所有代码上使用校验。-verifyremote此选项告知Java仅仅对类载入器所载入的类进行校验。-noverify此选项告知Java不进行校验。-verbosegc此选项告知Java让无用单元收集器在它释放内存时显示一条信息。-t此选项在Java-g解释器中是可用的,并把执行的情况逐条打印出来。-debug此选项允许Java调试器与本次Java解释器会话相联接。它运行时,Java会显示一个密码,用于启动这次调试会话
-D propName=newVal此选项允许用户在运行时改变属性值
java解释器是什么和jdk中的编译器是什么,解释器是什么的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!