JavaSE | 01 Java语言概述与开发环境

相对于C++语言,Java语言有两大特征:功能强大、简单易用。Java是静态面向对象编程语言的代表。Java EE 是使用最广的企业级应用开发规范。

一、Java语言的发展历史

1990年年末,Sun公司为了发展嵌入式系统,成立了Green计划,在首席科学家 Bill Joy的推动下,Oak语言诞生了。

1994年,Oak这个商标已被人注册,于是Oak更名为Java。

1995年年初,Sun公司发布了Java语言,并免费公开给互联网上的用户来使用。几个月后,互联网上有了数不清的Java小程序(即Applet)。Java一度成为了一种广为人知的编程语言。

1996年年初,Sun公司发布了 JDK1.0,它包含运行环境JRE(包含核心API、集成API、用户界面API、JVM、发布技术)和开发环境JDK(包含javac命令行工具)。

1997年2月,又发布了JDK1.1,增加了JIT即时编译器。

1998年12月,Sun发布了Java历史上最重要的JDK版本,即JDK1.2,增加了JSP/Servlet/EJB等规范,并把Java分成了J2SE、J2EE、J2ME三大版块。其中J2SE是整个Java技术的核心和基础。

2002年2月,Sun公司发布了JDK历史上最为成熟的版本,即JDK1.4。在此期间,Java语言在企业应用领域大放异彩,涌现了大量的基于Java语言的开源框架,如Struts/WebWork/Hibernate/Spring等。

2004年10月,Sun公司了万众期待的JDK1.5,同时Sun公司将JDK1.5更名为Java SE 5.0,增加了泛型、注解、自动拆箱和装箱等功能。

2006年12月,Sun公司发布了JDK1.6(即Java SE 6),一直以来,Sun公司维持着大约2年发布一次JDK新版本。

2009年4月,Oracle公司宣布以每股9.5美元的价格收购Sun公司,该交易总价值达74亿美元。

2007年11月,Google宣布推出一款基于Linux平台的开源手机操作系统 Android,并选择使用Java语言作为开发语言。

2011年7月,Oracle公司发布了Java SE 7,引入了二进制整数、菱形语法、多异常捕获等新特性。

2014年3月,Oracle公司发布了Java SE 8,增加了Lambda表达式,等等。

二、Java的竞争对手及各自优势

与Java类似的程序设计语言,还有C#、Ruby、Python等,它们在不同方面上各有优势。

Java语言和C#都是对传统面向对象程序设计在组件化软件时代的革新成果,它们甚至有90%的重叠。Java的优势是跨平台,而C#只能局限在Windows平台上。

Ruby语言由日本人松本行弘于1993年研发,它最大的特征是简洁。2004年,Ruby阵营中出现了一个优秀的MVC框架,Ruby On Rails,这个开发框架被宣传成现在企业框架的替代品。

Python由Guido于1989年年底开发,它是基于ABC教学语言的。Python两大特色分别是可扩展性和语法清晰。

三、Java程序的运行机制

Java语言是一种特殊的高级语言,它既具有解释性语言的特性,又具有编译性语言的特性,因为Java程序要经过“先编译、后解释”两个步骤。

1、高级语言的两种运行机制

计算机高级语言,按程序的执行方式,可以分为编译型和解释型两种。

2463290-74db4c5d2b67e0b4.png
编译型.png
2463290-bdf8aead36e46b10.png
解释型.png

2、Java程序的运行机制和JVM

Java既是编译型语言(编译阶段会生成与平台无关的字节码文件),又是解释型语言(基于JVM解释运行)。

2463290-ae1a7912e9603655.png
Java程序.png

Oracle公司制定了JVM规范,在技术上规定了JVM的统一标准,具体定义了JVM的细节有:指令集、寄存器、类文件的格式、栈、垃圾回收堆、存储区。Oracle公司制定这些规范的目的是为了提供统一的标准,以实现Java程序的平台无关性。

2463290-7e1089a739dfb867.png
JVM.png

四、Java开发的准备工作

1、下载并安装 JDK

JDK 提供了编译、运行Java程序所需要的各种工具和资源,包括Java编译器、Java运行时环境JRE、以及常用的Java类库等。

JDK 中已经包含了JRE;如果只是运行Java程序,只安装JRE即可。

2、配置三个环境变量

配置三个环境变量:PATH / JAVA_HOME / CLASSPATH。

用户变量和系统变量的区别在于,前者只对当前用户有效,而后者对系统中所有用户都有效。

在JDK早期版本中,配置CLASSPATH环境变量是必不可少的;但在新版本的JDK下,是可选的。关于CLASSPATH的更深理解,可自行研究。

五、第一个Java程序

1、编写Java源程序

public class HelloWorld {
    // Java程序的入口方法,程序将从这里开始执行
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

2、编译Java程序

javac -d . HelloWorld.java
2463290-b7753d1ee5c7fec7.png
javac.png

3、运行Java程序

java -classpath . HelloWorld

java命令,有一个 -classpath 参数,用于帮助JRE寻找当前要执行的Java类的所在路径,关于java命令和 -classpath 的用法,可以查阅 java命令的相关使用文档。

六、Java程序的基本规则

2463290-9487c9a6cc219afe.png
规则1.png
2463290-96a577baf098c29e.png
规则2.png
2463290-3f98fc483144fa26.png
规则3.png

七、垃圾回收机制

2463290-442a050fb711a95b.png
自动垃圾回收机制.png
2463290-84444309c35f6ead.png
基于垃圾回收机制的代码编写建议.png


本章结束! 2019-02-03

猜你喜欢

转载自blog.csdn.net/weixin_33941350/article/details/87178603