字节码文件:不包含硬件信息,完全与硬件平台无关,因此,无法直接由操作系统来运行。

Java应用程序的执行过程:代码装入、代码检验、代码执行。

1、代码装入:由类装配器完成,装入程序运行时所需的所有源代码(包含调用到的其他类),装入后该类被放在自己的命名空间。此时该类对其他类不再依赖,运行系统可以根据这些类,确定运行程序的内存布局;

2、代码检验:由字节码验证器进行安全检查,确保字节码正确无误;

3、代码执行:执行方式有两种。一是解析执行方式,通过“解释器”,将字节码翻译为要求平台的机器码,然后,传送到“运行支持器”的机器码被其送往硬件进行执行。执行过程一边编译,一边执行,称为解释执行。Java一般都采用这种方式;二是即使编译方式:代码生成器可以将字节码一次性的全部编译为适用于要求硬件平台的机器码,最后送往硬件进行执行。针对于对速度要求很高的程序,Java采用这种方式。

Java虚拟机(JVM):虚拟软件平台。为了能让编译生成的字节码更好的解释执行,通常将其划分为6个功能模块:JVM解释器、指令系统、寄存器、栈、存储区和碎片回收区。

JVM解释器:字节码转换成CPU执行的机器指令;

指令系统:与硬件计算机相似;

寄存器:4个常用的32位寄存器:pc(程序计数器)、optop(操作数栈顶指针)、frame(当前执行环境指针)、vars(执行第一个局部变量的指针);

栈:JVM栈是指令执行时数据和信息存储的场所和控制中心,它提供给JVM解释器运算所需的信息;

存储区:JVM存储区用于存储编译后的字节码信息,提供处理的原料;

碎片会收取:将使用后的Java类的具体实例从内存中进行回收,实现自动化释放内存。

JVM的运用让Java实现了“一次编译,处处运行”,它是整个运行系统的核心。

JDK:是Sun公司房补的免费的Java开发工具,有三个成员:J2EE、J2SE、J2ME;

J2EE:用于可扩展的企业级应用Java 2平台之上;

J2SE:用于工作站和PC机的Java标准平台之上;

J2SE:用于嵌入式消费电子平台之上。

若按其运行的操作系统划分:JDK分别有for Windows、for Linux、for Solaris和MacOS等不同版本。(JDK自身向下兼容)

初学java,遇到的陌生词语(1)的更多相关文章

  1. 初学 Java Web 开发,请远离各种框架,从 Servlet 开发

    Web框架是开发者在使用某种语言编写Web应用服务端时关于架构的最佳实践.很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处 理有关,形成一个基础,在开发别的应用项目的时候则可以从 ...

  2. 初学Java的那段日子

    最近因为一个朋友想要学习Java,在帮助他找教程的过程中回想到了我自己当年学习Java的那段岁月,故写了此篇文章总结了一下初学Java所必须要掌握的知识点,然后把一部分常见的面试题罗列出来.给予刚刚开 ...

  3. 初学Java web(转)

    转自 http://www.oschina.net/question/12_52027 OSCHINA 软件库有一个分类——Web框架,该分类中包含多种编程语言的将近500个项目. Web框架是开发者 ...

  4. 初学java之12 泛型编程的个人理解总结

    首先,强调一个观点: 对于我这样的初学者,一定要站在虚拟机和编译器的角度来分析java 语言的种种特性,泛型也不例外.(我认为这个一条正确的学习经验) 写这篇文章起源于最近在学java,有一天在路上和 ...

  5. 谈初学Java历程

    学习Java一个月左右,本来很早就想好好静下心来写一点东西了.但由于不想手写,文档写了不知道放在哪好,所以一直拖着.最近注册了博客园,还是挺方便的. 即将大学毕业了,则面临了所以大学生所面临的问题,就 ...

  6. 初学Java 精简知识点总结

    面对Java丰富的知识资料,很多初学者难免觉得迷惘,该学什么,怎么去学?下面给大家讲Java基础知识做了精简总结,来帮助你梳理学习思路,赶快看看吧! 方法/步骤1 对象的初始化(1) 非静态对象的初始 ...

  7. 初学JAVA的 感想 尹鑫磊

    开始学习任何一门课(包括java),兴趣最重要.一直觉得自己在学计算机编程语言,学习了很多,但每门语言都停留在知识边缘地带,都没深入到它们的精华部分,对它们的精华部分知之甚少,于是趁学校开设这门课,并 ...

  8. 初学JAVA 感想

    开始学习任何一门课(包括java),兴趣最重要.一直觉得自己在学计算机编程语言,学习了很多,但每门语言都停留在知识边缘地带,都没深入到它们的精华部分,对它们的精华部分知之甚少,于是趁学校开设这门课,并 ...

  9. 初学java注解编程 记录错误及解决办法

    1 :在form表单提交到controller层时 利用hbim的封装的访问数据库 form表单中属性要加上method方法 不然不成功. 2 :在运行eclipse时 有时粘贴个数据或者删除个字段老 ...

随机推荐

  1. android图片的压缩和水印

    学习了一下压缩和水印,以后要用到的时候可以直接来这里拷贝 activity_main.xml <LinearLayout xmlns:android="http://schemas.a ...

  2. DES 算法的 C++ 与 JAVA 互相加解密

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  3. 利用Chrome模拟访问移动端网页

    很多网站都通过User-Agent来判断浏览器类型,如果是3G手机,显示手机页面内容,如果是普通浏览器,显示普通网页内容. 谷歌Chrome浏览器,可以很方便地用来当3G手机模拟器.在Windows的 ...

  4. Jfinal极速开发微信系列教程(一)--------------Jfinal_weixin demo的使用分析

    概述: Jfinal_weixin已经出了有好一段时间了!一直在关注当中......最近工作上有需要到这个东西,所以,话了两个小时来看看这个东西,看完demo以后,豁然开朗,原理微信和一般的web项目 ...

  5. android使用webview加载flash文件

    android 字段webview几乎实现了浏览器的全部功能,最近在使用webview加载不固定格式的文章,文章中有一部分嵌入了flash,下面就是webview可以进行视频需要进行的设置,代码如下: ...

  6. php验证输入字符串中含有非法字符

    $pattern = "/(&|"|<|>|')+/";  preg_match($pattern, $media_name, $matches);  ...

  7. Lipo Error!! can't open input file

    参考文章:http://stackoverflow.com/questions/17348912/lipo-error-cant-open-input-file I got it to Work, i ...

  8. phpcms v9 模板标签说明整理

    1.{template "content","header"} 2.网站网址调用:{siteurl($siteid)}: 3.标签get:分页,{pc:get ...

  9. I P 127.X.X.X 和 0.0.0.0

    127.x.x.x 这是大家最熟悉不过的本地loopback地址,在windows和linux上等价于localhost. 我们习惯于使用127.0.0.1,实际上, 如果你在命令行下ping 127 ...

  10. 多线程GCD

    经常使用:规避很多线程相关的复杂的逻辑 为什么会gcd?因为pthread和nsthread要求开发人员对线程相关的知识了解深入; 手动启动线程:加锁/解锁;造成很多隐患 --> 苹果公司给出了 ...