初学java,遇到的陌生词语(1)
字节码文件:不包含硬件信息,完全与硬件平台无关,因此,无法直接由操作系统来运行。
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)的更多相关文章
- 初学 Java Web 开发,请远离各种框架,从 Servlet 开发
Web框架是开发者在使用某种语言编写Web应用服务端时关于架构的最佳实践.很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处 理有关,形成一个基础,在开发别的应用项目的时候则可以从 ...
- 初学Java的那段日子
最近因为一个朋友想要学习Java,在帮助他找教程的过程中回想到了我自己当年学习Java的那段岁月,故写了此篇文章总结了一下初学Java所必须要掌握的知识点,然后把一部分常见的面试题罗列出来.给予刚刚开 ...
- 初学Java web(转)
转自 http://www.oschina.net/question/12_52027 OSCHINA 软件库有一个分类——Web框架,该分类中包含多种编程语言的将近500个项目. Web框架是开发者 ...
- 初学java之12 泛型编程的个人理解总结
首先,强调一个观点: 对于我这样的初学者,一定要站在虚拟机和编译器的角度来分析java 语言的种种特性,泛型也不例外.(我认为这个一条正确的学习经验) 写这篇文章起源于最近在学java,有一天在路上和 ...
- 谈初学Java历程
学习Java一个月左右,本来很早就想好好静下心来写一点东西了.但由于不想手写,文档写了不知道放在哪好,所以一直拖着.最近注册了博客园,还是挺方便的. 即将大学毕业了,则面临了所以大学生所面临的问题,就 ...
- 初学Java 精简知识点总结
面对Java丰富的知识资料,很多初学者难免觉得迷惘,该学什么,怎么去学?下面给大家讲Java基础知识做了精简总结,来帮助你梳理学习思路,赶快看看吧! 方法/步骤1 对象的初始化(1) 非静态对象的初始 ...
- 初学JAVA的 感想 尹鑫磊
开始学习任何一门课(包括java),兴趣最重要.一直觉得自己在学计算机编程语言,学习了很多,但每门语言都停留在知识边缘地带,都没深入到它们的精华部分,对它们的精华部分知之甚少,于是趁学校开设这门课,并 ...
- 初学JAVA 感想
开始学习任何一门课(包括java),兴趣最重要.一直觉得自己在学计算机编程语言,学习了很多,但每门语言都停留在知识边缘地带,都没深入到它们的精华部分,对它们的精华部分知之甚少,于是趁学校开设这门课,并 ...
- 初学java注解编程 记录错误及解决办法
1 :在form表单提交到controller层时 利用hbim的封装的访问数据库 form表单中属性要加上method方法 不然不成功. 2 :在运行eclipse时 有时粘贴个数据或者删除个字段老 ...
随机推荐
- 有关AES加密的问题
遇到一个项目,需要用AES加密密码,android的已经写好了,java源码: private static final String AES_OPTIONS = "AES/ECB/PKCS ...
- linux centos6 NAT 端口转发
有很多时候我们为了安全,需要将例如数据库服务器放到内网中.但是有些时候又系统给外网开一个端口,这时就可以利用外网的服务器进行一个端口转发.今天我们以centos6 为例进行端口转发配置. 首先vi / ...
- MVC返回http状态码
//controller ); //asp.net return HttpStatusCode.OK
- 2015北京网络赛 H题 Fractal 找规律
Fractal Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/contest/acmicpc2015beijingo ...
- Oracle 11g系统自己主动收集统计信息的一些知识
在11g之前,当表的数据量改动超过总数据量的10%,就会晚上自己主动收集统计信息.怎样推断10%.之前的帖子有研究过:oracle自己主动统计信息的收集原理及实验.这个STALE_PERCENT=10 ...
- 用 jQuery Masonry 插件创建瀑布流式的页面(转)
瀑布流式的页面,最早我是在国外的一个叫 Pinterest 的网站上看到,这个网站爆发,后来国内的很多网站也使用了这种瀑布流方式来展示页面(我不太喜欢瀑布流这个名字). 我们可以使用 jQuery 的 ...
- PAT 1006
1006. Sign In and Sign Out (25) At the beginning of every day, the first person who signs in the com ...
- Mysql数据库导入命令Source详解
Mysql数据库导入命令Source详解 几个常用用例: 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u root -p dat ...
- 为ListView添加头和脚
转自:https://software.intel.com/zh-cn/blogs/2014/12/15/android-listview-addheaderview-addfooterview ...
- android.os.NetworkOnMainThreadException 异常处理
当我试图在UI线程(MainActivity)连接网络的时候,运行时抛出异常droid.os.NetworkOnMainThreadException 安卓的官方文档说 The exception t ...