Java平台体系
文章平均质量分 58
owen0278
这个作者很懒,什么都没留下…
展开
-
《Java平台体系》——前言
在这章我会充分“愤青”一下,如果你很反感请直接跳到小节阅读本书的方法和学习Java平台体系的意义。 为什么写这本书? 大学本科毕业到06年期间我主要从事编程工作,在大学期间我就对写程序很感兴趣,当我从各种渠道看到各个计算机“大牛”们是如何的有天赋,我顿时有点退缩,于是坚持我的本科教育技术专业(估计你不知道教育技术专业)读完。虽然本科期间开设的计算机类课程有操作系统(可以参考转载 2012-07-10 21:18:08 · 1784 阅读 · 0 评论 -
《Java平台体系》——第二章 JVM——实战:Java调用本地代码的例子
□ 首先编写Java代码,如下: □ 编译完之后,我们用JDK自带的javah(命令:javah pkg.Clas)来生成C头文件。将会生成类似如下的头文件(这部分内容我写作的假设是大家了解C/C++编程和相应的动态链接库技术,所以我不会作更多的解释,我的初衷是让了解C/C++的朋友快速了解JNI):转载 2012-07-16 22:19:20 · 677 阅读 · 0 评论 -
《Java平台体系》——第二章 JVM——实战:用JBE修改Java字节码
说了那么多,大家可能晕晕的,我自己也晕晕的。下面我们来动动手吧! 注意:我们在每一章都有一个实战环节,大家在阅读一些基本知识的时候可以同时参考实战,带着实际应用的需要去学习基本知识是一件很愉快的事情。 实战前的开发包和工具准备: □ 从http://java.sun.com/javase/downloads/widget/jdk6.jsp下载Sun的JDK。转载 2012-07-15 21:05:36 · 1145 阅读 · 0 评论 -
《Java平台体系》——第二章 JVM——JNI(Java本地接口)
当我们了解JVM大量的优点之后,不仅学习Java语言的朋友很激动,非Java语言的朋友可能也有些激动。例如熟悉C的朋友一定喜欢上Java的“高级”语言特性,所以考虑把一些繁琐的对性能要求不是很高的程序功能用Java开发,而把一些对运算性能要求高的用C开发(注意:这句话是我为了吸引大家写的,对于性能往往存在想当然的陷阱,请不要把JNI理解成来解决Java性能瓶颈的途径,即使有人这么做,我们也要建立在转载 2012-07-15 21:04:57 · 941 阅读 · 0 评论 -
《Java平台体系》——第二章 JVM——从JVM指令到机器指令
我们前面也聊过JVM在规范层面引入字节码的好处,但将Java字节码翻译成机器指令是需要时间的。所以如何提高Java指令到机器指令的转化效率成为每一个JVM实现必须考虑的问题。如果发挥我们的想象力来理解应该有如下方法: □ 把Java字节码直接再次编译成本地可执行代码,执行的时候就没有JVM的事了。 □ JVM在运行期负责不断地解释了。 把Java字节码直接编译成机器码转载 2012-07-15 21:04:06 · 1371 阅读 · 0 评论 -
《Java平台体系》——第二章 JVM——实战:ClassLoader的应用
在JVM规范抽象架构中我们提到ClassLoader负责加载Java字节码交给JVM,为了给下面应用更进一步提供基础,我还是快速的介绍一下ClassLoader的工作机制。 ClassLoader常规工作机制如下: ClassLoader常规工作机制 对上图进一步解释: □ 每个java.lang.ClassLoade转载 2012-07-15 21:06:45 · 506 阅读 · 0 评论 -
《Java平台体系》——第二章 JVM——JVM实现中的多线程
在JVM抽象架构中我们谈到了多线程中解决数据不一致问题的同步锁概念,从Java字节码交给JVM的信息来看除了在方法上标注synchronized和两条同步指令(194 (0xc2) monitorenter和195 (0xc3) monitorexit)外,真还没有见到任何字节码可以告诉JVM何时启动一个线程相关的信息,但Java中确实是支持多线程的,这是怎么回事? 我们摘转载 2012-07-15 21:03:04 · 427 阅读 · 0 评论 -
《Java平台体系》——第二章 JVM——JVM抽象架构
在学习该小节内容之前请大家先仔细理解下图所表达的内容: 如上图,JVM抽象架构的核心是运行时数据区(内存管理)的抽象架构(这里说抽象所表达的另外意思是不同的JVM实现可能有不同的实现策略)。当有了合理的内存管理策略,程序的执行仅仅是指令序列的推送。 其中方法区(Method Area)是对静态类文件结构的内存维护,不同的实转载 2012-07-13 22:54:09 · 434 阅读 · 0 评论 -
《Java平台体系》——第二章 JVM——JVM指令集
一个指令由操作码(Opcode)和操作数(Operand)组成。在JVM规范中对操作码给出了一个语义清单和操作数的说明,即我们说的指令集。 ---------------------------------------------------------------------------------------- 指令集可以说在计算机世界中无处不在,而我们一般说的是CPU转载 2012-07-13 22:53:10 · 497 阅读 · 0 评论 -
《Java平台体系》——第二章 JVM——Java字节码类文件格式
在学习该小节内容之前建议大家下载工具JBE,它是一个Java字节码编辑器,能够浏览和编辑Java字节码。在学习的过程中可以使用该工具亲自探索,从而加深理解。 Java字节码类文件(.class)是Java编译器编译Java源文件(.java)产生的“目标文件”。无论使用的Java编译器具体如何实现,其编译之后的Java字节码类文件(.class)应该在任何JVM上运行。转载 2012-07-13 22:51:20 · 582 阅读 · 0 评论 -
《Java平台体系》——第二章 JVM——JVM实现:内存管理和垃圾回收
http://qing.weibo.com/2494474521/94aea919330006ux.html学习JVM实现一些初学者可能感到“高不可攀”,其实说实话我也不想去了解JVM实现的细节,但了解JVM实现中一些关键问题解决思路对我们“修炼”境界还是有帮助的。 在学完JVM规范之后,我们可能有如下的问题需要获得答案: □ JVM如何实现运行时数据区的管转载 2012-07-13 22:55:57 · 773 阅读 · 0 评论 -
《Java平台体系》——第二章 JVM——什么是虚拟机?
------------------------------------------------------------------------------------ Java之父James Gosling说过他看重的并不是Java语言,而是JVM。 -----------------------------------------------------------------------转载 2012-07-10 21:33:00 · 450 阅读 · 0 评论 -
《Java平台体系》——第一章 Java平台概述
---------------------------------------------------------------------------------------- 掌上千秋史,胸中百万兵。眼底六周风雨,笔下有雷声。 ---------------------------------------------------------------------------------转载 2012-07-10 21:31:13 · 534 阅读 · 0 评论 -
《Java平台体系》——第二章 JVM——Java字节码程序的执行过程
查看大图 Java字节码程序的执行过程 Java程序在启动的时候首先交给JVM(一个JVM的运行创建一个独立的进程)一个拥有public static void main(string[] args)函数的类,JVM通过引导类加载器(Bootstrap ClassLoader)加载该类,加载完成之后进行校验、内存填充和结构化(即连接--校验/准备/分解),然后启用一个线程执转载 2012-07-10 21:35:14 · 582 阅读 · 0 评论 -
《Java平台体系》——第二章 JVM——JVM规范(JSR924)
JVM规范的提出是实现Java“一次编译,随处运行”承诺的关键环节,正所谓“不成规矩,无以成方圆”,无论JVM的具体实现如何,但站在JVM之上的应用看到的都是一致的“接口”,即JVM规范。 查看大图 JVM规范JSR编号是924,官方地址http://www.jcp.org/en/jsr/detail?id=924。随后的更新在JSR202 http转载 2012-07-10 21:33:52 · 421 阅读 · 0 评论 -
《Java平台体系》——学习Java平台体系的意义
-------------------------------------------------------------------------------- Java已死?当然没有!恰恰相反,你可以通过Java平台体系获得全面的平台体系知识。正所谓本地(Localization)的就是国际(Internationalization)的。如果你是Java猿族,那就先Java吧!如果你不是Jav转载 2012-07-10 21:26:40 · 535 阅读 · 0 评论 -
《Java平台体系》——第二章 JVM——实战:本地库调用JVM和Java代码例子
□ 先来编写一个Java类: □ 调用的C程序。 □ 编译运行。编译的时候可以用JDK提供的lib/jvm.lib进行静态连接。 OK,就到这里!用到的各个函数,请参考http://java.sun.com/docs/books/jni/html/jniTOC.html。转载 2012-07-16 22:21:41 · 344 阅读 · 0 评论