Java技术体系

java技术体系

  • Sun官方定义的java技术体系包括:
  • Java程序设计语言
  • 各种硬件平台上的Java虚拟机
  • Class文件格式
  • Java API类库
  • 来自商业机构和开源社区的第三方Java类库
  • JDK:用于支持Java程序开发的最小环境,内容包括:
  • Java程序设计语言
  • Java虚拟机
  • Java API类库
  • JRE:支持Java程序运行的标准环境,内容包括:

Java技术体系包含内容

以上Java技术体系图是根据各个组成部分的功能来进行划分的。如果按照Java技术服务的领域来划分,可分为以下4个平台:

  • Java Caard
  • Java ME
  • JavaSE(Standard Edition):支持面向桌面级应用的java平台,提供了完整的Java核心API,这个版本以前称为J2SE。
  • JavaEE(Enterprise Edition):支持使用多层架构的企业应用(如ERP、CRM应用)的Java平台,除了提高Java SE API外,还对其做了打了扩充,并提供了相关部署支持,这个版本以前称为J2EE。
  • javaEE对JavaSE提供的扩展一般以java.*作为包名,而以java.*为包名的都是javaSE API的核心包,但由于历史原因,一部分曾经是扩展包的API后来进入了核心包,因此核心包中也包含了不少javax.*的包名。

Java语言口号

Write Once , Run Anywhere。

JDK命名

  • JDK从1.5版本开始,官方在正式文档与宣传上不再使用类似JDK1.5的命名,只在程序内部使用的的开发版本号(Developer Version,例如java --version的输出)中才继续沿用1.5,1.6...。而攻克版本号(Product Version)则改为JDK5、JDK6、JDK7的命名方式。

Java开源

  • 2006年11月13日的JavaOne大会上,Sun公司宣布开源java,JDK1.6在12月11日发布。并建立了OpenJDK组织对浙西源码进行独立管理,除了极少量的产权代码(Encumbered Code,这部分代码大多史Sun本身也无权限进行开源处理的)外,OpenJDK几乎包括了Sun JDK的全部代码。

Java虚拟机发展史

Sun公司的java虚拟机

  • Sun Classic VM: JDK1.0提供的一个纯解释执行的Java虚拟机。
  • Exact VM:JDK1.2提供,具有两级及时编译器、编译器与解释器混合工作模式,使用了准确式内存管理(Exact Memory Management,也叫Non-Conservative/Accurate Memory Management)而得名,即虚拟机可以知道内存中某个位置的数据具体式什么类型。譬如内存中有一个32位的整数123456,它到底式一个reference类型指向123456的内存地址还是一个数值位123456的整数,虚拟机将有能力分辨出来,这样才能在GC(垃圾收集)的时候准确判断堆上的数据是否还可能被使用。Exact VM抛弃了Classic VM基于handler的对象查找方式(原因是进行GC后对象将可能会被移动位置,如果将地址为123456的对象移动到654321,在没有明确信息表明内存中哪些数据是reference的前提,虚拟机不敢把内存中所有为123456的值改成654321的,所以要使用句柄来保持reference值的稳定),这样每次对象都少了一次间接查找的开销,提升执行性能。
  • HotSpot VM:(目前一直使用)JDK1.2提供,内置了JIT(Just in Time)编译器,继承了前面2款虚拟机的优点如:Exact Memory Management。自己新技术,如其名:HotSpot指的就是它的热点代码探测技术,ExactVM中也有,热点探测可以通过执行计数器找出最具有编译价值的代码,然后通知JIT编译器以方法为单位进行编译。

其它公司的Java虚拟机

  • JRockit VM:BEA公司收购的,并将其发展为一款专门为服务器硬件和服务器端应用场景高度优化的虚拟机,由于不太关注程序启动速度只专注与服务端应用,因此JRockit内部不包含解析器实现,全部代码都靠即使编译器编译执行,JRockit的垃圾收集器和MissionControl服务套件等部分的实现,在众多Java虚拟机中也处于领先。

可以运行在Java虚拟机上的语言

可以运行在Java虚拟机上的语言

图片来源
对于这些运行于java虚拟机之上,Java语言之外的语言,来自系统级的、底层底层的支持正在迅速增强,JSR-292为核心的一系列项目和功能改进,推动java虚拟机从“Java语言的虚拟机”向“多语言虚拟机"的方向发展。

编写JDK使用的语言

  • OpenJDK的各个组成部分(Hotspot、JDK API、JAXWS、JAXP....)有的是使用C++编写的,更多的代码则是使用Java自身实现的。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,904评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,581评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,527评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,463评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,546评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,572评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,582评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,330评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,776评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,087评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,257评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,923评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,571评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,192评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,436评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,145评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容