Java | Java 入门
一、计算机语言发展史
- 第一代语言:机器语言(二进制)
- 第二代语言:汇编语言(指令代替二进制)
- 第三代语言:高级语言(分为面向过程和面向对象两大类)
C
语言是典型的面向过程的语言。C++
、Java
是典型的面向对象的语言。
二、初识 Java
2.1 Java 帝国的诞生
2.1.1 C & C++
1972
年C
语言诞生- 优点:贴近硬件,运行极快,效率极高。
- 缺点:指针和内存管理。
- 应用:操作系统,编译器,数据库,网络系统等。
1982
年C++
语言诞生- 优点:面向对象。
- 缺点:复杂难学。
- 应用:图形领域、游戏等。
2.1.2 Java
- 我们想要建立一个具有下列特点的新的语言:
- 语法有点像
C
- 没有指针
- 没有内存管理
- 真正的可移植性,编写一次,到处运行(
JVM
) - 面向对象
- 类型安全
- 拥有高质量的类库
- …
- 语法有点像
1. Java 初生
1995
年的网页简单而粗糙,缺乏互动性。于是创造了图形界面的程序(Applet
),Java
声名鹊起。1995
年 -1997
年,Java
迅速崛起,但是因为仅有图形界面的程序(Applet
)而受到诟病。1998
年,Java
王国派出三支部队进行扩张Java 2
标准版(J2SE
):去占领桌面。由于开发桌面应用的程序员不接受Java
,因此失败。Java 2
移动版(J2ME
):去占领手机。由于手机应用没有兴起,因此失败。Java 2
企业版(J2EE
):去占领服务器。赶上了互联网的发展,成功被开发者接受,引来了大量巨头公司加入, 授权BEA
公司,第一个使用了J2EE
许可证,推出了weblogic
应用服务器,凭借着集群功能第一次展示了复杂应用的可扩展性和高可用性(程序员们的三高:高并发、高性能、高可用)。
2. Java 发展
- 程序员基于
Java
开发了巨多的平台、系统、工具- 构建工具:
Ant
、Maven
、Jekins
- 应用服务器:
Tomcat
、Jetty
、Jboss
、Websphere
、weblogic
- Web 开发:
Struts
、Spring
、Hiberbate
、MyBatis
- 开发工具:
Eclipse
、NetBeans
、IntelliJ IDEA
、Jbuilder
- …
- 构建工具:
- 2006 年:
Hadoop
(大数据领域) - 2008 年:
Android
(手机端)
2.2 Java 特性和优势
- 简单性(简洁版
C++
) - 面向对象
- 可移植性(跨平台性)
write once, run anywhere
- 高性能
- 分布式
- 动态性(反射)
- 多线程
- 安全性
- 健壮性
2.3 Java 三大版本
JavaSE
:标准版(桌面程序,控制台开发…)JavaME
:嵌入式开发(手机,小家电…)JavaEE
:企业级开发(web端,服务器开发…)
2.4 JDK、JRE、JVM
JDK
:Java Development Kit
(JRE
基础上扩充一些开发工具)JRE
:Java Runtime Environment
(安装JRE
即可运行Java
程序)JVM
:Java Virtual Machine
(可以使用软件或硬件实现)
2.5 Java 开发环境搭建
2.5.1 JDK 下载与安装
- 官网 https://www.oracle.com/java/technologies/downloads/ 下载安装包
- 双击安装包
- 配置环境变量
- 创建
JAVA_HOME
环境变量 - 在
Path
环境变量中添加%JAVA_HOME%\bin
和%JAVA_HOME%\jre\bin
- 解决
JDK 17
中没有JRE
的方法:- 使用管理员模式打开
CMD
- 进入
JDK
的安装目录:cd C:\Program Files\Java\jdk-17.0.1
- 生成
JRE
:bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
- 使用管理员模式打开
CMD
中验证:java --version
输出版本信息
- 创建
JDK
卸载- 通过
JAVA_HOME
环境变量找到JDK
安装位置并删除 - 删除
JAVA_HOME
环境变量 - 删除
Path
环境变量中与JAVA_HOME
相关的变量 CMD
中验证:java --version
报错
- 通过
JDK
目录介绍
2.5.2 EditPlus 安装
- Notepad++ 涉嫌反华,坚决抵制使用!!!
- 官网 https://www.editplus.com/ 下载安装包
- 双击安装包
- 亲测可用:用户名:
Vovan
,密码:3AG46-JJ48E-CEACC-8E6EW-ECUAW
- 关闭自动备份:
Tools
→ \pmb{\rightarrow} →→→Preferences...
→ \pmb{\rightarrow} →→→Categories(Files)
→ \pmb{\rightarrow} →→→ 去除create backup file when saving
勾选 → \pmb{\rightarrow} →→→OK
2.6 HelloWorld 及简单语法规则
- 随便新建一个文件夹(建议命名
code
),存放代码 - 新建一个
Java
文件(创建文件,后缀名修改为.java
即可。建议命名HelloWorld.java
)- 注:系统如果不显示后缀,需要手动修改设置。
- 编写第一个
Java
程序public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello world!"); } }
- 打开控制台
CMD
,进入到HelloWorld.java
文件所在目录 - 编译成字节码文件:
javac HelloWorld.java
- 编译成功:
CMD
不报错,HelloWorld.java
文件所在目录中生成HelloWorld.class
文件
- 编译成功:
- 运行生成的
.class
文件:java HelloWorld
(不用写后缀名,java
指令会自动识别)- 运行成功:
CMD
不报错,输出Hello world!
- 运行成功:
- 注意事项:
- 每个单词的大小写不能出现问题,因为
Java
是大小写敏感的编程语言。 - 文件名和类名(
class
修饰的单词)必须保证一致,并且首字母大写。 - 尽量使用英文,且符号必须使用英文符号。
- 每个单词的大小写不能出现问题,因为
- 语法:
public class
表示一个类,HelloWorld
表示类名。public static void
表示一些修饰符,后续文章中详细讲解。main
是Java
中的主方法,程序必须通过main
方法运行。String[] args
是main
方法的参数,后续文章中详细讲解。System.out.println
表示输出,后续文章中详细讲解。
2.7 Java 程序运行机制
\quad 计算机不能直接理解 Java
这种高级语言,只能理解和运行机器语言,所以需要将高级语言翻译成机器语言,计算机才能运行高级语言所编写的程序。翻译的方式有两种:一种是编译,另一种是解释,两种方式只是翻译的时间不同。因此,高级语言有两种类型:编译型语言和解释型语言。常见的编译型语言有C/C++
、Delphi
、Pascal
、Fortran
等。常见的解释性语言有Python
、JavaScript
等。
\quad 随着硬件与技术的发展,当前编译型与解释型的界限已经不那么明确,由于计算机内存的增加,解释型语言运行速率也不断提升。
2.7.1 编译型语言
\quad 程序在运行之前需要一个专门的编译过程,通过编译系统(不仅仅只是通过编译器,编译器只是编译系统的一部分)把高级语言翻译成机器语言,运行时不需要重新翻译,直接使用编译的结果即可。优点:编译一次,永久执行,运行效率高,保护源代码。缺点:跨平台能力差。
2.7.2 解释型语言
\quad 解释型语言需要一个解释器,在程序运行的时候将高级语言翻译成机器语言,每个语句都是执行的时候才被翻译,这样解释型语言每执行一次就要被翻译一次。优点:跨平台性能好。缺点:运行时需要源代码,知识产权保护性差,运行效率低。
2.7.3 Java 语言
Java
这个语言很神奇:
- 你可以说它是编译型的。因为所有的
Java
代码都是要经过编译生成.class
文件,.java
文件不经过编译就什么用都没有。 - 你可以说它是解释型的。因为
Java
代码经过编译生成的.class
文件不能直接运行,.class
文件是需要解释运行在JVM
虚拟机上的,所以Java
又是解释运行的。
2.8 IDEA 安装
2.8.1 什么是 IDE
\quad 维基百科:集成开发环境(Integrated Development Environment
,简称 IDE
,也称为 Integration Design Environment
、Integration Debugging Environment
)是一种辅助程序开发人员开发软件的应用软件,在开发工具内部就可以辅助编写源代码文本、并编译打包成为可用的程序,有些甚至可以设计图形接口。
\quad 百度百科:集成开发环境(IDE
,Integrated Development Environment
)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。
2.8.2 IDEA 介绍
\quad IDEA
全称 IntelliJ IDEA
,是 Java
编程语言开发的集成环境。IntelliJ
在业界被公认为最好的 Java
开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE
支持、各类版本工具(git
、svn
等)、JUnit
、CVS
整合、代码分析、 创新的 GUI
设计等方面的功能可以说是超常的。IDEA
是 JetBrains
公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持 HTML
、CSS
、PHP
、MySQL
、Python
等。免费版只支持 Java
、Kotlin
等少数语言。
2.8.3 IDEA 安装
- 官网:https://www.jetbrains.com/idea/download/#section=windows 下载安装包
- 双击安装包,自行注册激活
- 使用
IDEA
编写HelloWorld
程序- 打开软件,选择
New Project
→ \pmb{\rightarrow} →→→Project SDK
(选择已经安装的jdk
) → \pmb{\rightarrow} →→→Next
→ \pmb{\rightarrow} →→→ 勾选Create project from template
→ \pmb{\rightarrow} →→→Next
→ \pmb{\rightarrow} →→→ 命名项目(HelloWorld
)、选择项目保存位置、设置包名(Hello
) → \pmb{\rightarrow} →→→Finish
- 自动生成模板:
package HelloWorld; public class Main { public static void main(String[] args) { // write your code here } }
- 补全完整代码:
package HelloWorld; public class Main { public static void main(String[] args) { // write your code here System.out.println("Hello world!"); } }
- 打开软件,选择