Chapter 1 Java平台概论

来源:互联网 发布:java redis使用教程 编辑:程序博客网 时间:2024/06/06 21:43

Chapter 1 Java平台概论

  • Chapter 1 Java平台概论
    • 1 Java不只是语言
      • 11 前世今生
      • 12 三大平台
      • 13 JCP与JSR
      • 14 Oracle JDK与OpenJDK
      • 15 建议的学习路径
    • 2 JVMJREJDK
      • 21 什么是JVM
      • 22 区分JRE与JDK
      • 23 下载安装JDK
      • 24 认识JDK安装内容

1.1 Java不只是语言

从1995年至今,Java已经过20个年头,经过这些年的演进,Java已经不仅是一个程序语言,也代表了解决问题的平台,更代表了原厂、各个厂商、社群、开发者与用户沟通的成果。若仅仅以程序语言的角度来看待java,则是比较局限的。

1.1.1 前世今生

语言的诞生有其目的,这个目的也会成就语言的主要特性。

  • Java 诞生

Java最早是Sun公司绿色项目Green Project中撰写Star7应用程序的程序语言,当时名称不是Java,而是取名为Oak,但后来发现Oak名称已经被注册了,而改名为Java。

Java本身会见到许多为了节省资源而作的设计,像是动态加载类别文档、字符串池(String Pool)等特性,这是因为Java一开始就是为了消费性数字产品而设计,而这类小型装置通常有着有限内存与运算资源。

万维网的兴起,Java Applet成为网页互动技术的代表。

  • 版本演进

随着Java越来越受到瞩目,Sun在1998年12月4日发布Java 2 Platform,简称J2SE 1.2,Java开发者版本一开始是以Java Development Kit名称发表,简称JDK,而J2SE则是平台名称,包含了JDK与Java程序语言。

Java平台标准版约以两年为周期推出重大版本更新,1998年12月4日发表J2SE 1.2,2000年5月8日发表J2SE 1.3,2002年2月13日发表J2SE 1.4,Java 2这个名称也从J2SE1.2一直沿用至之后各个版本。

2004年9月29日发表的Java平台标准版的版号不是1.5,而直接跳到5.0,称为J2SE 5.0,这是为了彰显这个版本与之前的版本有极大不同,如语法上的简化,增加泛型(Generics),枚举(Enum),注释(Annotation)等重大功能。

2006年12月11日发表的Java平台标准版,除了版本号,名称也有了变化,称为Java Platform,Standard Edition 6,简称Java SE 6,JDK 6全名为 Java SE Development Kit 6,也就是不再像以前Java 2带有2这个号码,版本号6或1.6.0都使用,6是产品版本(Product Version),而1.6.0是开发者版本(Developer Version)。

  • 江山易主

2010年年中,Oracle宣布并购Java,java也正式成为Oracle所属。

1.1.2 三大平台

随着Java应用领域的越来越广,Sun公司在1999年6月美国旧金山的Java One大会上,公布了新的Java体系架构,该架构根据不通级别的应用开发区分了不同的应用版本:J2SE(Java 2 Platform,Standard Edition)、J2EE(Java 2 Platform,Enterprise Edition)与J2ME(Java 2 Platform,Micro Edition)。

  • Java SE

Java SE可以分为四个主要的部分:JVM、JRE、JDK与Java语言。

为了能够运行Java撰写好的程序,必须有Java虚拟机JVM,JVM包括在Java执行环境JRE,所以为了要运行Java程序,必须安装JRE,如果要开发Java程序,必须取得JDK,JDK包括JRE及开发过程中需要的一些工具程序,像是javac、java、appletviewer等工具程序。

  • Java EE

Java EE以Java SE为基础,定义了一系列的服务,API、协议等,适用于开发分布式、多层次、以组件为基础,以Web为基础的应用程序,整个Java EE的体系是相当庞大的,比较为人熟悉的技术像是JSP、Servlet、JavaMail、Enterprise JavaBeans(EJB)等,其中每个服务或技术都可以使用专书进行说明。

  • Java ME

Java ME是Java平台版本中最小的一个,目的是作为小型数字设备上开发及部署应用程序的平台,像是消费性电子产品或嵌入式系统等,最为人熟悉的设备如手机、PDA、股票机等。可以使用Java ME来开发出这些设备上的应用,如Java游戏,股票相关程序、记事程序、日历程序等。

1.1.3 JCP与JSR

Java由Sun创造,为了让对Java感兴趣的厂商、组织、开发者与用户参与定义Java未来的功能与特性,Sun公司于1998年组成了JCP(Java Community Process),这是一个开发性国际组织,目的是让Java演进由Sun非正式地主导,成为全世界数以百计代表成员公开监督的过程。

任何想要提议加入Java的功能或特性,必须以JSR(Java Specification Requests)正式文件的方式提交,JSR必须经过JCP执行委员会投票通过,方可成为最终标准文件,有兴趣的厂商或组织可以根据JSR实现产品。

若JSR成为最终文件后,必须根据JSR成果做出免费且开发原始码的参考实现,称为RI(Reference Implementation),并提供TCK(Technology Compatibility Kit)作为技术兼容测试工具箱,方便于其他想根据JSR实现产品的厂商或组织参与测试兼容性。

1.1.4 Oracle JDK与OpenJDK

2006年的JavaOne大会上,Sun宣布对Java开放源代码,从JDK7 b10开始有了OpenJDK,并于2009年4月15日正式发布OpenJDK,Oracle时代发布的JDK7正式版本,指定了OpenJDK7作为官方参考实现。

1.1.5 建议的学习路径

  • 深入了解JVM/JRE/JDK
  • 理解封装、继承、多态
  • 掌握常用Java SE API架构
  • 学习容器观念
  • 研究开放原始码项目
  • 学习设计模式与重构
  • 熟悉相关开发工具

1.2 JVM/JRE/JDK

这里写图片描述

如果安装JDK,就会安装这全部的东西,而Java Language只是最左上角一小部分,所以我们不能只从程序语言的角度来看Java。

1.2.1 什么是JVM

JVM会架构在Solaris、Linux、Windows各种操作系统平台上。

Java是个高级语言,要让计算机执行所撰写的程序,得通过编译程序的翻译,不过Java编译时,并不直接编译为相依于某平台的0、1序列,而是翻译为中介格式的位码(Byte Code)。

Java原始码扩展名为.java,经过编译程序翻译为扩展名为.class的位码。如果想要执行位码文档,目标平台必须安装JVM。JVM会将位码翻译为相依于平台的机器码。所以对于不同的平台必须安装专属该平台的JVM。因此有了JVM,就能够达到“编译一次,处处运行”的跨平台目的。

对于Java程序而言,只认识一种操作系统,这个系统叫JVM,位码文档(扩展名为.class的文档)就是JVM的可执行文件。

1.2.2 区分JRE与JDK

从上图中右边可以看到Java SE API涵盖了各式常用的链接库,像是通用的集合(Collection)、输入/输出、联机数据库的JDBC、撰写窗口程序的AWT与Swing等,这些都是在各个JSR标准文件规范中。

JRE就是Java执行环境,包括Java SE API与JVM。只要使用Java SE API中的链接库,在安装有JRE的计算机上就可以直接运行,无须额外在程序中再包装链接库,而可以由JRE直接提供。

要在.java中撰写Java程序语言,使用编译程序编译为.class文档,编译程序的工具程序由JDK提供,全名:Java Develpoment Kit。

JDK包括了javac、appletviwer、javadoc等工具程序,对于要开发Java程序的人,必须安装的是JDK,这样才有这些工具程序可以使用,JDK本身包括了JRE,这样才能执行Java程序。

1.2.3 下载、安装JDK

要下载JDK,

http://www.oracle.com/technetwork/java/javase/downloads/index.html

这里使用的均是JDK8。

安装过程中几个概念需要介绍一下:

Development Tools(开发工具)就是安装编译程序之类的工具程序,要开发Java程序,这个就必须安装。Source Code(源代码)是JRE中Java SE API的操作程序代码。Public JRE(公共JRE)就是JRE,这个公共JRE是相对JDK中自带的JRE而言的。安装Public JRE或自行下载JRE安装,会注册Java Plugin、Web Start等浏览器或桌面客户端必要的元件,方便需要JRE的应用程序使用。

1.2.4 认识JDK安装内容

这里需要注意区分Public JRE 和JDK中自带的JRE的区别,JDK本身附带的Private JRE,主要是开发Java程序时测试之用,就Java SE 8而言,与Public JRE 安装后的内容是相同的,安装Public JRE或自行下载JRE安装,会注册Java Plugin、Web Start等浏览器或桌面客户端必要的组件,方便需要JRE的桌面应用程序使用。

原创粉丝点击