1,概述:
Java虚拟机是个执行程序,执行过程:就是编译,装载,校验,执行;编译就是编译成字节码,
不像c语言那样,直接编译的时候就查表,替换,偏移,与平台关联性比较大;java将信息都保存在字节码里了;
装载:
当java装载时就是先按照main的调用,动态装载需要的类,以至于把所有的类都装载成功;然后本地核心类在一个命名空间下,自己的或引入的类都有自己的独立的命名空间;
校验:
通过解释器的分析,便可以确定整个内存的空间布局了,然后确定对真正内存的映射,然后便是对数据类型,或者操作数之类的进行检验;
执行:
解释型执行:解释着执行着,比较灵活;
及时性编译:现将字节码编译成机器码,然后一起执行机器码;
java虚拟机里有自己的内存空间以及执行系统(可能最后都是通过映射硬件执行的吧,应该不是通过window_api吧):而解释器差不多就是cpu吧,进行计算,调度之类的;所谓平台无关性,是指编程还是运行什么的都是在虚拟机里进行,不是直接与物理机打交道,所以可以这么说;
2,java开发环境:
jdk,jre,然后classpath,home,path,javac,java,记住这些命令就可以了吧;还有就是linux
命令下是/home/usr/而window下就是c:\programsfilesystem\;或者在字符串里注意转义符;applet是可在浏览器中运行的动态展现程序