Java 介绍与环境搭建
Java 背景介绍
Java 背景故事
Java 语言是美国 Sun 公司(Stanford University Network)在 1995 年推出的计算机语言。后被 Oracle 公司收购。
Java 之父:詹姆斯·高斯林(James Gosling)。
![image-20230113210357630](https://img-blog.csdnimg.cn/img_convert/87de21d8164f399bc5106f6e25432a86.png)
Java 三大平台
Java SE
Java SE : Java 语言的(标准版),用于桌面应用的开发,是其他两个版本的基础。
桌面应用 :用户只要打开程序,程序的界面会让用户在最短的时间内找到他们需要的功能,同时主动带领用户完成他们的工作并得到最好的体验。
学习 Java SE 的目的 : 为今后要从事的 Java EE 开发,打基础。
示例:
电脑自带的计算器:
![image-20230113210808086](https://img-blog.csdnimg.cn/img_convert/8057b48d1f5e8807452300b535fa502a.png)
坦克大战游戏:
![image-20230113210825829](https://img-blog.csdnimg.cn/img_convert/6141213e8ec60bb87b69e8aac03265a9.png)
Java ME
Java ME : Java 语言的(小型版),用于嵌入式消费类电子设备。
![image-20230113210857152](https://img-blog.csdnimg.cn/img_convert/bfc9e7c961b802d8b4b62d32923cfe8d.png)
现已淘汰,了解即可:
![image-20230113210930888](https://img-blog.csdnimg.cn/img_convert/f709719055b7a81e586febfc1acd10a4.png)
Java EE
Java EE : Java 语言的(企业版),用于 Web 方向的网站开发。
唯品会:
![image-20230113211019980](https://img-blog.csdnimg.cn/img_convert/0a215bde6cbb86d4d342899b43b6906c.png)
京东:
![image-20230113211056441](https://img-blog.csdnimg.cn/img_convert/f05fc863a911aa9e8f6aa23debdf723e.png)
淘宝:
![image-20230113211117317](https://img-blog.csdnimg.cn/img_convert/58b390a13d1111d5ebc9cce653cc7718.png)
网页:用于数据展示
网站:网页 + 后台服务器
下面是一个网站:
![image-20230113211327673](https://img-blog.csdnimg.cn/img_convert/d3a3df0c04a0164fb60c4b4d4d734c87.png)
用户输入用户名和密码:
![image-20230113211359849](https://img-blog.csdnimg.cn/img_convert/41261df46ba106fc82e77b9c29a30dd3.png)
点击登录,将用户名和代码发送到后台服务器:
![image-20230113211521181](https://img-blog.csdnimg.cn/img_convert/35f2cf5e4884dce7afb488eb84528a3e.png)
服务器对输入的用户名和密码进行验证:
![image-20230113211637949](https://img-blog.csdnimg.cn/img_convert/0c0ceb0c230110b9936a4fdd57a0a54e.png)
Java 跨平台工作原理
平台与跨平台
平台:指的是操作系统。
跨平台:Java 程序可以在任意操作系统上运行。
难道不是所有的语言都支持跨平台吗?这里我们以C#为例:
![image-20230113211939685](https://img-blog.csdnimg.cn/img_convert/7de31c573a1a53ee5b08269a12240c9c.png)
![image-20230113212024457](https://img-blog.csdnimg.cn/img_convert/30ed0f64232391d537bcea87a89929fa.png)
跨平台工作原理
![image-20230113212112201](https://img-blog.csdnimg.cn/img_convert/5db18b13d6ff9e2805c50a933bebbfdd.png)
总结:在需要运行 Java 应用程序的操作系统上,安装一个与操作系统对应的Java虚拟机(JVM Java Virtual Machine)即可。
跨平台实例:
以我们经常玩的手机游戏为例:
![image-20230113212415649](https://img-blog.csdnimg.cn/img_convert/2ffee3e600b2d90b95f1dec2be829662.png)
我们可以在电脑上借助手机模拟器,实现跨平台使用:
![image-20230113212521947](https://img-blog.csdnimg.cn/img_convert/46fb050dca0cf1e6badf64fcc0104afe.png)
JVM虚拟机本身是否可以跨平台?
JVM 虚拟机本身不允许跨平台,允许跨平台的是 Java 程序
JDK 下载和安装
下载 JDK
JDK(Java Development Kit)
首先我们先了解一下 JDK 的版本:
![image-20230113213034516](https://img-blog.csdnimg.cn/img_convert/d35e5f4cf8028c2be1866447a37e005e.png)
最新版本已经到了19了,但是我们还是使用长期支持版本。
长期支持版本有3个,分别是 Java(8.0)、Java(11.0)、Java(17.0),其中:
Java8是目前企业使用最多的一个版本,它的兼容性最好、稳定性最强。
Java11目前也是比较稳定的一个版本,现在部分公司已经开始由Java8转11。
这里我们使用的是Java17。
通过官方网站获取 JDK
http://www.oracle.com
点击产品:
![image-20230113220355583](https://img-blog.csdnimg.cn/img_convert/e322c40770384a5ae18fd39e9fe1d346.png)
选择Java
![image-20230113220432142](https://img-blog.csdnimg.cn/img_convert/be4d0e5473f9a06e02165333bc7556d7.png)
点击下载 Java:
![image-20230113220505299](https://img-blog.csdnimg.cn/img_convert/f0d5d59ba7d0f74c20ee468ad9af37ff.png)
下载 JDk:
![image-20230113220744356](https://img-blog.csdnimg.cn/img_convert/33a597b1cdf3f0a17a97b16e11935c9b.png)
注意:针对不同操作系统,下载对应的 JDK。
下载成功:
![image-20230113220914364](https://img-blog.csdnimg.cn/img_convert/fcc1eefa88c7215c96d3c21b972085bc.png)
安装 JDK
安装到 [自己能找到] [纯英文] 的路径下,例如 D:\Develop\jdk。
在 D 盘新建一个文件夹:
![image-20230113221126388](https://img-blog.csdnimg.cn/img_convert/5cf3d5d317cdafbbfe155aa11d96f68b.png)
找到安装包,双击:
![image-20230113221235747](https://img-blog.csdnimg.cn/img_convert/d3f564ca5d6177bd4f1477cdef528a2b.png)
点击下一步:
![image-20230113221437875](https://img-blog.csdnimg.cn/img_convert/bcfe5506b536c4d480a365c97b1ed423.png)
设置安装路径:
![image-20230113221747960](https://img-blog.csdnimg.cn/img_convert/fe11023fcac412fa1f5d29220619dce8.png)
点击安装:
![image-20230113221821990](https://img-blog.csdnimg.cn/img_convert/ab68426f7c0f46d721285928584e6541.png)
安装成功:
![image-20230113221932771](https://img-blog.csdnimg.cn/img_convert/0ae67a5707cd77b51579e747303dce25.png)
查看安装版本:
![image-20230113222439726](https://img-blog.csdnimg.cn/img_convert/52aa6b65dd0051eb5c988d2f1c7c4263.png)
第一个 Java 程序
HelloWorld 介绍
HelloWorld中文意思是『你好世界』
该程序的效果就是在让程序帮我们展示一段文字,内容为 HelloWorld
![image-20230114085032585](https://img-blog.csdnimg.cn/img_convert/cd88a8b2915c79fd950f2892c9601872.png)
Java 程序开发的三个步骤
- 编写代码
- 编译代码
- 运行代码
![image-20230114085101884](https://img-blog.csdnimg.cn/img_convert/f25f7239a101e5ca4a41bdcf6f09031b.png)
HelloWorld 案例的编写和运行
新建文本文档文件,修改名称为 HelloWorld.java
![image-20230114085255631](https://img-blog.csdnimg.cn/img_convert/8126bfc9fc9ba34a8ac29e058d3cc5b2.png)
用记事本打开 HelloWorld.java文件,输写程序内容
public class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld");
}
}
![image-20230114085710158](https://img-blog.csdnimg.cn/img_convert/cd9e63661b14a22292c338cc6effe166.png)
使用 javac.exe [编译] 使用 java.exe [运行]
![image-20230114094950824](https://img-blog.csdnimg.cn/img_convert/2b107eb2ee2db51ccd86e8c71b81f511.png)
HelloWord 案例详解
HelloWorld 案例代码详解
![image-20230114100618827](https://img-blog.csdnimg.cn/img_convert/9bce97175de35238ddb75388f07c83b6.png)
HelloWorld 案例常见问题
![image-20230114100650429](https://img-blog.csdnimg.cn/img_convert/c95baf59d71f313ab1f477a5b226a8d1.png)
原意是臭虫或者虫子,现在用来指代在电脑系统或者程序中隐藏的一些问题或者漏洞。
Bug由来
BM 在1944年建造了当时最大的机电计算机之一:Harvard MarkⅠ,它是给二战同盟国建造的,有76万5千个组件,300万个连接点和500英里长的导线。这台及其最早的用途之一是给“曼哈顿计划”模拟。Harvard MarkⅠ有3500个继电器,由于当时的继电器寿命,几乎每天都需要更换一个故障继电器,此外这些巨大、黑色、温暖的及其也会吸引昆虫。
1945年,计算机还是由机械式继电器和真空管驱动的,机器有房间那么大。体现当时技术水平的Harvard MarkⅡ,是由哈佛大学制造的一个庞然大物。1947年9月,Harvard MarkⅡ的操作员检查故障时,发现这台巨大的计算机内部一组继电器的触点之间有一只死掉的飞蛾,这显然是由于飞蛾受光和热的吸引,飞到了触点上,然后被高电压击死。Grace Hopper曾说:“从那时起,每当电脑出了问题,我们就说它有了虫子”(From then on, when anything went wrong with a computer, we said it had bugs in it.)。
格蕾丝·霍波(Grace Hopper,是一位为美国海军工作的电脑专家,也是最早将人类语言融入到电脑程序的人之一。),格蕾丝·霍波其实并不是那位发现这只飞蛾的人,她只是欣然承认了而已。发现飞蛾的操作员,包括威廉姆·比尔·伯克,伯克在弗吉尼亚州达尔格伦的海军武器实验室,熟悉工程术语,好逗乐,给飞蛾写下了“首个发现bug的实际案例”。这个日志本现存于史密森尼国立美国历史博物馆,飞蛾还完整地贴于其上。
![image-20230114101030214](https://img-blog.csdnimg.cn/img_convert/d9835bedfe064fde463d5a5e17ec4712.png)
![image-20230114100927975](https://img-blog.csdnimg.cn/img_convert/fd5cd6baebcb2ea00d05c46a434951b0.png)
![image-20230114101044576](https://img-blog.csdnimg.cn/img_convert/024bc012b04cddda85d5eafced332041.png)
常见问题:
-
Windows的文件扩展名没有勾选
![image-20230114101324603](https://img-blog.csdnimg.cn/img_convert/193abf3034728b28bf149acb1e8e62a4.png)
解决方案:必须勾选文件扩展名,再新建Java文件。
-
代码写了,但是忘记保存了
![image-20230114101352405](https://img-blog.csdnimg.cn/img_convert/2c529569b58f47479972d440b0e0b3bf.png)
-
文件名和类名不一致。
![image-20230114101428971](https://img-blog.csdnimg.cn/img_convert/c4b178a9f5b867fe1bc7615dd6f0abba.png)
-
大小写错误,单词拼写错误,存在中文符号,找不到main方法。
![image-20230114101452511](https://img-blog.csdnimg.cn/img_convert/9a8eff67885c691b6ca32e3298a7e7b5.png)
-
括号不配对。
![image-20230114101512239](https://img-blog.csdnimg.cn/img_convert/33d381479a2ba842b57754e71247e4c3.png)
-
编译或执行工具使用不当
![image-20230114101559504](https://img-blog.csdnimg.cn/img_convert/a883931553e4ba65d31789072b8cca2d.png)
一个什么错都犯过的程序员,才是真正的程序员!
![image-20230114101620231](https://img-blog.csdnimg.cn/img_convert/07a41ce08e3752cc2720abd6902d5503.png)
JDK 的组成
- JVM(Java Virtual Machine):Java虚拟机, 真正运行Java程序的地方
- 核心类库:Java自己写好的程序,给程序员自己的程序调用的
- JRE(Java Runtime Environment): Java的运行环境
- JDK(Java Development Kit): Java开发工具包(包括上面所有)
![image-20230114110326338](https://img-blog.csdnimg.cn/img_convert/63086f615d7c146c12657cfdd1a7ace3.png)
配置 JAVA_HOME
一个神奇的现象
Java帮助我们配置的环境,仅仅包含了4个工具。
![image-20230114112743254](https://img-blog.csdnimg.cn/img_convert/6088e64a14c81b655b1dd8f522943c67.png)
![image-20230114112008189](https://img-blog.csdnimg.cn/img_convert/09fea7342b797b03af021a9ac73d04d5.png)
默认配置功能不全,将影响到将来要学习的另一个开发软件。
![image-20230114112055610](https://img-blog.csdnimg.cn/img_convert/cab9a2cdebe3f2d9713877c79e865bd0.png)
JAVA_HOME 配置方式
方法一(不推荐):
先将安装时配置的环境变量删除,将jdk的安装路径复制到 Path 中:
![image-20230114115100275](https://img-blog.csdnimg.cn/img_convert/fb83ede77f45178c7c4dc5eb0f94edee.png)
![image-20230114114750332](https://img-blog.csdnimg.cn/img_convert/6786374f379e55a59a1705e11cf0cbdd.png)
注意:这样可能会产生一些其他问题。
方法二:
![image-20230114112331327](https://img-blog.csdnimg.cn/img_convert/7c4601ca2c6999506b488380482efc86.png)
新建 JAVA_HOME:
![image-20230114115504409](https://img-blog.csdnimg.cn/img_convert/81358f6df85c93af8e46f38823b6b73c.png)
在 Path 中新建环境变量:
![image-20230114115600462](https://img-blog.csdnimg.cn/img_convert/48c21210efbb8bd0c1d3b1af1925cd37.png)
![image-20230114115718179](https://img-blog.csdnimg.cn/img_convert/1d9f9e52cdd82dd6c4d53c7e80d3a268.png)
验证环境配置:
![image-20230114115801676](https://img-blog.csdnimg.cn/img_convert/2067cbc67f9f18c4f76e06e7486292d3.png)
Java17的话比以前安装的java8安装过程更简洁一点,无需再配置 JAVA_CLASS。
注意事项
从 Win8 开始,电脑重启后可能会出现环境变量失效问题解决方案:
-
重新打开 path 环境变量,无需做任何改动,点击确定不使用
![image-20230114120125363](https://img-blog.csdnimg.cn/img_convert/55e6ac3077653ee230a95b10a012bfcb.png)
-
JAVA_HOME 将bin目录的完整路径配置到 path 中
![image-20230114114750332](https://img-blog.csdnimg.cn/img_convert/6786374f379e55a59a1705e11cf0cbdd.png)