java虚拟机学习

来源:互联网 发布:刘道成 mysql 百度云 编辑:程序博客网 时间:2024/05/20 20:45

1.java的体系结构

     java技术的核心就是java虚拟机(所有的java程序都在这个虚拟机上运行). 我们通常生活中说的java,一般是指java程序设计语言. 而实际上java由4部分组成:我们java体系结构从上往下看包括:

1.我们编写的java程序(也就是源代码)

2.java源代码编译成的java字节码(也就是.class文件)

3.sun公司给我们提供的java api(也是.Class文件)

4.最后是最底层的java虚拟机。


我们编写一个程序的时候就用到了这4种技术,首先我们通过java程序设计编写源代码,然后源代码通过java编译器编译成.Class文件,之后通过java虚拟机执行.class文件,另外我们在编写代码的时候会调用sun公司提供java API,java API的.class文件也会被java虚拟机执行.


2.我们要用java这门语言

随着硬件和网络的发展,很多电子设备都装备了微处理器,而且这些微处理器可以上网, 可以通过网络和计算机连接起来. 而java是为网络而生,java适应网络能力是由其体系结构决定的。它可以保证安全的,健壮的,跨平台的的程序通过网络传播.在很多不同的计算机和电子设备上运行,而其他语言不可以.因此我们做网络开发,就有必要学习java.


3.什么是java平台

java虚拟机和java API 一起组成一个‘平台‘.所有的java程序都可以在这上面运行.java虚拟机和java平台除被称之为java运行时环境之外,还被叫做java’平台‘.java程序可以在不同的平台上面运行,是因为java平台可以自己用软件实现,在不同的系统上面有不同的java虚拟机,它们都可以执行同样的java程序,因此java程序可以在任何有java虚拟机的设备上面运行.


4.java虚拟机

    java虚拟机是一台虚拟的计算机,java规范定义了每个java虚拟机都必须实现的特性,但是具体怎么实现,java规范不强制.举个例子:虽然规java范指定每个java虚拟机都必须能够执行Java字节码,但是用何种技术来实现这个功能,java规范却并不限制.既可以用软件的方式来实现,也可以很大部分用硬件的方式来实现.java规范实现上的灵活性保证了它能在在广泛的计算机和设备上得到实现.

总结:不同的设备可以用不同的方式实现java规范定义的特性,但是具体怎么实现java规范不限制。  打个比喻: java规范只要结果,不看过程。


5.什么是编译时环境和运行时环境

我们编写的java源代码通过java编译器,编译成.class文件.这整个过程运行的环境叫做java编译时环境。

java字节码(特就是.class文件),被载入java虚拟机执行.这整个过程运行的环境叫做java运行时环境。


6.java为什么可以跨平台。

       上面已经说了,这里总结一点就是因为java规范实现的不同, 也可以说java虚拟机的多样性,同一个编译好的.class文件在任何平台上的java虚拟机上运行,得到的结果是一样的.


7.执行引擎

 在不同的java虚拟机中,执行引擎可能实现很不同.最简单的执行引擎是一次性解释字节码. 还有的实现就是第一次执行的字节码才会被编译成本地机器代码.然后缓存起来,这样效率提高了,但是耗内存,第三种就是常用的缓存起来,不常用的那部分还是执行字节码编译成本地机器代码.还有就是通过硬件来执行字节码,......

总结: 不同的java虚拟机的实现是不同的.对java字节码的执行也是不同的.但是最后的结果必须是相同的.因为java程序才能够跨平台.

在java虚拟机里面有一个类装载器,来装在.class文件,然后由执行引擎执行字节码得到本地机器代码-----操纵操作系统。


8.java中有2种方法:本地方法(由c, c++或者汇编语言写的)和java方法.

我们虽然可以直接调用本地方法,但是不建议这么做,这么做我们的程序就会与平台相关了.















0 0
原创粉丝点击