学习Java需要了解必要的Java历史,不要觉得Java历史对学习Java编程没有任何帮助。在任何时候,了解一门语言的历史都能帮助更好地理解这门语言的精髓。以前在学习语文时,在分析一篇文章,通常会通过5W2H分析法来分析一篇文章的始末。这里我也将通过5W2H中的4W1H来带大家走近Java。(4W1H:Who,What,Why,When,How)
引用《深入理解Java虚拟机》一书中的一句话作为开篇:
世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程。
一、Who
Java之父:詹姆斯-高斯林。我们习惯称之为高司令。1991年4月,由高司令领导的绿色计划开始启动,这个计划的产品就是Java语言的前身:Oak(橡树)。随着1995年互联网潮流的兴起,Oak迅速找到了最适合自己发展的市场定位并蜕变成为Java语言。
主要公司:Sun(Stanford University Network,斯坦福大学网络公司)。Oracle,2009年4月20号收购Sun公司。
二、What
Java概述与其体系结构
Java不仅仅是一门编程语言,还是一个由一系列计算机软件和规范形成的技术体系。这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统,移动终端,企业服务器、大型机等各种场合。Java体系结构主要包括:Java程序设计语言、支持各种硬件平台的Java虚拟机、Class文件格式、Java API类库、第三方Java类库。
对于这几个组成部分的名词解释:API,英文全称为Application Programming Interface,应用程序编程接口。可以简单理解为Java里写好的一些代码,可根据规则直接来使用以达到某种目的的方法。Class文件格式,即Java是一种编译型语言,即它的语法不能直接被计算机识别,需要编译后才能识别。源码文件以.java结尾,而编译后的文件以.class结尾。
通常我们把Java程序设计语言、Java虚拟机、Java API类库这三部分统称为JDK(Java Development Kit)。从英文全称中的development也可以推测出它是用于开发的。JDK是用于支持Java程序开发的最小环境。在后面我们讲Java环境搭建时其实就是配置JDK的环境。另外Java 核心API与Java虚拟机这两部分称为JRE(Java Runtime Environment),即JRE主要用于支持Java程序的运行。
Java语言平台
J2SE(Java 2 Platform Standard Edition):是为开发普通桌面和商务应用程序提供的,它是其他两者的基础。像我们入门学习Java写的一些程序都属性J2SE
J2ME(Java 2 Platform Micro Edition):是为开发电子消费产品和嵌入式设备
J2EE(Java 2 Platform Enterprise Edition):主要针对Web应用程序开发。后续将会进行知识点介绍
三、Why
Java语言的优点
一次编写,多处运行:这个优点是所有Java程序员都知道的一个优点。它摆脱了硬件平台的束缚。
提供了一个相对安全的内存管理和访问机制,这点对于学过C语言的人会比较有同感,在C语言里,经常会有指针滥用的情况,而在Java则避免了绝大部分的内存泄露和指针越界问题
有完善的类库和无数第三方类库来帮助实现各种各样的功能
......
四、When
Java发展史
1991年4月,绿色计划开启;
1995年5月,Oak语言改名为Java。也就是Java语言诞生的年份;
1996年1月,JDK1.0发布;
JDK1.0一共发布了1.1.0~1.1.8九个版本,中间经历了1.2,1.3,1.4,1.5,1.6,1.7,1.8,到现在1.9已经发布。
其中比较有历史意义的版本有:
JDK1.5,引入了自动装箱、泛型、动态注解、可变参数等诸多新特性。JDK1.7,1.8现在比较常用的两个版本,1.8引入了许多有用的新特性,比如lamda表达式等。
Java虚拟机发展
Java虚拟机的存在是使得Java实现一处编写,多处运行的关键。这里我们只需要了解目前使用得最为广泛的Java虚拟机是HotSpot VM。后面深入学习Java时,再进行介绍。感兴趣的可以查阅《深入理解Java虚拟机》一书,或自行查找相关资料。
五、How
如何学习Java
对于任何一门编程语言,学习的方法都是通用的,那就是写代码,只有写代码,测试出来的结果才是最可靠,也是最容易记住的。如果你是小白,新入门一门语言,那么在学习的时候,不要钻牛角尖,先记住用法,学会之后再了解原理,先会用再去知道为什么要这样用。如果你是已经学过一门语言的人,再接触新语言时,大致浏览新语言的语法即可。注意多种语言之间的对比。当然不管什么方法,最为关键的还是多写,多百度,多google。