java运行机制和java虚拟机以及语言特点

本文深入解读Java作为编译性与解释性语言混合体的特性,阐述其面向对象、分布式计算、多线程处理、高安全性和可移植性等优势,并介绍Java语言的核心特点。
java是编译型与解释性语言的混合体。
[b]首先来解释下编译性语言和解释性语言:[/b]
编译性语是指程序执行前需要一个专门的翻译过程,将源程序翻译成能够直接运行的目标文件,一般是指机器语言,以后在执行时不需要再翻译目标文件,直接用目标文件在机器上直接运行,效率较高,现在的语言一般都是编译语言,如c、c++、vf、pascal、delphi.
解释性语言:是指程序执行时再翻译,这个翻译过程是由特定的软件叫作解释器来完成的。例如basic语言,由专门的解释器逐条翻译,每执行一句翻译一句。解释性语言没执行一次就得翻译一次,效率较低。
[b]那么为什么说java是编译性与解释性语言的混合体?[/b]
java语言源代码写好后,首先要经过编译,将.java文件转换.class字节码文件。.class文件可以直接在java虚拟机上运行(jvm),jvm顾名思义是一台虚拟的计算机,定义在操作系统上的由软件模拟的计算机,不同的操作系统不同的平台java提供有特定的jvm,.class文件可以直接在jvm上运行,而不需考虑平台的差异性,这就是java可移植性的由来。jvm将.class字节码加载到内存,然后由其内特定的解释器将其翻译成对应的平台上运行的程序。总之,java首先将.java源文件编译成.class字节码,然后,运行时由jvm读取并翻译成jvm对应的平台目标程序,.class与平台无关有jvm来适应平台。
[b]现在我们来讲讲java的特点了。[/b]
1、java是一种简洁有效容易学习的语言,它封装了c++语言中所有难以理解和复杂的操作,如头文件、指针、结构、运算符重载和虚拟基础类等。
2、面向对象,作为现代语言,怎么能偏离面向对象这一方向
3、适宜分布式计算,java具有强大的易于使用的网络编程api和联网能力,非常适合分布式计算程序。java应用程序可以向访问本地文件系统那样通过url访问远程对象。
4、多线程处理能力。
5、具有较高的安全性,java在设计时安全性设计考虑得很仔细,而且java是开源的,安全方面的bug能够及时得得到发现,并修复。
6、更加健壮、防患于未然:java在编译时对程序可进行可检查性异常进行检查,在程序为执行前就提前规避了这类错误,避免在运行时因为这类错误导致系统崩溃,起到了防患于未然的作用。
7、可移植性,java的.class文件与平台无关,由特定的jvm来适应不同的平台,能做到一处编写到处运行的特点,移植性特别好。
8、一种动态语言:因为java的解释语言特性,它是一种动态语言,可在运行的程序中加入新代码。
1.下列特点中,哪个是Java 虚拟机执行特点之一? A、字节代码 B、多进程 C、静态连接 D、编译 2.Java语言的类型是 A、面向对象语言 B、面向过程语言 C、汇编程序 D、形式语言 3.下列哪个数代表单精度浮点数? A、0652 B、3.4457D C、0.298f D、0L 4.以下哪个表达式是不合法的 A、String x="Hello"; int y=9; x+=y; B、String x="Hello"; int y=9; if(x==y){} C、String x="Hello"; int y=9; x=x+y; D、String x=null; int y=(x!=null)&&(x.length()>0)? x.length():0; 5.main()方法的返回类型是: A、 int B、void C、boolean D、 static 6.下列对继承的说法,哪个是正确的? A、子类能继承父类的所有方法状态 B、子类能继承父类的非私有方法状态 C、子类只能继承父类public方法状态 D、子类只能继承父类的方法,而不继承状态 7.下列关于构造方法的说法正确的是( )。 A、因为构造方法名与类名必须相同,构造方法在创建对象时被执行。 B、构造方法是给对象赋初值,所以没有返回值,必须用void来声明。 C、构造方法不能被程序调用,也不可以重载。 D、一个类只允许有一个构造方法。 8.若需要定义一个类域或类方法,应使用哪种修饰符? A、static B、package C、private D、public 9.如要抛出异常,应用下列哪种子句? A、catch B、throw C、try D、finally 10.对于catch 子句的排列,下列哪种是正确的? A、父类在先,子类在后 B、子类在先,父类在后 C、有继承关系的异常不能在同一个 try 程序段内 D、先有子类,其他如何排列都无关 11.计算机中的流是? A、流动的字节 B、流动的对象 C、流动的文件 D、流动的数据缓冲区 12.以下哪个是java.io包中的一个兼有输入输出功能的类。 A、Object B、Serializable C、RandomAccessFile D、java.io中不存在这样的类 13.下面关于线程优先级的说法中,错误的是: A、Java中的线程的优先级有三个静态常量 B、新建线程的优先级默认为最低 C、优先级高的线程优先被执行 D、一个线程运行时,有可能被比它高优先级的线程抢占运行 14.下列方法中建议使用的是: A、stop() B、supend() C、resume() D、wait() 15.如果希望所有的控件在界面上均匀排序,就使用下列哪种布局管理器? A、BosLayout B、GridLayout C、BorderLayout D、FlowLayout 16.在一个MVC用户界面中,存在三个通讯对象,其中_________是指定的逻辑表示法。 A、模型 B、视图 C、控件 D、结构 17.applet类的直接父类是: A、Component类 B、Container类 C、Frame类 D、Panel类 18.下面关于沙箱模型的叙述中错误的是
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值