动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.File 对象.
.在Java程序中实现高精度打印.
.在Eclipse中创建新的重构功能(组.
.利用Java实现zip压缩/解压缩(1).
.为Java应用程序添加退出事件响应.
.EJB轻松进阶之七.
.敏捷开发的必要技巧:慎用继承.
.java设计模式之Command(菜单命令).
.Javascript实例教程(19) 使用HoT.
.让Java说话-用Java实现语音引擎.
.WebSphere MQ程序设计初探.
.Spring入门指引之获取Spring框架.
.了解Struts1.1介绍.
.使用Java操作Windows注册表.
.用Java实现PDF报表.
.Java与TCP.
.Shark api 应用:获得子流程(sub.
.HelloWord编译方法以及常见错误.
.90%的重叠10%的较量——C#与Java.
.一个奇怪的问题.

Java学习之Java的运行环境

发表日期:2008-1-5 |


Java 时下已经非常流行。全球天天有超过百万的程序员在用Java进行着程序的开发。用Java编写的程序也因为其硬件环境无关性而越来越受到人们的青睐。假如您希望成为Java世界的一员,那就看看这个系列的文章也许对您会有帮助。





无论哪种语言都需要有它特定的运行环境也就是平台,Java 同样不例外。您也许会问,Java程序不是有硬件环境无关性吗?好吧,我希望这篇文章可以回答好这个问题。

几乎所有的语言都是需要通过编译或者解释才可以被您的电脑执行。可是Java有一点不同,它同时需要这两个过程。其实,也正是因为这个原因才使Java这种语言具有了平台无关性。当您写好了一个Java程序的时候(当然这个时候您并不用真的会写Java程序)。首先,通过一段翻译程序将它编译成一种叫做字节码的中间代码。然后再由java平台的解释器将它翻译成为机器语言来执行----平台的核心叫做JVM(Java虚拟机)。Java的编译过程也与其它的语言不同。例如像c++这样的语言,在编译的时候,是与机器的硬件平台信息密不可分的。编译程序通过查表将所有指令的操作数和操作码等等转换成内存的偏移量即程序运行时的内存分配方式,以保证程序运行。而Java却是将指令转换成为一种*.class的文件,这种文件不包含硬件的信息。需要执行的时候只要经过装了JVM的机器解释,创立内存布局后再通过查表来确定一条指令所在的地址。这样就有效的保证了Java的可移植性和安全性。那么Java平台为什么会有这么好的特性呢?

通常一个程序运行的平台是一个硬件或者软件运行的环境。目前比较流行的是windows 2000, Linux, Solaris, 和MacOS。Java的平台不太一样,它由两个部分组成:一个是Java Virtual Machine即Java虚拟机,另一部分是Java Application Programming Interface (Java API) 即Java应用程序设计接口,这两部份软件就构成了Java运行的基本的环境。Java API 是一个大的已经做好的软件集合,这个集合里有许多开发时所需要的控件,用来辅助开发。Java API和JVM整合在一起处于机器硬件之上。也就是说,Java平台把一个Java应用程序从硬件系统分离开从而很好的保证了程序的独立性。为了更好的适应开发的需要,Java的设计者们为我们提供了三种Java平台:Java 2 Micro Edition (J2ME ), Java 2 Standard Edition (J2SE)和 Java 2 Enterprise Edition (J2EE). 每一个版本都提供了丰富的开发工具箱以适应不同的开发需要。

让我们来具体看看Java平台的核心JVM的具体结构。

为了让编译产生的字节码可以更好的解释与执行,一共把JVM分成了主要的6块:JVM解释器,指令系统,寄存器,栈,存储区,碎片回收区。

JVM解释器就是这个虚拟机的处理字段码的CPU。

JVM指令系统同硬件计算机很相似。一条指令分成操作码和操作数两部分组成。操作码为8位二进制数,操作数可以根据需要而定。操作码是为了说明一条指令的功能,所以JVM可以有多达256种不同的操作指令。

JVM有自己的虚拟寄存器,这样就可以快速的和JVM的解释器进行数据交换。为了功能的需要,JVM设置了常用的4个32位寄存器:pc(程序计数器),optop(操作数栈顶指针),frame(当前执行环境指针),vars(指向当前执行环境中第一个局部变量的指针)。

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

JVM存储区就是为了把编译过后的字节码等信息存储起来。

JVM碎片回收是指将那些使用过后的Java类的具体的实例从内存进行回收,这就使得开发人员免去了自己编程控制内存的麻烦和危险。随着JVM的不断升级其碎片回收的技术和算法也更加合理。比较经典的算法有引用计数、复制、标记-清除和标记-整理。在JVM1.4.1版以后产生了一种叫分代收集技术,简单的来说就是利用对象在程序中生存的时间划分成代,以这个为标准进行碎片回收。关于碎片回收将在以后的文章中专门讲解。


上一篇:Java学习过程应该深入理解的一些重点 人气:473
下一篇:java学习体悟 作者: huli·yesky (转载) 人气:486
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-12-4 PhpCMS2008 bulid 081203 简体中
2008-12-4 Menalto Gallery v1.5.10 多国语
2008-12-4 Phpcms2008 bulid 081203 简体中
2008-12-4 乘风多用户计数器 v3.92 (Acc)
2008-12-4 乘风多用户计数器 v3.92 (Sql)
2008-12-4 BBSxp 2008 8.0.5 SP2 Build 081
2008-12-4 ASBLOG v2.5 bulid 081118(1201)
2008-12-4 非零坊幽默短信 v3.4
2008-12-4 红茶巴士(公交)查询系统 v3.0
2008-11-29 Tencent Traveler 4.4
2008-11-29 龙卷风网络收音机 v3.0.0.0
2008-11-29 Intel Chipset Software Install
2008-11-29 TweakVI 1.0 Build 1100
2008-11-29 Opera 9.62 Build 10469
2008-11-29 MPlayer WW编译版 SVN-r28044(20
2008-11-29 NetTools网络工具v1.0.0破解版
2008-11-29 3DGallery三维体验1.1破解版
2008-11-29 SecretBook保密本v1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | OPEN参数生成器 | 弹出式窗口代码产生器 | 密码登录生成器 | 在线按钮生成器 | Meta标签生成器 | 多色彩特效字代码生成器 | 网页代码调试器 | 在线FTP登陆 | Flash取色器 | 配色代码对照表 | 配色辞典 | CSS生成器 | 广告代码 | 框架网页代码生成器 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | 在线调色板 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 元素周期表 | 健康查询 | 世界时间 | 万年历 | 二十四节气 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2009 www.knowsky.com All rights reserved | 沪ICP备05001343号