灵魂腐蚀 发表于 2015-1-18 11:07:49

JAVA教程之Java进修之Java的运转情况

用java开发web只要两本书:一本是关于java基础的,一本是关于jsp、servlet的就可以了。开发周期长,我就来讲句题外话,现在有很多思想都是通过java来展现。Java时下已十分盛行。环球天天有凌驾百万的程序员在用Java举行着程序的开辟。用Java编写的程序也由于其硬件情况有关性而愈来愈遭到人们的喜爱。假如您但愿成为Java天下的一员,那就看看这个系列的文章大概对您会有匡助。



不管哪一种言语都必要有它特定的运转情况也就是平台,Java一样不破例。您大概会问,Java程序不是有硬件情况有关性吗?好吧,我但愿这篇文章能够回覆好这个成绩。

几近一切的言语都是必要经由过程编译大概注释才能够被您的电脑实行。但是Java有一点分歧,它同时必要这两个历程。实在,也恰是由于这个缘故原由才使Java这类言语具有了平台有关性。当您写好了一个Java程序的时分(固然这个时分您其实不用真的会写Java程序)。起首,经由过程一段翻译程序将它编译成一种叫做字节码的两头代码。然后再由java平台的注释器将它翻译成为呆板言语来实行----平台的中心叫做JVM(Java假造机)。Java的编译历程也与别的的言语分歧。比方像c++如许的言语,在编译的时分,是与呆板的硬件平台信息密不成分的。编译程序经由过程查表将一切指令的操纵数和操纵码等等转换成内存的偏移量即程序运转时的内存分派体例,以包管程序运转。而Java倒是将指令转换成为一种*.class的文件,这类文件不包括硬件的信息。必要实行的时分只需经由装了JVM的呆板注释,创建内存结构后再经由过程查表来断定一条指令地点的地点。如许就无效的包管了Java的可移植性和平安性。那末Java平台为何会有这么好的特征呢?

一般一个程序运转的平台是一个硬件大概软件运转的情况。今朝对照盛行的是Windows2000,Linux,Solaris,和MacOS。Java的平台不太一样,它由两个部分构成:一个是JavaVirtualMachine即Java假造机,另外一部分是JavaApplicationProgrammingInterface(JavaAPI)即Java使用程序计划接口,这两部分软件就组成了Java运转的基础的情况。JavaAPI是一个年夜的已做好的软件汇合,这个汇合里有很多开辟时所必要的控件,用来帮助开辟。JavaAPI和JVM整合在一同处于呆板硬件之上。也就是说,Java平台把一个Java使用程序从硬件体系分别开从而很好的包管了程序的自力性。为了更好的顺应开辟的必要,Java的计划者们为我们供应了三种Java平台:Java2MicroEdition(J2ME),Java2StandardEdition(J2SE)和Java2EnterpriseEdition(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的运转平台有一个对照分明的懂得。在接上去的文章《Java进修之踏上旅途的第一步》里我将告知人人怎样安装一个Java平台和怎样入手下手我们的第一个小程序

你说是sun公司对她研究的透还是微软?针对自己工具开发的.net性能上肯定会站上风的。

莫相离 发表于 2015-1-20 14:52:11

是一种为 Internet发展的计算机语言

透明 发表于 2015-1-26 13:53:10

是一种将安全性(Security)列为第一优先考虑的语言

只想知道 发表于 2015-2-6 10:01:12

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

老尸 发表于 2015-2-15 22:45:33

学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。

山那边是海 发表于 2015-3-4 15:58:54

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。

变相怪杰 发表于 2015-3-11 20:16:23

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

海妖 发表于 2015-3-19 11:10:25

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。

愤怒的大鸟 发表于 2015-3-27 21:10:59

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
页: [1]
查看完整版本: JAVA教程之Java进修之Java的运转情况