# Java简介
[TOC]
## Java导学
Java是一门**面向对象**的编程语言。本质上来说,Java的学习与英语日语韩语等语言的学习并没有什么区别。
就以英语为例,我们学习英语,会学习英语的语法单词等。在学习完以后,我们会使用英语来和懂英语的人进行对话。因为双方的交流都是以英语为基础,大家都懂各自的意思,所以对方才能接受。
对于编程语言也是如此,我们写出来的东西,不仅仅是人要接受,还要计算机能够认识。所以我们就要学习计算机能够认识的语法结构。
## Java简介
### 历史
Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。
Java分为三个体系:
* JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
* JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
* JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。
~~~ascii
三者关系
┌───────────────────────────┐
│Java EE │
│ ┌────────────────────┐ │
│ │Java SE │ │
│ │ ┌─────────────┐ │ │
│ │ │ Java ME │ │ │
│ │ └─────────────┘ │ │
│ └────────────────────┘ │
└───────────────────────────┘
~~~
2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名以取消其中的数字"2":J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME。
2009年,Oracle公司收购sun公司,获得Java的版权
2019年,Java SE13发布
>[success] 小故事
> Java语言其实是有个曾用名的,叫Oak,而且起这个名字的时候也是很随心的,只是因为看到了窗口外的一颗橡树,所以就叫为Oak,但Oak这个名字已经被注册。最后他们以Java这个名字命名了这个语言,据说是Sun公司的程序员们都很喜欢喝咖啡,而且对爪哇岛的一种咖啡印象很深,所以就有了Java这个经典的名字和咖啡的图标。
### Java的特性
Java可以理解为编程语言或者开发工具。
>[warning] Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程
> Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性(跨平台)、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
**对于跨平台的理解**
为了让平台对编程人员透明,写出可以在不同平台运行的相同源代码,Java 开发出了 JVM (Java 虚拟机)。
>[info] 一次编译,到处运行。
### 目的
Java 最终的目的是用于编写直接在机器上运行的程序。
与 HTML 运行依靠浏览器,SQL 运行依靠数据库系统对比,Java 能做的事情更多,更加的普遍。
### 开发准备
1. JDK下载
本次课程我们使用JDK 1.8,可以在Oracle官网上进行下载。
建议下载exe版本的JDK使用。
2. JDK安装
下载完成以后直接进行安装,直接下一步就好。
![](https://img.kancloud.cn/2d/16/2d1673a9714fc7e22aa4dffbb10a14b5_711x281.png)
>[info]bin:存放了一系列的Java命令和工具
jre:JavaRuntimeEnvironment,Java运行时的环境,如果你的计算机要运行Java编写的程序,可以没有JDK,但是不能没有JRE
lib:类库,JavaSE提供的标准类库,用的时候也称为API
src.zip:source源代码
但是安装完成以后此时还不能很方便的使用,需要我们进行环境变量的配置。
通常情况我们需要配置以下三个变量:
1. JAVA\_HOME:指向Jdk的安装目录,作用是一些基于Java开发的工具会用到,比如tomcat,Eclipse,如果不用这些工具不需要配置。
`JAVA_HOME=d:\xx\xx\jdk1.8`
![](https://img.kancloud.cn/78/1a/781a22dd956ef46ad9043dfbcf462076_698x181.png)
2. Path:指向jdk安装目录下的bin目录,作用是指定命令搜索路径,bin目录下有编译、启动(javac/java)等命令,为了任何目录位置下都可以直接输入命令,而不用输入长长的路径了。如果配置了JAVA \_HOME ,直接把%JAVA\_HOME%/bin追加到PATH中即可。
`%JAVA_HOME%\bin;%JAVA\_HOME%\jre\bin;`
![](https://img.kancloud.cn/b1/ef/b1efc01e46aae54bd2d929092fdee60f_698x181.png)
3. CLASSPATH:在于告诉Java执行环境,在哪些目录下可以找到我们所要执行的Java程序所需要的类或者包。不过在JDK1.5之后的版本完全可以不用设置classpath环境变量就能正常运行程序
### 一些概念
之前我们已经下载并安装了Java的JDK,那么jdk到底是什么,它有着什么样的作用呢,接下来我们就来认识几个新的概念
![](https://img.kancloud.cn/d2/f5/d2f5a606407a45ac7b60754fc87fef63_1014x496.png)
>[info] SDK——soft development kit,软件开发工具包。sdk是一个大的概念,比如开发安卓应用,你需要安卓开发工具包,叫 android sdk,比如你开发java程序,需要用到java sdk,所以一般使用sdk这个概念,你需要在前面加上限定词。
JDK——可以理解为 java sdk,它是编写java程序,使用到的工具包,为程序员提供一些已经封装好的 java 类库。
![](https://img.kancloud.cn/90/d1/90d1914c8b3de717cfff3093750e2745_867x574.png)
## 开发第一个Java程序
我们来新建一个Java文件来验证刚刚配置的开发环境是否正确。
### 编写源代码:
**类编写的注意点:**
1. 文件名**必须**用大写字母开头,而且用驼峰命名方式,尽量不要出现怪异的字符,文件后缀名用.java,比如StudentScore.java
2. 代码中的类名**必须**和文件名一致
3. 在类定义的文件路径中尽量不要出现中文
4. 严格仿照代码格式等书写以做测试
在某个目录中新建一个名叫 Hello.java 的文件(注意把文件后缀隐藏选项去掉),文件内容如下
~~~
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
~~~
### 编译源代码
1、使用 javac 命令将 Hello.java 文件编译成 Hello.class 字节码文件
> 在.java文件所在目录,按住shift键,右键打开控制台,或者从控制台切换到工作目录
> 执行javac Hello.java,注意:这边Hello.java一定要携带.java后缀
~~~
PS D:\jdk> javac Hello.java
~~~
2、使用 java 命令,调用本机的 JVM 执行字节码文件
> 经过编译后多出一个Hello.class文件(即字节码文件)
> 字节码文件就是运行在JVM(Java Virtual Machine)
> 执行java Hello命令,在控制输出Hello,World!字符
~~~
PS D:\jdk> java Hello
Hello,world
~~~
### Java代码跨平台的原理
> 源代码通过javac命令编译成.class的二进制字节码文件
> 在不同的操作系统的JVM中,可以运行相同的.class文件,输出程序内容,这也是Java跨平台的主要原因
![](https://img.kancloud.cn/df/0a/df0a7951eb13285a3a58010a754f63f3_885x474.png)
具体说来,就是以下图示:
![](https://img.kancloud.cn/5f/9b/5f9b4af4d4dcab3f0bd5d31a4517352d_2375x1066.png)
## 使用eclipse开发Java程序
### Eclipse的安装
下载地址:[https://www.eclipse.org/downloads](https://www.eclipse.org/downloads)
注意:eclipse的版本下载要同电脑安装的jdk版本相对应。
~~~
打开cmd命令提示符,输入java -version,查看本机的jdk版本
~~~
以下是eclipse版本和jdk版本的对应表:
![](https://img.kancloud.cn/04/f5/04f5aab4e5890bfbb897e5456d477e87_795x459.png)
![](https://img.kancloud.cn/cb/08/cb08738caa3270da04608c979f792119_788x188.png)
安装:下载完jar包后,解压到文件夹中。
ps:注意解压的路径中不要出现中文和空格,以及特殊字符。
### eclipse的使用
IDE (集成开发环境):可以自动编译(保存即编译)、代码提示。
**工作空间**
在 Eclipse 中可以建立多个工作空间(workspace),每个工作空间可以建立多个项目(project)
一个工作空间就是一套配置信息,在进行了工作空间切换后,之前工作空间的配置将不会生效。
程序在 project 中开发。
**使用**:
* 解压后打开eclipse文件夹,双击文件夹中的eclipse.exe文件,就可以打开
* 打开后会要求我们设置workspace工作空间,这个工作空间就是我们以后代码存放的地方。
* 右击Package Explorer区域,new->Java Project新建一个java项目,并在project name中输入项目名字。
* 在 src 中新建 class 文件
* 运行程序,在 class 文件中右键 「run as」-> 「java application」。
![](https://img.kancloud.cn/ec/2d/ec2d0a6a82ac1236dc49a27913230984_550x738.png)
![](https://img.kancloud.cn/b5/ce/b5ce62815d8053c08138642c4837c515_1358x633.png)