码迷,mamicode.com
首页 > 编程语言 > 详细

深入Java虚拟机(理解Java)

时间:2015-03-13 14:14:30      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

引子:我常说,要了解一个人,就去他生长的地方。其实,要了解一门语言,也应该去了解他的初衷。《深入Java虚拟机》的前半部分就是这样深入了Java。

1990年除,智能加电快速发展,Sun公司开发了Java的前身——Oak。Oak是一种可以撰写跨平台应用软件的面向对象的程序设计语言。由于这些智能化家电的市场需求没有预期的高,就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,在1995年5月以“Java”的名称正式发布了。可见,Java生来就是要解决跨平台问题、网络问题,它的平台无关性、安全性和网络移动性与发展中的网络相得益彰。

Java的体系结构包括四个独立的方面:

  • Java程序设计语言
  • Java class文件格式
  • Java应用编程接口(Java API)
  • Java虚拟机

其中Java虚拟机和Java API一起组成了一个平台,也被称为运行时系统,支持了Java体系结构的三大特性:平台无关、安全、网络移动。 Java虚拟机的主要任务是装载class文件并且执行字节码,由一个Java虚拟机规范所定义,可以灵活的在各种不同的设备不同的平台上进行实现。而Java API提供了一套通用的访问主机系统资源的标准方法,编写Java程序时,可以假定在任何可执行程序的Java虚拟机上都能获取Java API class文件。这些class文件屏蔽了底层的硬件差异,推动了平台无关性。

Java程序设计语言本身,充分利用了许多的软件技术:

  • 面向对象
  • 多线程
  • 结构化错误处理
  • 垃圾收集
  • 动态链接
  • 动态扩展

Java与C/C++有很大的区别,是一个完全的面向对象的语言。没有指针的概念,不直接与内存、地址打交道,需要严格遵守类型规则。在Java栈中,只存在引用和基本变量,对象统一在堆中进行管理。另外,无需释放对象,数组也是一个完整的对象,使用对象引用时不能为空等都增强了程序的健壮性和设计效率。

关于平台无关性支持的几个方面:

  • Java平台:缓冲了Java程序和硬件、操作系统
  • Java语言:值域和行为定义统一,与平台无关
  • Java class文件:严格定义,可在任何平台创建和装载
  • 可伸缩性:不同的API集

值得一提的是Java的可伸缩性:Java根据场景和需求的不同,定义了三个API子集,J2EE,J2SE,J2ME,在高端,企业版表明了高端服务的可用性,在中端,标准版提供了在浏览器中和桌面环境下的Java环境,在低端,微型版通过不同的行业子集显示了可以向下伸缩来完全适应不同的消费性电器市场和嵌入式系统。

Java的网络移动性支持:

  • 平台无关性和安全性
  • class小文件的方便传输和按序装载
  • 动态连接和动态扩展
  • class文件的紧凑设计
  • JAR支持

总结来说,Java为移动网络而生,为跨平台而生,在复杂的软硬件环境上构建了一个同构的环境,是一种不同的软件开发、软件分发、运行的模式。在Java applet、Hadoop大数据平台中不断证明了自己的价值。

深入Java虚拟机(理解Java)

标签:

原文地址:http://www.cnblogs.com/bupthua/p/4334881.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!