初识Java
Java是一种高级的面向对象的程序设计语言。
Java 简介
Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出。 后来 Sun 公司被 Oracle (甲骨文)公司收购,Java 也随之成为 Oracle 公司的产品。
Java分为三个体系:
- JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
- JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
- JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。 2005 年 6 月,JavaOne 大会召开,SUN 公司公开 Java SE 6。此时,Java 的各种版本已经更名,以取消其中的数字 “2”:J2EE 更名为 Java EE,J2SE 更名为Java SE,J2ME 更名为 Java ME。
Java各版本的含义
Java SE(Java Standard Edition):标准版,定位于个人计算机的应用开发
这个版本是Java平台的核心,它提供了非常丰富的API来开发一般个人计算机上的应用程序,包括用户界面接口AWT及Swing,网络功能与国际化、图像处理能力以及输入输出支持等。 在20世纪90年代末互联网上大放异彩的Applet也属于这个版本。Applet后来被Flash取代,Flash即将被HTML 5取代。
Java EE(Java Enterprise Edition):企业版,定位于服务器端的应用开发
Java EE是Java SE的扩展,增加了用于服务器开发的类库,如:JDBC是让程序员能直接在Java内使用SQL语法来访问数据库内的数据;Servlet能够延伸服务器的功能,通过请求-响应的模式来处理客户端的请求;JSP是一种可以将Java程序代码内嵌在网页内的技术。
Java ME(Java Micro Edition):微型版,定位于消费性电子产品的应用开发
Java ME是Java SE的内伸,包含J2SE的一部分核心类,也有自己的扩展类,增加了适合微小装置的类库javax.microedition.io.*等。该版本针对资源有限的电子消费产品的需求精简核心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。
Java发展简史
991年,James Gosling所在SUN公司的工程师小组想要设计这样一种小型计算机语言:该语言主要用于像电视盒这样的消费类电子产品,另外,由于不同的厂商选择不同的CPU和操作系统,因此,要求该语言不能和特定的体系结构绑在一起,要求语言本身是中立的,也就是跨平台的。 为此,他们将这个语言命名为Green,类似于绿色软件的意思,后来,又改名为Oak,橡树的意思。改名后发现已经有一种语言叫这个名字了,于是再改名为Java。Java语言发展到今天经历了一系列过程:
- 1991年,SUN公司的Green项目,推出Oak;
- 1995年,推出Java测试版;
- 1996年,推出JDK1.0;
- 1997年,推出JDK1.1;
- 1998年,推出JDK1.2,大大改进了早期版本的缺陷,是一个革命性的版本,并更名为Java2;
- 2004年,推出J2SE 5.0 (1.5.0) Tiger(老虎);
- 2006年,推出J2SE 6.0 (1.6.0) Mustang(野马);
- 2011年,推出Java SE 7.0 Dolphin(海豚);
- 2014年,推出Java SE 8.0。
Java的特性
跨平台/可移植性
跨平台/可移植性是Java的核心优势。Java在设计时就很注重移植和跨平台性。例如Java的int永远都是32位,不像C++可能是16或32位,会根据编译器厂商规定的变化而变化,给程序的移植带来麻烦。
安全性
Java适用于网络/分布式环境。为了达到这个目标,Java系统的开发人员在安全性方面投入了很大的精力,使Java可以很容易构建出防病毒、防篡改的系统。
面向对象
面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性,而Java则是完全面向对象的语言。
简单性
Java就是C++语法的简化版。我们也可以将Java称之为“C++-”,即“C加加减”,指将C++的一些内容去掉,例如头文件、指针运算、结构、联合、操作符重载、虚基类等。同时,由于语法基于C语言,因此学习起来完全不费力。
高性能
Java在最初发展阶段,总是被人诟病性能低。客观上,高级语言运行效率总是低于低级语言的,这是无法避免的。Java语言本身在发展中通过对虚拟机的优化提升了几十倍的运行效率,例如,通过即时编译(JUST IN TIME,JIT)技术提高运行效率,将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样使得Java程序的执行效率大大提高,某些代码甚至接近C++的效率。
至此,Java低性能的缺陷已经被完全解决了。在业界发展方面,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。
分布式
Java是为Internet的分布式环境而设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件一样简单。Java还支持远程方法调用(Remote Method Invocation,RMI),使程序能够通过网络调用方法。
多线程
多线程的使用可以带来更好的交互响应和实时行为。Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。
健壮性
Java是一种健壮的语言,它吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。Java程序也可能有错误,即使出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。
Java应用程序的运行机制
计算机高级语言的类型主要有编译型和解释型两种,Java语言是两种类型的结合。
Java程序员首先利用文本编辑器编写Java源程序,源文件的扩展名为.java;再利用编译器(javac)将源程序编译成字节码文件,字节码文件的扩展名为.class;最后利用虚拟机(解释器,java)解释执行。
JVM、JRE和JDK
JVM(Java Virtual Machine)就是一个虚拟的用于执行字节码的“虚拟计算机”,它也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。JVM负责解释运行Java字节码,边解释边运行,这样,速度就会受到一定影响。
不同的操作系统有不同的虚拟机。Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编写,随处运行(Write once,run everywhere)”。Java虚拟机是实现跨平台的核心机制。
JRE(Java Runtime Environment)包含Java虚拟机、库函数和运行Java应用程序所必需的文件。
JDK(Java Development Kit)包含JRE以及编译器和调试器等用于程序开发的文件。
Java环境搭建
JDK(java Development kit)是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具,必须安装JDK才能使用java语言。
window系统安装java
下载JDK
首先我们需要下载 java 开发工具包 JDK,下载地址:https://www.oracle.com/java/technologies/downloads/,在下载页面中根据自己的系统选择对应的版本,本文以 Window 64位系统为例: 下载后 JDK 的安装根据提示进行,还有安装 JDK 的时候也会安装 JRE,一并安装就可以了。
安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为 C:\Program Files (x86)\Java\jdk1.8.0_91。
配置环境变量
- 安装完成后,右击”我的电脑”,点击”属性”,选择”高级系统设置”;
- 选择”高级”选项卡,点击”环境变量”;
- 在 “系统变量” 中设置 3 项属性,JAVA_HOME、PATH、CLASSPATH(大小写无所谓),若已存在则点击”编辑”,不存在则点击”新建”。
- 变量设置参数如下:
- 变量名:JAVA_HOME
- 变量值:C:\Program Files (x86)\Java\jdk1.8.0_91 // 要根据自己的实际路径配置
- 变量名:CLASSPATH
- 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; //记得前面有个”.”
- 变量名:Path
- 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
测试JDK是否安装成功
- “开始”->”运行”,键入”cmd”;
- 键入命令: java -version、java、javac 几个命令,出现以下信息,说明环境变量配置成功; ```shell java -version
java version “1.8.0_201” Java(TM) SE Runtime Environment (build 1.8.0_201-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
## 第一个Java程序
建立第一个Java程序意味着我们已迈入了程序员的大门,是革命性的一大步。
下面看一个简单的 Java 程序,它将输出字符串 Hello World
```java
public class HelloWorld {
/* 第一个Java程序
* 它将输出字符串 Hello World
*/
public static void main(String[] args) {
System.out.println("Hello World"); // 输出 Hello World
}
}
下面将逐步介绍如何保存、编译以及运行这个程序:
打开代码编辑器,把上面的代码添加进去;
把文件名保存为:HelloWorld.java;
打开 cmd 命令窗口,进入目标文件所在的位置,假设是 C:
在命令行窗口输入 javac HelloWorld.java 按下回车键编译代码。如果代码没有错误,cmd 命令提示符会进入下一行(假设环境变量都设置好了)。
再键输入 java HelloWorld 按下回车键就可以运行程序了
你将会在窗口看到 Hello World
$ javac HelloWorld.java
$ java HelloWorld
Hello World
常用的Java开发工具
在刚开始学习时,编写简单的Java程序,读者可以使用文本编辑器,例如记事本程序。但是,记事本的功能不够强大,这时可以考虑使用“更加强大的记事本”,常见的有如下三种软件:
- Notepad++
- UltraEdit
- EditPlus 在真正学习开发,包括以后在企业中从事软件开发工作时,一般使用集成开发环境(Integrated Development Environment,IDE),如下三种软件是最常见的,尤其是Eclipse。本书只选Eclipse作为入门使用,其他两种软件读者也可自行选用,使用方法几乎相同。
- Eclipse 官方网址:http://www.eclipse.org
- IntelliJ IDE 官方网址: http://www.jetbrains.com/idea/
- NetBeans 官方网址:http://netbeans.org