TreeMind树图在线AI思维导图
当前位置:树图思维导图模板资格考试计算机第01章_Java语言概述思维导图

第01章_Java语言概述思维导图

  收藏
  分享
免费下载
免费使用文件
U728527260 浏览量:482023-03-09 09:22:25
已被使用3次
查看详情第01章_Java语言概述思维导图

第01章_Java语言概述

树图思维导图提供 第01章_Java语言概述 在线思维导图免费制作,点击“编辑”按钮,可对 第01章_Java语言概述  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:6d16cdeb374681006755346ea7d025ce

思维导图大纲

第01章_Java语言概述思维导图模板大纲

讲师:尚硅谷-宋红康(江湖人称:康师傅)

官网:

1. Java知识脉络图

1.1 Java基础全程脉络图

<img src="images/Java基础全程脉络图.png" alt="Java基础全程脉络图" style="zoom: 50%;" />

1.2 本章专题与脉络

<img src="images/第1阶段:Java基本语法-第01章.png" alt="第1阶段:Java基本语法-第01章" style="zoom: 45%;" />

2. 抽丝剥茧话Java

2.1 当前大学生就业形势

麦可思研究院

2022年中国大学生就业报告

<img src="images/37cb4fd26b284de3913374e9660e870d.jpeg" alt="img" style="zoom: 50%;" />

<img src="images/jiuyezhiliang1.jpg" alt="jiuyezhiliang1" style="zoom: 67%;" />

报告还对毕业三年后的2017届毕业生所在十大行业进行了统计:

麦可思研究院

2021年中国大学生就业报告

<img src="images/jiuyezhiliang2.jpg" alt="jiuyezhiliang2" style="zoom: 60%;" />

从国家统计局发布的2021年全国平均工资来看,不管在城镇非私营单位还是私营单位,

2.2 IT互联网是否依旧靠谱

过去不能代表未来!互联网是否依旧靠谱?!

<img src="images/image-20220523002428542.png" alt="image-20220523002428542" style="zoom:80%;" />

2014 年至 2018 年间,我国网民规模从 6.49 亿增长为 8.29 亿,增幅为

随着 5G 技术进一步拓宽移动互联网的速度和容量,

当下,5G、物联网、人工智能、产业互联网都是国家政策大方向,需要大量

2.3 IT行业岗位分析

<img src="images/image-20220522234544537.png" alt="image-20220522234544537" style="zoom: 80%;" />

软件开发,是进入互联网IT圈最好的选择之一!

起始薪资高

工作环境好

涨薪幅度高

行业更公平

2.4 软件开发之Java开发

images/image-20220504101615999.png

images/image-20220608160444947.png

<img src="images/image-20220511092649122.png" alt="image-20220511092649122" style="zoom: 65%;" />

<img src="images/20220608

<img src="images/image-20220511090528043.png" alt="image-20220511090528043" style="zoom:67%;" />

企业级应用领域(JavaEE后台)

<img src="images/image-20220511091647358.png" alt="image-20220511091647358" style="zoom:70%;" />

images/image-20220513233529610.png

> Eversoft公司在提到2022年Java发展趋势时写道: > >

大数据分析、人工智能领域

游戏领域、桌面应用、嵌入式领域:

移动应用领域(集成Android平台)

J

2.5 到底多少人在用Java

2020年,根据 IDC 的报告“Java Turns 25”显示,超过

... Java 一直是开发人员中最流行的编程语言,被誉为“

我想告诉大家:

“市场的需求比较大,市场的供给比较大”

“如果你在Java领域里持续积累5-7年以上,那么你至少会成为这个行业的一个专家!”

2.6 八卦一下程序员

<img src="images/image-20220602105134523.png" alt="image-20220602105134523" style="zoom:80%;" />

还可以是:

images/image-20220602105213557.png

2.7 Java系列课程体系

见02_学习路线图之《Java中高级程序员全程学习路线图.xmind》

2.8 Java职业晋升路线图

images/技术发展路线.jpg

薪资数据统计来源:拉勾网

3. 计算机的硬件与软件

3.1 计算机组成:硬件+软件

images/image-20220524152902812.png

3.2 CPU、内存与硬盘

人靠大脑思考,电脑靠CPU来运算、控制。

计算机最主要的存储设备,容量大,断电数据不丢失。

正常分类:

固态硬盘在开机速度和程序加载速度远远高于机械硬盘,缺点就是贵,所有无法完全取代机械硬盘。

硬盘(Hard Disk Drive)

内存(Memory)

负责硬盘上的数据与CPU之间数据交换处理

具体的:保存从硬盘读取的数据,提供给CPU使用;保存CPU的一些临时执行结果,以便CPU下次使用或保存到硬盘。

断电后数据丢失。

CPU(Central Processing Unit,中央处理器)

images/image-20220731234604511.png

3.3 输入设备:键盘输入

熟悉指法

<img src="images/image-20220517100223784.png" alt="image-20220517100223784" style="zoom: 80%;" />

不熟悉键盘的小伙伴,可以“

<img src="images/image-20220517100543176.png" alt="image-20220517100543176" style="zoom:67%;" />

4. 软件相关介绍

4.1 什么是软件

软件,即一系列按照

Pascal之父Nicklaus Wirth: “Programs = Data Structures + Algorithms”

系统软件:

images/image-20220522215226273.png

应用软件:

images/macdesk.png

4.2 人机交互方式

<img src="images/u=2668016850,3232153547&fm=253&fmt=auto&app=138&f=JPEG" alt="img" style="zoom:67%;" />

命令行方式

C

指令

图形化界面

G

4.3 常用的DOS命令

DOS(Disk Operating System,磁盘操作系统)是Microsoft公司在Windows之前推出的一个操作系统,是单用户、单任务(即只能执行一个任务)的操作系统。现在被Windows系统取代。

对于Java初学者,学习一些DOS命令,会非常有帮助。

进入DOS操作窗口:

按下Windows+R键盘,打开运行窗口,输入cmd回车,进入到DOS的操作窗口。

<img src="images/image-20220520100110104.png" alt="image-20220520100110104" style="zoom:80%;" />

常用指令:

操作1:进入和回退

| 操作 | 说明 | | ------------------- | ----------------------------------- | | 盘符名称: | 盘符切换。E:回车,表示切换到E盘。 | | dir | 列出当前目录下的文件以及文件夹 | | cd 目录 | 进入指定单级目录。 | | cd 目录1\目录2\... | 进入指定多级目录。cd atguigu\JavaSE | | cd .. | 回退到上一级目录。 | | cd \ 或 cd / | 回退到盘符目录。 |

操作2:增、删

| 操作 | 说明 | | ------------- | -------------------------------------------------- | | md 文件目录名 | 创建指定的文件目录。 | | rd 文件目录名 | 删除指定的文件目录(如文件目录内有数据,删除失败) |

操作3:其它

| 操作 | 说明 | | ----------------- | -------------------- | | cls | 清屏。 | | exit | 退出命令提示符窗口。 | | ← → | 移动光标 | | ↑ ↓ | 调阅历史操作命令 | | Delete和Backspace | 删除字符 |

5. 计算机编程语言

5.1 计算机语言是什么

计算机编程语言

编程语言

命令

计算机语言有很多种。如:C 、C++、Java、Go、JavaScript、Python,Scala等。

语言

体会:语言 = 语法 + 逻辑

5.2 计算机语言简史

这种语言本质上是计算机能识别的唯一语言,人类很难理解。可以大胆想象"

images/image-20220309223406537.png

1946年2月14日,世界上第一台计算机

0000,0000,000000010000 代表 LOAD A, 16

0001,0001,000000010000 代表 STORE B, 16

0000,0001,000000000001 代表 LOAD B, 1

优点:能编写

缺点:汇编语言是

<img src="images/image-20220309223725671.png" alt="image-20220309223725671" style="zoom:67%;" />

比起机器语言,汇编大大进步了,是机器语言向更高级的语言进化的

使用英文缩写的

第二代:汇编语言(相当于人类的青铜&铁器时代)

高级语言

高级语言发展于20世纪50年代中叶到70年代,是一种

images/image-20211218092541175.png

第三代:高级语言(相当于人类的信息时代)

第一代:机器语言(相当于人类的石器时代)

<img src="images/image-20211218092630678.png" alt="image-20211218092630678" style="zoom:80%;" />

images/image-20211218092541075.png

此外,高级语言按照程序设计方法的不同,又分为:

C、Pascal、Fortran面向过程的语言

C++面向过程/面向对象

Java跨平台的纯面向对象的语言

C#、Python、JavaScript、Scala…

目前以及可预见的将来,计算机语言仍然处于“第三代高级语言”阶段。但是不管是什么语言,最后都要向机器语言靠近,因为CPU只认识0和1。

5.3 计算机语言排行榜

TIOBE (https://www.tiobe.com/tiobe-index/)是一个流行编程语言排行,每月更新。排名权重基于世界范围内 工程师数量,Google、Bing、Yahoo! 、Wikipedia、Amazon、Youtube和百度这些主流的搜索引擎,也将作为排名权重的参考指标。

images/image-20221027112824724.png

计算机语言走势

images/image-20221027113511832.png

5.4 编程语言,该学哪个?

<img src="images/image-20220310151657860.png" alt="image-20220310151657860" style="zoom: 50%;" />

网传的编程语言鄙视链:

images/image-20220310151750665.png

C语言:万物之源

偏向计算机底层操作(操作系统、网络、硬件驱动等)。

优势:几乎所有现代编程语言都脱胎于C

劣势:相当陡的学习曲线;不支持面向对象编程

诞生于

C++语言:难学的语言

诞生于1983年,作为C语言的增强方案、

用途:windows 或 MacOS UI、office全家桶、主流的浏览器、Oracle、MySQL、著名的游戏引擎(如星际争霸、魔兽世界)等

优势:很多公司都用 C++ 开发核心架构,如 Google、腾讯、百度、阿里云等;面向对象性

劣势:体系极为庞大,这是世界目前来说

C#语言:背靠大树的语言

诞生于

用途:windows桌面应用开发、Windows Azure、游戏开发

PHP语言:最好的语言?

诞生于1994年,一款

PHP语法和C类似,有很多的模板和框架,简单易懂,也许你可以在短短几天做出web app。它主要用于web端,快速建站网络开发

劣势:学习门槛太低;其代码运行速度低于大部分编程语言党争对手

Python:易学的语言

诞生于1991年,一种面向对象的语言,虽然运行效率不高,但是

Python被称为

JavaScript语言:前端为王

诞生于1995年,网景公司开发完成。

JavaScript是JavaScript 是目前

Java语言:需求旺盛

创建于1995年,Java是一种面向对象、基于类的编程语言。

Java可能是目前

具有强大的开源开发工具,大量的开源共享库。

Java拥有世界上

Go语言:夹缝中生存

Go 语言现在很受关注,它是取代 C 和 C++ 的另一门有潜力的语言。

Go语言已成为

Go 语言语法特别简单,你有了 C 和 C++ 的基础,学习 Go 的学习成本基本为零。

Go社区从Java社区移植了各种优秀的框架或库。

总结:

程序设计语言有很多种,每种语言都是为了实现某个特定的目的而发明的。

没有“最好”的语言

Talk is cheap,Show me the code

如果你掌握了一种编程语言,也会更容易上手其它的编程语言。关键是学习如何使用

6. Java语言概述

6.1 Java概述

是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以在

伴随着互联网的迅猛发展,以及Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。

6.2 Java语言简史

起步阶段:

1991年,Sun公司的工程师小组想要设计一种语言,应用在

Gosling团队率先创造了这个语言,并命名为“

随着20世纪90年代互联网的发展,Sun公司发现该语言在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。(Java是印度尼西亚

images/image-20220309230839100.png

发展阶段:

| 发行版本 | 发行时间 | 备注 | | :-----------: | :------------: | :----------------------------------------------------------: | | Java 1.0 | 1996.01.23 | Sun公司发布了Java的第一个开发工具包 | | Java 1.1 | 1997.02.19 | JavaOne会议召开,创当时全球同类会议规模之最。 | | Java 1.2 | 1998.12.08 | Java拆分成:J2SE(标准版)、J2EE(企业版)、J2ME(小型版) | | Java 1.3 | 2000.05.08 | | | Java1.4 | 2004.02.06 | | |

6.3 Java之父

<img src="images/image-20220310152923961.png" alt="image-20220310152923961" style="zoom:67%;" />

James Gosling于1984 年加入Sun公司,并一直服务于Sun公司,直至2010年前后,Sun被Oracle并购而加入Oracle,担任客户端软件集团的首席技术官; 2010年4月从Oracle离职。

詹姆斯·高斯林(James Gosling)

6.4 公司八卦

SUN 与 Oracle

SUN是一家

<img src="images/image-20220309230923533.png" alt="image-20220309230923533" style="zoom: 67%;" />

Oracle 与 Google

Google和Oracle的侵权事件:

Oracle认为Google的代码中使用了Java的

Oracle认为Android 中有

2010 年 8 月,Oracle 起诉 Google 的 Android 系统侵权,要求赔偿 26 亿美元。

2018 年 3 月,美国联邦巡回上诉法院裁决,谷歌侵犯了甲骨文的版权,支付高达

2021 年 4 月,美国最高法院给出了最终裁决:谷歌胜诉,其代码属于“合理使用”的范畴。为期十多年的软件行业“第一版权案”落幕。

java //Code In OpenJDK / Android : 1. private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) { 2. if (fromIndex > toIndex) 3. throw new IllegalArgumentException("fromIndex(" + fromIndex + 4. ") > toIndex(" + toIndex+")"); 5. if (fromIndex < 0) 6. throw new ArrayIndexOutOfBoundsException(fromIndex); 7. if (toIndex > arrayLen) 8. throw new ArrayIndexOutOfBoundsException(toIndex); 9. }

images/image-20221027145908490.png

6.5 Java技术体系平台

Java EE(Java Enterprise Edition)企业版

为开发企业环境下的应用程序提供的一套解决方案,即定位

JavaEE是JavaSE的扩展,增加了用于服务器开发的类库。如:Servlet能够延伸服务器的功能,通过请求-响应的模式来处理客户端的请求;JSP是一种可以将Java程序代码内嵌在网页内的技术。

版本以前称为J2EE

Java ME(Java Micro Edition)小型版

支持Java程序运行在

JavaME是JavaSE的内伸,精简了JavaSE 的核心类库,同时也提供自己的扩展类。增加了适合微小装置的类库:javax.microedition.io.*等。

此版本以前称为J2ME

Java SE(Java Standard Edition)标准版

支持面向

包括用户界面接口AWT及Swing,网络功能与国际化、图像处理能力以及输入输出支持等。

此版本以前称为J2SE

images/image-20211218093009884.png

注意:

Android开发不等同于Java ME的开发

7. Java开发环境搭建(掌握)

7.1 什么是JDK、JRE

JRE

(

J

undefineda

R

n

E

v

JVM

核心类库

JDK

J

undefineda

D

v

K

t

JRE

如下是Java 8.0 Platform:

images/JDKJRE.jpg

<img src="images/image-20220310200731185.png" alt="image-20220310200731185" style="zoom:67%;" />

小结:

JDK = JRE + 开发工具集(例如Javac编译工具等)

JRE = JVM + Java SE标准类库

7.2 JDK版本选择

<img src="images/image-20221108221057540.png" alt="image-20221108221057540" style="zoom:80%;" />

images/image-20220310201541841.png

自Java 8版本发布以来,其后的每次更新,都会有小伙伴高呼:

论坛的声音:“

数据说话1:

JRebel 于2022年4月前后发布了《2022 年Java生态系统状况报告》,报告中提到使用Java11 的占比最多,Java 8 紧随其后,如下图。而此前2020年的报告显示,Java8占比达到了

images/d315.jpeg

我的分析:

G1是最受欢迎的GC算法。Java 11及更高版本的G1收集器是默认的GC,而Java 8中并不是。出于对G1的喜爱,很多开发者才会选择抛弃Java 8。

数据说话2:

此外,某美国软件开发商在对近千名专业的Java开发者调研后,发布的《2022年Java开发者生产力报告》称:八年前发布的Java 8依然是Java中应用最广泛的版本,占比

高斯林说话:

<img src="images/image-20220428151952049.png" alt="image-20220428151952049" style="zoom: 67%;" />

Spring框架说话:

在Java 17正式发布之前,Java开发框架Spring率先在官博宣布,Spring Framework 6和Spring Boot 3计划在2022年第四季度实现总体可用性的高端基线:

Jakarta EE 9+(来自Spring框架5.3.x 线中的 Java EE 7-8)

Java 17+(来自 Spring Framework 5.3.x 线中的 Java 8-17)

Spring 官方说明:

images/image-20220527155439683.png

意味着:springboot3.0 是需要用java17和spring6.0为基础建设。如果从企业选型最新springboot3.0作为架构来说,它搭配jdk17肯定是标配了。

7.3 JDK的下载

下载网址(Oracle公司官网):www.oracle.com

下载步骤:如图所示,在官网底部选择Developers开发者

images/下载1.png

(1)在Developers页面中间的技术分类部分,选择

<img src="images/image-20211019110551338.png" alt="image-20211019110551338" style="zoom: 50%;" />

(2)这里展示的是最新Java版本,例如Java17。单击

<img src="images/image-20211019110843394.png" alt="image-20211019110843394" style="zoom:80%;" />

(3)选择Download Java按钮后

images/image-20211019111110242.png

(4)如果想安装Java8 可以选择如下位置:

<img src="images/image-20211019111150970.png" alt="image-20211019111150970" style="zoom:80%;" />

(5)选择Accept License Agreement,

<img src="images/image-20211019111252989.png" alt="image-20211019111252989" style="zoom:80%;" />

(6)注册或登录后下载:

<img src="images/image-20211019111922387.png" alt="image-20211019111922387" style="zoom:50%;" />

(7)如果需要安装其它版本,可以选择Java archive:

<img src="images/image-20220801004606762.png" alt="image-20220801004606762" style="zoom: 67%;" />

接着进行选择下载即可:

<img src="images/image-20220801004648997.png" alt="image-20220801004648997" style="zoom:67%;" />

7.4 JDK的安装

安装步骤:

安装说明

傻瓜式安装,下一步即可。

建议:安装路径不要有中文或者空格等特殊符号。

本套课程会同时安装JDK8 和 JDK17,并以JDK17为默认版本进行讲解。

(1)双击

images/image-20220303083718546.png

(2)修改安装路径,单击更改,如图所示:

images/image-20220303083759546.png

(3)将安装路径修改为

images/image-20220303083845794.png

(4)稍后几秒,安装完成,如图所示:

images/image-20220303083905277.png

images/image-20220303083931309.png

7.5 配置path环境变量

7.5.1 理解path环境变量

什么是path环境变量?

答:window操作系统执行命令时,所要搜寻的路径。

为什么配置path?

答:希望在命令行使用javac.exe等工具时,任意目录下都可以找到这个工具所在的目录。

以JDK为例演示

我们在

images/image-20220310223852720.png

我们在JDK的安装目录的bin目录下使用javac命令,结果如下:

<img src="images/image-20220607113708022.png" alt="image-20220607113708022" style="zoom:75%;" />

我们不可能每次使用java.exe,javac.exe等工具的时候都进入到JDK的安装目录下,太麻烦了。这时就需要配置path环境变量。

7.5.2 JDK8配置方案1:只配置path

步骤:

(1)打开桌面上的计算机,进入后在左侧找到

images/image-20220310224844837.png

(2)选择

images/image-20220310224912273.png

(3)在

images/image-20220310224952745.png

(4)在

images/image-20220310225023208.png

(5)点击

编辑模式1:

<img src="images/image-20220607114102135.png" alt="image-20220607114102135" style="zoom:80%;" />

编辑模式2:(注意,结尾需要有英文模式下的;)

images/image-20220929104547925.png

(6)环境变量配置完成,

<img src="images/image-20220607114432286.png" alt="image-20220607114432286" style="zoom:80%;" />

<img src="images/image-20220607114517652.png" alt="image-20220607114517652" style="zoom:90%;" />

7.5.3 JDK8配置方案2:配置JAVA_HOME+path(推荐)

步骤:

(1)打开桌面上的计算机,进入后在左侧找到

images/image-20220310224844837.png

(2)选择

images/image-20220310224912273.png

(3)在

images/image-20220310224952745.png

(4)在

<img src="images/image-20220310225245208.png" alt="image-20220310225245208" style="zoom:90%;" />

(5)变量名输入

<img src="images/image-20220607114800372.png" alt="image-20220607114800372" style="zoom:80%;" />

(6)选中

images/image-20220310225023208.png

(7)在变量值的最前面,键入

<img src="images/image-20220607114953758.png" alt="image-20220607114953758" style="zoom:80%;" />

注意:强烈建议将%JAVA_HOME%\bin声明在path环境变量中所有变量的最前面!

(8)环境变量配置完成,

<img src="images/image-20220607114432286.png" alt="image-20220607114432286" style="zoom:80%;" />

<img src="images/image-20220607114517652.png" alt="image-20220607114517652" style="zoom:90%;" />

我想说:

有的书籍、论坛、视频上还提到配置classpath,用于指名class文件识别的路径。其实是没必要的,反而建议大家如果配置了classpath环境变量,要删除。对于初学者,反而不友好。

小结如下:

images/image-20220607115255562.png

7.5.4 JDK17配置方案:自动配置

不管大家有没有提前安装JDK8或其它版本JDK,在我们安装完JDK17之后,理应按JDK8的方式配置path环境变量。但是,我们发现在安装完JDK17以后,配置环境变量之前,执行CMD指令:

<img src="images/image-20220607115700870.png" alt="image-20220607115700870" style="zoom:80%;" />

竟然成功了!而且是17.0.2版本。因为JDK17在安装之后,自动进行了环境变量的配置。如下:

<img src="images/image-20220607115840388.png" alt="image-20220607115840388" style="zoom:80%;" />

这里建议,将JDK17安装的路径,设置为JAVA_HOME,并将

<img src="images/image-20221110142710972.png" alt="image-20221110142710972" style="zoom:80%;" />

<img src="images/image-20221110142734279.png" alt="image-20221110142734279" style="zoom:80%;" />

思考:如果你仍然希望在JDK8下开发Java程序?如何做呢?

8. 开发体验:HelloWorld(掌握)

JDK安装完毕,我们就可以开发第一个Java程序了,习惯性的称为:HelloWorld。

8.1 开发步骤

Java程序开发三步骤:

images/image-20220310230210728.png

8.2 编写

(1)在

<img src="images/image-20220801010222222.png" alt="image-20220801010222222" style="zoom:90%;" />

(2)用记事本或editplus等文本编辑器打开(虽然记事本也可以,但是没有关键字颜色标识,不利于初学者学习)

(3)在文件中输入如下代码,并且保存:

java class HelloChina { public static void main(String[] args) { System.out.println("HelloWorld!!"); } }

友情提示2:

友情提示1:每个字母和符号必须与示例代码一模一样,包括大小写在内。

<img src="images/image-20220310230618659.png" alt="image-20220310230618659" style="zoom:67%;" />

<img src="images/image-20220521173215013.png" alt="image-20220521173215013" style="zoom:90%;" />

第一个

8.3 编译

在DOS命令行中,进入

使用文件资源管理器打开

<img src="images/image-20220801010435144.png" alt="image-20220801010435144" style="zoom:80%;" />

命令:

java javac Java源文件名.后缀名java

举例:

javac HelloWorld.java

<img src="images/image-20220801010840640.png" alt="image-20220801010840640" style="zoom:80%;" />

编译成功后,命令行没有任何提示。打开

8.4 运行

在DOS命令行中,在字节码文件目录下,使用

命令:

java java 主类名字

主类是指包含main方法的类,main方法是Java程序的入口:

j

}

举例:

java HelloChina

错误演示:

java HelloChina.class

<img src="images/image-20220801011104381.png" alt="image-20220801011104381" style="zoom:80%;" />

9. Java开发工具

9.1 都有哪些开发Java的工具

级别一:文本开发工具

<img src="images/image-20220513185907022.png" alt="image-20220513185907022" style="zoom:50%;" />

级别二:集成开发环境(Integrated Development Environment,IDE)

把代码编写,编译,执行,调试等多种功能综合到一起的开发工具。

<img src="images/image-20220513190655773.png" alt="image-20220513190655773" style="zoom:50%;" />

9.2 如何选择

前期我们先使用文本开发工具,培养

后期我们使用IDE,提供

10. HelloWorld案例常见错误

10.1 拼写问题

单词拼写问题

Java语言是一门严格区分大小写的语言

标点符号使用问题

10.2 编译、运行路径问题

举例1:

<img src="images/image-20220310231657692.png" alt="image-20220310231657692" style="zoom:80%;" />

源文件名不存在或者写错

当前路径错误

后缀名隐藏问题

举例2:

<img src="images/image-20220310231717893.png" alt="image-20220310231717893" style="zoom:80%;" />

类文件名写错,尤其文件名与类名不一致时,要小心

类文件不在当前路径下,或者不在classpath指定路径下

10.3 语法问题

举例1:

<img src="images/image-20220310231746581.png" alt="image-20220310231746581" style="zoom:90%;" />

声明为public的类应与文件名一致,否知编译失败。

举例2:

<img src="images/image-20220310231815405.png" alt="image-20220310231815405" style="zoom:80%;" />

编译失败,注意错误出现的行数,再到源代码中指定位置改错

10.4 字符编码问题

当cmd命令行窗口的字符编码与.java源文件的字符编码不一致,如何解决?

解决方案一:

在Notepad++等编辑器中,修改源文件的字符编码:

<img src="images/Notepad修改源文件字符编码.png" alt="1557881271819" style="zoom:80%;" />

在EditPlus中可以将Java源文件另存为ANSI编码方式(中文操作系统下即为GBK字符集)

<img src="images/1658810752424.png" alt="1658810752424" style="zoom:80%;" />

解决方案二:

在使用javac命令式,可以指定源文件的字符编码

cmd javac -encoding utf-8 Review01.java

10.5 建议

必要的空格

变量类型、变量、赋值符号、变量值之间填充相应空格,更美观。比如: int num = 10;

注意缩进!

只要遇到{}就缩进,缩进的快捷键tab键。

一定要有缩进。缩进就像人得体的衣着一样!

11. HelloWorld小结

11.1 Java程序的结构与格式

结构:

java 类{ 方法{ 语句; } }

格式:

(1)每一级缩进一个Tab键

(2){}的左半部分在行尾,右半部分单独一行,与和它成对的"{"的行首对齐

11.2 Java程序的入口

Java程序的入口是main方法

j

}

11.3 两种常见的输出语句

java System.out.println(输出内容);

java System.out.print(输出内容);

直接输出语句

换行输出语句

注意事项:

​ 换行输出语句,括号内可以什么都不写,只做换行处理

​ 直接输出语句,括号内什么都不写的话,编译报错

11.4 源文件名与类名

(1)源文件名是否必须与类名一致?public呢?

j

如果这个类是public,那么要求源文件名必须与类名一致。否则编译报错。

我们建议大家,不管是否是public,都与源文件名保持一致,而且一个源文件尽量只写一个类,目的是为了好维护。

(2)一个源文件中是否可以有多个类?public呢?

j

但是一个源文件只能有一个public的类。

12. 注释(comment)

<img src="images/image-20220610113151774.png" alt="image-20220610113151774" style="zoom: 67%;" />

注释是一个程序员必须要具有的良好编程习惯。实际开发中,程序员可以先将自己的

> 程序员最讨厌两件事: > > 一件是自己写代码被要求加注释 > > 另一件是接手别人代码,发现没有注释

不加注释的危害

images/新来的菜鸟程序员闯祸了。。。这段代码好多年都没人敢动过的.gif

Java中的注释类型:

多行注释

/* 注释文字1 注释文字2 注释文字3 */

文档注释 (Java特有)

/** @author 指定java程序的作者 @version 指定源文件的版本 */

单行注释

//注释文字

注释的作用

它提升了程序的可阅读性。(不加注释的危害性,见图。)

调试程序的重要方法。

多行注释里面不允许有多行注释嵌套。

一个段子

java A:嘿 //是什么意思啊? B:嘿. A:呃 我问你//是什么意思? B:问吧. A:我刚才不是问了么? B:啊? A:你再看看记录... B:看完了. A:......所以//是啥? B:所以什么? A:你存心耍我呢吧? B:没有啊 你想问什么? …… 不断循环之后,A一气之下和B绝交,自己苦学程序。 N年之后,A终于修成正果,回想起B,又把聊天记录翻出来看,这时,他突然发现B没有耍他…… 而他自己也不知道当年他问B的究竟是什么问题……

对于单行和多行注释,被注释的文字,不会不会出现在字节码文件中,进而不会被JVM(java虚拟机)解释执行。

具体使用1:单行注释、多行注释

操作方式。比如:

javadoc -d mydoc -author -version HelloWorld.java

文档注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。

具体使用2:文档注释(Java特有)

什么是注释?

源文件中用于解释、说明程序的文字就是注释。

<img src="images/image-20220310232527578.png" alt="image-20220310232527578" style="zoom:67%;" />

案例:

j

多行注释

/** Java程序的入口 @param args main方法的命令参数 */ public static void main(String[] args){ System.out.println("hello"); }

}

13. Java API文档

API (Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口。

Java语言提供了大量的基础类,因此 Oracle 也为这些基础类提供了相应的说明文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。大多数Java书籍中的类的介绍都要参照它来完成,它是编程者经常查阅的资料。

Java API文档,即为JDK使用说明书、帮助文档。类似于:

<img src="images/新华字典.jpg" alt="新华字典" style="zoom:28%;" />

下载API文档:

14. Java核心机制:JVM

14.1 Java语言的优缺点

Java确实是从C语言和C++语言继承了许多成份,甚至可以将Java看成是类C语言发展和衍生的产物。“青出于蓝,而胜于蓝”。

14.1.1 优点

通过Java语言编写的应用程序在不同的系统平台上都可以运行。“

原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (

跨平台性:

<img src="images/JVM的跨平台性-1666858570703.jpg" alt="JVM的跨平台性" style="zoom:70%;" />

images/image-20211217111217831.png

面向对象是一种程序设计技术,非常

健壮性:

Java适合于网络/分布式环境,需要提供一个安全机制以防恶意代码的攻击。如:

安全性高:

Java就是C++语法的

简单性:

Java低性能的短腿,已经被完全解决了

Java最初发展阶段,总是被人诟病“

高性能:

面向对象性:

14.1.2 缺点

一般适用于大型网站开发,

并非适用于所有领域

语法过于复杂、严谨

薪资待遇节节攀升

14.2 JVM功能说明

JVM

J

undefineda

V

r

M

undefinedh

<img src="images/image-20220310165805739.png" alt="image-20220310165805739" style="zoom:67%;" />

14.2.1 功能1:实现Java程序的跨平台性

我们编写的Java代码,都运行在

<img src="images/image-20220513191856727.png" alt="image-20220513191856727" style="zoom:50%;" />

使用JVM前后对比:

images/image-20220514151716805.png

14.2.2 功能2:自动内存管理(内存分配、内存回收)

Java程序在运行过程中,涉及到运算的

Java消除了程序员回收无用内存空间的职责。提供了一种系统级线程跟踪存储空间的分配情况,在内存空间达到相应阈值时,检查并释放可被释放的存储器空间。

GC的自动回收,提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上

面试题:

Java程序还会出现内存溢出和内存泄漏问题吗? Yes!

15. 章节案例

案例1:个人信息输出

java class Exercise1{ public static void main(String[] args){ System.out.println("姓名:康师傅"); System.out.println();//换行操作 System.out.println("性别:男"); System.out.println("家庭住址:北京程序员聚集地:回龙观"); } }

案例2:输出:心形

结合\n(换行),\t(制表符),空格等在控制台打印出如下图所示的效果。

images/image-20220309004152219-1646757896991.png

方式一:

j

System.out.println("*"); System.out.print("*"); System.out.print("\t"); //System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.print("I love java"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.println("*"); System.out.print("\t"); System.out.print("*"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.println("*"); System.out.print("\t"); System.out.print("\t"); System.out.print("*"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.println("*"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.print("*"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.println("*"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.print("*"); System.out.print("\t"); System.out.println("*"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.print("\t"); System.out.print(" "); System.out.print("*"); }

}

方式二:

j

System.out.print("\t"+"*"+"\t\t\t\t\t\t\t\t\t\t\t\t"+"*"+"\t"+"\n"); System.out.print("*"+"\t\t"+"*"+"\t\t\t\t"+"I love Java"+"\t\t\t\t"+"*"+"\t\t\t"+"*"+"\n"); System.out.print("\t"+"*"+"\t\t\t\t\t\t\t\t\t\t\t\t"+"*"+"\t"+"\n"); System.out.print("\t\t"+"*"+"\t\t\t\t\t\t\t\t\t\t"+"*"+"\t\t"+"\n"); System.out.print("\t\t\t"+"*"+"\t\t\t\t\t\t\t\t"+"*"+"\t"+"\n"); System.out.print("\t\t\t\t"+"*"+"\t\t\t\t\t\t"+"*"+""+"\t"+"\n"); System.out.print("\t\t\t\t\t"+"*"+"\t\t\t\t"+"*"+""+"\t\t"+"\n"); System.out.print("\t\t\t\t\t\t"+"*"+"\t\t"+"*"+""+"\t\t"+"\n"); System.out.print("\t\t\t\t\t\t\t"+"*"+"\n"); }

}

相关思维导图模板

发电厂电气部分模块划分思维导图思维导图

树图思维导图提供 发电厂电气部分模块划分思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 发电厂电气部分模块划分思维导图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:d19c03d1be8cb7ef7f63d2705151b362

第十章 情绪思维导图

树图思维导图提供 第十章 情绪 在线思维导图免费制作,点击“编辑”按钮,可对 第十章 情绪  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:d5f4a81acd1f9d3afcb29b39ed4f89b5