2023最新版JavaSE教程——第1天:Java语言概述

02-27 1982阅读

目录

  • 一、抽丝剥茧话Java
    • 1.1 当前大学生就业形势
    • 1.2 IT互联网是否依旧靠谱
    • 1.3 IT行业岗位分析
    • 1.4 软件开发之Java开发
    • 1.5 到底多少人在用Java
    • 二、计算机的硬件与软件
      • 2.1 计算机组成:硬件+软件
      • 2.2 CPU、内存与硬盘
      • 2.3 输入设备:键盘输入
      • 三、软件相关介绍
        • 3.1 什么是软件
        • 3.2 人机交互方式
        • 3.3 常用的DOS命令
        • 四、计算机编程语言
          • 4.1 计算机语言是什么
          • 4.2 计算机语言简史
          • 4.3 计算机语言排行榜
          • 4.4 编程语言,该学哪个?
          • 五、Java语言概述
            • 5.1 Java概述
            • 5.2 Java语言简史
            • 5.3 Java之父
            • 5.4 公司八卦
            • 5.5 Java技术体系平台
            • 六、Java开发环境搭建(掌握)
              • 6.1 什么是JDK、JRE
              • 6.2 JDK版本选择
              • 6.3 JDK的下载以及安装
              • 七、开发体验:HelloWorld(掌握)
                • 7.1 开发步骤
                • 7.2 编写
                • 7.3 编译
                • 7.4 运行
                • 八、Java开发工具
                  • 8.1 都有哪些开发Java的工具
                  • 8.2 如何选择
                  • 九、HelloWorld案例常见错误
                    • 9.1 拼写问题
                    • 9.2 编译、运行路径问题
                    • 9.3 语法问题
                    • 9.4 字符编码问题
                    • 9.5 建议
                    • 十、HelloWorld小结
                      • 10.1 Java程序的结构与格式
                      • 10.2 Java程序的入口
                      • 10.3 两种常见的输出语句
                      • 10.4 源文件名与类名
                      • 十一、注释(comment)
                      • 十二、Java API文档
                      • 十三、Java核心机制:JVM
                        • 13.1 Java语言的优缺点
                          • 13.1.1 优点
                          • 13.1.2 缺点
                          • 13.2 JVM功能说明
                            • 13.2.1 功能1:实现Java程序的跨平台性
                            • 13.2.2 功能2:自动内存管理(内存分配、内存回收)

                              一、抽丝剥茧话Java

                              1.1 当前大学生就业形势

                              麦可思研究院 发布了《2022年中国大学生就业报告》,针对2021届毕业生收入较高的本科专业排行榜:

                              2023最新版JavaSE教程——第1天:Java语言概述

                              麦可思研究院发布过《2021年中国大学生就业报告》,应届本科毕业生就业数量较大的前十位行业类的就业质量:

                              2023最新版JavaSE教程——第1天:Java语言概述

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

                              2023最新版JavaSE教程——第1天:Java语言概述

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

                              1.2 IT互联网是否依旧靠谱

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

                              2023最新版JavaSE教程——第1天:Java语言概述

                              2014 年至 2018 年间,我国网民规模从 6.49 亿增长为 8.29 亿,增幅为 27.5%。同一时间段,全国移动互联网接入的流量却从 20.6EB 增长到了 711.1EB,增幅达 3352%(获取和处理的信息量大幅增加)。 随着 5G 技术进一步拓宽移动互联网的速度和容量,产业互联网 将在消费型流量的基础上创造生产型流量,根据报告的预测,至 2024 年,全国移动互联网的接入流量将达到 127663.8EB, 流量规模达到2018年的179.5倍。当下,5G、物联网、人工智能、产业互联网都是国家政策大方向,需要大量 能与机器对话 的中高端人才。

                              1.3 IT行业岗位分析

                              2023最新版JavaSE教程——第1天:Java语言概述

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

                              1. 起始薪资高
                              2. 工作环境好
                              3. 涨薪幅度高
                              4. 行业更公平

                              1.4 软件开发之Java开发

                              2023最新版JavaSE教程——第1天:Java语言概述

                              移动应用领域(集成Android平台):Java 在 Android 端是主要开发的语言,占有重要的地位。

                              2023最新版JavaSE教程——第1天:Java语言概述

                              2023最新版JavaSE教程——第1天:Java语言概述

                              这也是为什么我们学 Android 逆向,先要学习了解 Java 的基础知识

                              企业级应用领域(JavaEE后台):用来开发企业级的应用程序,大型网站如淘宝、京东、12306,以及各大物流、银行、金融、社交、医疗、交通、各种 OA 系统等都是用 JavaEE 技术开发的。

                              2023最新版JavaSE教程——第1天:Java语言概述

                              大数据分析、人工智能领域:流行的大数据框架,如 Hadoop、Flink 都是用 Java 编写的。Spark 使用 Scala 编写,但可以用 Java 开发应用。

                              2023最新版JavaSE教程——第1天:Java语言概述

                              2023最新版JavaSE教程——第1天:Java语言概述

                              Eversoft 公司在提到2022年 Java 发展趋势时写道: Java 是用于开发大数据项目的最主流的语言。我们可以轻松地预测它也将在之后继续主导大数据!

                              游戏领域、桌面应用、嵌入式领域: 很多大型游戏的后台、桌面应用等也是 Java 开发的。

                              1.5 到底多少人在用Java

                              2020年,根据 IDC 的报告 Java Turns 25 显示,超过 900 万 名开发人员(全球专职开发人员中的 69%) 在使用 Java——比其他任何语言都多。该报告指出,大多数企业业务服务都依靠 Java 来实现。Java 一直是开发人员中最流行的编程语言,被誉为 宇宙第一语言。我想告诉大家:市场的需求比较大,市场的供给比较大。如果你在 Java 领域里持续积累 5-7 年以上,那么你至少会成为这个行业的一个专家!

                              二、计算机的硬件与软件

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

                              2023最新版JavaSE教程——第1天:Java语言概述

                              2.2 CPU、内存与硬盘

                              CPU(Central Processing Unit,中央处理器):人靠大脑思考,电脑靠 CPU 来运算、控制。

                              硬盘(Hard Disk Drive)

                              1. 计算机最主要的存储设备,容量大,断电数据不丢失
                              2. 正常分类:机械硬盘(HDD)、固态硬盘(SSD) 以及 混合硬盘(SSHD)
                              3. 固态硬盘在开机速度和程序加载速度远远高于机械硬盘,缺点就是贵,所有无法完全取代机械硬盘。(现在其实已经很便宜了)

                              内存(Memory)

                              1. 负责硬盘上的数据与 CPU 之间数据交换处理
                              2. 具体的:保存从硬盘读取的数据,提供给 CPU 使用;保存 CPU 的一些临时执行结果,以便 CPU 下次使用或保存到硬盘
                              3. 断电后数据丢失

                              2023最新版JavaSE教程——第1天:Java语言概述

                              2.3 输入设备:键盘输入

                              熟悉指法:

                              2023最新版JavaSE教程——第1天:Java语言概述

                              不熟悉键盘的小伙伴,可以 金山打字通 走起了。坚决杜绝 二指禅

                              三、软件相关介绍

                              3.1 什么是软件

                              软件,即一系列按照 特定顺序组织 的计算机 数据 和 指令 的集合。有 系统软件 和 应用软件 之分。

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

                              系统软件:

                              2023最新版JavaSE教程——第1天:Java语言概述

                              应用软件:

                              2023最新版JavaSE教程——第1天:Java语言概述

                              3.2 人机交互方式

                              图形化界面(Graphical User Interface,GUI),这种方式简单直观,使用者易于接受,容易上手操作。

                              命令行方式(Command Line Interface,CLI),需要在控制台输入特定的 指令,让计算机完成一些操作。需要记忆一些指令,较为麻烦。

                              3.3 常用的DOS命令

                              DOS(Disk Operating System,磁盘操作系统)是 Microsoft 公司在 Windows 之前推出的一个操作系统,是单用户、单任务(即只能执行一个任务) 的操作系统。现在被 Windows 系统取代。对于IT人员来讲,学习一些 DOS 命令,会非常有帮助。

                              进入DOS操作窗口:

                              按下 Windows+R 键盘,打开运行窗口,输入 cmd 回车,进入到 DOS 的操作窗口。2023最新版JavaSE教程——第1天:Java语言概述

                              常用指令:

                              // 操作1:进入和回退
                              | 操作                | 说明                                |
                              | ------------------- | ----------------------------------- |
                              | 盘符名称:           | 盘符切换。E:回车,表示切换到E盘。   |
                              | dir                 | 列出当前目录下的文件以及文件夹      |
                              | cd 目录             | 进入指定单级目录。                  |
                              | cd 目录1\目录2\\... | 进入指定多级目录。cd development_tools\Android\Sdk |
                              | cd ..               | 回退到上一级目录。                  |
                              | cd \ 或 cd /        | 回退到盘符目录。                    |
                              // 操作2:增、删
                              | 操作          | 说明|
                              | ------------- | -------------------------------------------------- |
                              | md 文件目录名 | 创建指定的文件目录。                               |
                              | rd 文件目录名 | 删除指定的文件目录(如文件目录内有数据,删除失败) |
                              // 操作3:其它
                              | 操作              | 说明                 |
                              | ----------------- | -------------------- |
                              | cls               | 清屏。               |
                              | exit              | 退出命令提示符窗口。 |
                              | ←  →              | 移动光标             |
                              | ↑  ↓              | 调阅历史操作命令     |
                              | Delete和Backspace | 删除字符             |
                              

                              四、计算机编程语言

                              4.1 计算机语言是什么

                              语言:是人与人之间用于沟通的一种方式。例如:中国人与中国人用普通话沟通。而中国人要和英国人交流,可以使用英语或普通话。

                              计算机编程语言,就是人与计算机交流的方式。人们可以使用 编程语言 对计算机下达 命令,让计算机完成人们需要的功能。计算机语言有很多种。如:C 、C++、Java、Go、JavaScript、Python,Scala等。

                              体会:语言 = 语法 + 逻辑

                              4.2 计算机语言简史

                              第一代:机器语言(相当于人类的石器时代): 1946年2月14日,世界上第一台计算机 ENAC 诞生,使用的是最原始的 穿孔卡片。这种卡片上使用的是用 二进制代码 表示的语言,与人类语言差别极大,这种语言就称为 机器语言。比如一段典型的机器码:

                              1.0000,0000,000000010000 代表 LOAD A, 16
                              2.0000,0001,000000000001 代表 LOAD B, 1
                              3.0001,0001,000000010000 代表 STORE B, 16
                              

                              这种语言本质上是计算机能识别的唯一语言,人类很难理解。可以大胆想象 此时的程序员99.9%都是异类!

                              2023最新版JavaSE教程——第1天:Java语言概述

                              第二代:汇编语言(相当于人类的青铜&铁器时代): 使用英文缩写的 助记符 来表示基本的操作,这些助记符构成了汇编语言的基础。比如:LOAD、MOVE 等,使人更容易使用。因此,汇编语言也称为 符号语言。优点:能编写 高效率 的程序。缺点:汇编语言是 面向机器的,不同计算机机型特点不同,因此会有不同的汇编语言,彼此之间 不能通用。程序不易移植,较难调试。

                              2023最新版JavaSE教程——第1天:Java语言概述

                              比起机器语言,汇编大大进步了,是机器语言向更高级的语言进化的 桥梁。目前仍然应用于工业电子编程领域、软件的加密解密、计算机病毒分析等。

                              第三代:高级语言(相当于人类的信息时代): 高级语言发展于20世纪50年代中叶到70年代,是一种 接近于人们使用习惯 的程序设计语言。它允许程序员使用 接近日常英语 的指令来编写程序,程序中的符号和算式也与 日常用的数学式子 差不多,接近于自然语言和数学语言,容易为人们掌握。比如:

                              2023最新版JavaSE教程——第1天:Java语言概述

                              高级语言 独立于机器,有一定的通用性;计算机不能直接识别和执行用高级语言编写的程序,需要使用编译器或者解释器,转换为机器语言 才能被识别和执行。

                              2023最新版JavaSE教程——第1天:Java语言概述

                              此外,高级语言按照程序设计方法的不同,又分为:面向过程的语言、面向对象的语言。

                              1. C、Pascal、Fortran 面向过程的语言
                              2. C++ 面向过程/面向对象
                              3. Java 跨平台的纯面向对象的语言
                              4. C#、Python、JavaScript、Scala…

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

                              4.3 计算机语言排行榜

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

                              2023最新版JavaSE教程——第1天:Java语言概述

                              计算机语言走势:

                              2023最新版JavaSE教程——第1天:Java语言概述

                              4.4 编程语言,该学哪个?

                              2023最新版JavaSE教程——第1天:Java语言概述

                              网传的编程语言鄙视链:

                              2023最新版JavaSE教程——第1天:Java语言概述

                              C语言:万物之源

                              诞生于 1972年,由 AT&T 公司旗下 贝尔实验室 创建完成,用于构建 Unix 操作系统。

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

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

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

                              C++语言:难学的语言

                              诞生于1983年,作为C语言的增强方案、升级版本。C++是C语言的超集,C语言的大部分知识也适用于C++。

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

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

                              劣势:体系极为庞大,这是世界目前来说 最复杂 也是 最难 的编程语言。

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

                              诞生于2000年,一款强大而灵活的编程语言。靠着微软这棵大树,是多年来 Windows 平台的一门主流编程语言。

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

                              PHP语言:最好的语言?

                              诞生于1994年,一款 服务器端脚本语言。最初表示个人主页(Personal Home Page)

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

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

                                Python:易学的语言

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

                                Python 被称为 胶水语言,哪里都可以用。

                                JavaScript语言:前端为王

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

                                JavaScript是JavaScript 是目前 所有主流浏览器 上唯一支持的脚本语言。在前端开发中,占有不可替代的地位。

                                Java语言:需求旺盛

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

                                Java可能是目前运用最广的项目语言。代码稳定性超过 C 和 C++,生产力远超 C 和 C++。有 JVM 在,可以轻松地跨平台。

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

                                Java拥有世界上数量最多的程序员,最不缺人。

                                Go语言:夹缝中生存

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

                                C 语言太原始了,C++ 太复杂了,Java 太高级了,所以 Go 语言就在这个夹缝中出现了。

                                Go语言已成为 云计算领域 事实上的标准语言,尤其是在 Docker/Kubernetes 等项目中。

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

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

                                总结:

                                1. 程序设计语言有很多种,每种语言都是为了实现某个特定的目的而发明的。
                                2. 没有“最好”的语言,只有在特定场景下相对来说,最适合的语言而已。
                                3. 如果你掌握了一种编程语言,也会更容易上手其它的编程语言。关键是学习如何使用 程序设计方法 来解决问题。Talk is cheap,Show me the code。

                                五、Java语言概述

                                5.1 Java概述

                                是 SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年 推出的一门高级编程语言。是一种面向 Internet 的编程语言。Java 一开始富有吸引力是因为 Java 程序可以在 Web浏览器 中运行。这些 Java 程序被称为 Java小程序(applet),内嵌在 HTML 代码中。伴随着互联网的迅猛发展,以及 Java 技术在 Web 方面的不断成熟,已经成为 Web 应用程序的首选开发语言。

                                5.2 Java语言简史

                                起步阶段: 1991年,Sun公司的工程师小组想要设计一种语言,应用在 电视机、电话、闹钟、烤面包机 等家用电器的控制和通信。由于这些设备的 处理能力 和 内存 都很有限,并且不同的厂商会选择不同的中央处理器(CPU),因此这种语言的关键是 代码短小、紧凑 且 与平台无关(即不能与任何特定的体系结构捆绑在一起)。Gosling 团队率先创造了这个语言,并命名为 Oak(起名的原因是因为他非常喜欢自己办公室外的橡树)。后因智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着20世纪90年代互联网的发展,Sun公司发现该语言在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。(Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名)

                                2023最新版JavaSE教程——第1天:Java语言概述

                                发展阶段:

                                发行版本发行时间备注
                                Java 1.01996.01.23Sun公司发布了Java的第一个开发工具包
                                Java 1.11997.02.19JavaOne会议召开,创当时全球同类会议规模之最。
                                Java 1.21998.12.08Java拆分成:J2SE(标准版)、J2EE(企业版)、J2ME(小型版)
                                Java 1.32000.05.08
                                Java1.42004.02.06
                                Java 5.02004.09.30①版本号从1.4直接更新至5.0;②平台更名为JavaSE、JavaEE、JavaME
                                Java 6.02006.12.112009.04.20 Oracle宣布收购SUN公司
                                2009.04.20Oracle公司收购SUN,交易价格74亿美元。
                                Java 7.02011.07.02
                                Java 8.02014.03.18此版本是继Java 5.0以来变化最大的版本。是长期支持版本(LTS)
                                Java 9.02017.09.22①此版本开始,每半年更新一次;②Java 9.0开始不再支持windows 32位系统
                                Java 10.02018.03.21
                                Java 11.02018.09.25JDK安装包取消独立JRE安装包,是长期支持版本(LTS)
                                Java 12.02019.03.19
                                Java17.02021.09发布Java 17.0,版本号也称为21.9,是长期支持版本。
                                Java19.02022.09发布Java19.0,版本号也称为22.9。

                                5.3 Java之父

                                2023最新版JavaSE教程——第1天:Java语言概述 詹姆斯·高斯林(James Gosling) 先生以 Java 技术之父 而闻名于世。他是 Java 技术的创始人,他亲手设计了 Java 语言,并开发了 Java 编译器和 Java 虚拟机,使 Java 成为了世界上最流行的开发语言。James Gosling 于1984 年加入Sun公司,并一直服务于Sun公司,直至2010年前后,Sun被Oracle并购而加入Oracle,担任客户端软件集团的首席技术官;2010年4月从Oracle离职。

                                5.4 公司八卦

                                SUN 与 Oracle

                                SUN是一家 极具创新能力 的公司,2001年 “9.11”以前,SUN公司市值 超过1000亿 美元。 但是没能利用 Java 构建一个强有力、可变现的生态系统,没打好 Java 这张牌。此后,互联网泡沫破裂,硬件需求大幅减少,它的市值在一个月之内跌幅超过90%。SUN公司的成长用了20年,而衰落只用了1年!

                                2023最新版JavaSE教程——第1天:Java语言概述

                                Oracle 与 Google

                                Google和Oracle的侵权事件:2010 年 8 月,Oracle 起诉 Google 的 Android 系统侵权,要求赔偿 26 亿美元。Oracle认为Google的代码中使用了Java的 37个API,并且认为Google是故意为之,因为这样做的好处是可以让更多的Java程序员更容易接受Android的代码。Oracle认为Android 中有9行代码直接抄袭了Java的实现。这9行牛气哄哄的代码都出自一人之手,他就是Java 大牛------Joshua Bloch。2018 年 3 月,美国联邦巡回上诉法院裁决,谷歌侵犯了甲骨文的版权,支付高达88亿美元的赔偿金。2021 年 4 月,美国最高法院给出了最终裁决:谷歌胜诉,其代码属于“合理使用”的范畴。为期十多年的软件行业“第一版权案”落幕。

                                2023最新版JavaSE教程——第1天: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  arrayLen)
                                8.        throw new ArrayIndexOutOfBoundsException(toIndex);
                                9. }
                                

                                5.5 Java技术体系平台

                                Java SE(Java Standard Edition)标准版

                                1. 支持面向 桌面级应用(如Windows下的应用程序)的 Java 平台,即定位个人计算机的应用开发。
                                2. 包括用户界面接口 AWT 及 Swing,网络功能与国际化、图像处理能力以及输入输出支持等。
                                3. 此版本以前称为 J2SE

                                Java EE(Java Enterprise Edition)企业版

                                1. 为开发企业环境下的应用程序提供的一套解决方案,即定位 在服务器端的Web应用开发。
                                2. JavaEE 是 JavaSE 的扩展,增加了用于服务器开发的类库。如:Servlet 能够延伸服务器的功能,通过请求-响应的模式来处理客户端的请求;JSP 是一种可以将 Java 程序代码内嵌在网页内的技术。
                                3. 版本以前称为 J2EE

                                Java ME(Java Micro Edition)小型版

                                1. 支持 Java 程序运行在 移动终端(手机、机顶盒)上的平台,即定位在消费性电子产品的应用开发
                                2. JavaME 是 JavaSE 的内伸,精简了 JavaSE 的核心类库,同时也提供自己的扩展类。增加了适合微小装置的类库:javax.microedition.io.* 等。
                                3. 此版本以前称为 J2ME

                                2023最新版JavaSE教程——第1天:Java语言概述

                                注意:Android 开发不等同于 Java ME 的开发

                                六、Java开发环境搭建(掌握)

                                6.1 什么是JDK、JRE

                                JDK (Java Development Kit):是 Java 程序开发工具包,包含 JRE 和开发人员使用的工具。JRE (Java Runtime Environment) :是 Java 程序的运行时环境,包含 JVM 和运行时所需要的 核心类库。如下是 Java 8.0 Platform:

                                2023最新版JavaSE教程——第1天:Java语言概述

                                小结:JDK = JRE + 开发工具集(例如Javac编译工具等)JRE = JVM + Java SE标准类库

                                2023最新版JavaSE教程——第1天:Java语言概述

                                6.2 JDK版本选择

                                2023最新版JavaSE教程——第1天:Java语言概述

                                自 Java 8 版本发布以来,其后的每次更新,都会有小伙伴高呼:Java8 YYDS! 论坛的声音:你发任你发,我用Java 8!”

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

                                2023最新版JavaSE教程——第1天:Java语言概述

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

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

                                高斯林说话:

                                2023最新版JavaSE教程——第1天:Java语言概述

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

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

                                  Spring 官方说明:https://spring.io/blog/2022/01/20/spring-boot-3-0-0-m1-is-now-available

                                  2023最新版JavaSE教程——第1天:Java语言概述

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

                                  6.3 JDK的下载以及安装

                                  2023年全网最新 Windows10 安装 JDK17以及JDK1.8:https://blog.csdn.net/xw1680/article/details/133897750

                                  七、开发体验:HelloWorld(掌握)

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

                                  7.1 开发步骤

                                  Java 程序开发三步骤:编写、编译、运行。

                                  1. 将 Java 代码 编写 到扩展名为 .java 的源文件中
                                  2. 通过 javac.exe 命令对该 java 文件进行 编译,生成一个或多个字节码文件
                                  3. 通过 java.exe 命令对生成的 class 文件进行 运行

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  7.2 编写

                                  (1) 在 D:\JavaSE\chapter01 目录下新建文本文件,完整的文件名修改为 HelloWorld.java,其中文件名为HelloWorld,后缀名必须为 .java。

                                  2023最新版JavaSE教程——第1天:Java语言概述

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

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

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

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

                                  友情提示2:打开文件扩展名

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  第一个 HelloWord 源程序就编写完成了,但是这个文件是程序员编写的,JVM 是看不懂的,也就不能运行,因此我们必须将编写好的 Java源文件 编译成 JVM 可以看懂的 字节码文件 ,也就是 .class 文件。

                                  7.3 编译

                                  在 DOS 命令行中,进入 D:\JavaSE\chapter01 目录,使用 javac 命令进行编译。使用文件资源管理器打开 D:\JavaSE\chapter01 目录,然后在地址栏输入 cmd。

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  命令:

                                  javac Java源文件名.java
                                  

                                  举例:

                                  javac HelloWorld.java

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  编译成功后,命令行没有任何提示。打开 D:\JavaSE\chapter01 目录,发现产生了一个新的文件 HelloChina.class,该文件就是编译后的文件,是 Java 的可运行文件,称为 字节码文件,有了字节码文件,就可以运行程序了。

                                  7.4 运行

                                  在 DOS 命令行中,在字节码文件目录下,使用 java 命令进行运行。命令:

                                  java 主类名字
                                  

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

                                  public static void main(String[] args){
                                  }
                                  

                                  举例:

                                  java HelloChina

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  八、Java开发工具

                                  8.1 都有哪些开发Java的工具

                                  级别一:文本开发工具

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  级别二:集成开发环境(Integrated Development Environment,IDE)把代码编写,编译,执行,调试等多种功能综合到一起的开发工具。

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  8.2 如何选择

                                  初学者前期可以先使用文本开发工具,培养 代码感,利于公司笔、面试。后期再使用 IDE,提供 更强大的功能支持。

                                  九、HelloWorld案例常见错误

                                  9.1 拼写问题

                                  单词拼写问题

                                  正确:class		          错误:Class
                                  正确:String              错误:string
                                  正确:System              错误:system
                                  正确:main		          错误:mian Java语言是一门严格区分大小写的语言
                                  标点符号使用问题:不能用中文符号,英文半角的标点符号(正确)
                                  括号问题,成对出现
                                  

                                  9.2 编译、运行路径问题

                                  举例1:源文件名不存在或者写错、当前路径错误、后缀名隐藏问题

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  举例2:类文件名写错,尤其文件名与类名不一致时,要小心。类文件不在当前路径下,或者不在 classpath 指定路径下

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  9.3 语法问题

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

                                  2023最新版JavaSE教程——第1天:Java语言概述

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

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  9.4 字符编码问题

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

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  解决方案一:在 Notepad++ 等编辑器中,修改源文件的字符编码:

                                  2023最新版JavaSE教程——第1天:Java语言概述

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

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  解决方案二: 在使用 javac 命令式,可以指定源文件的字符编码

                                  javac -encoding utf-8 Review01.java
                                  

                                  9.5 建议

                                  注意缩进:一定要有缩进。缩进就像人得体的衣着一样!只要遇到 {} 就缩进,缩进的快捷键 tab 键。

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

                                  十、HelloWorld小结

                                  10.1 Java程序的结构与格式

                                  结构:

                                  类{
                                      方法{
                                          语句;
                                      }
                                  }
                                  

                                  格式:

                                  1. 每一级缩进一个Tab键
                                  2. {} 的左半部分在行尾,右半部分单独一行,与和它成对的 { 的行首对齐

                                  10.2 Java程序的入口

                                  Java 程序的入口是 main 方法

                                  public static void main(String[] args){   
                                  }
                                  

                                  10.3 两种常见的输出语句

                                  换行输出语句:输出内容,完毕后进行换行,格式如下:

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

                                  直接输出语句:输出内容,完毕后不做任何处理,格式如下:

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

                                  注意事项:换行输出语句,括号内可以什么都不写,只做换行处理。直接输出语句,括号内什么都不写的话,编译报错。

                                  10.4 源文件名与类名

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

                                  如果这个类不是public,那么源文件名可以和类名不一致。但是不便于代码维护。
                                  如果这个类是public,那么要求源文件名必须与类名一致。否则编译报错。
                                  我们建议大家,不管是否是public,都与源文件名保持一致,而且一个源文件尽量只写一个类,目的是为了好维护。
                                  

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

                                  一个源文件中可以有多个类,编译后会生成多个.class字节码文件。
                                  但是一个源文件只能有一个public的类。
                                  

                                  十一、注释(comment)

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  什么是注释?源文件中用于解释、说明程序的文字就是注释。注释是一个程序员必须要具有的良好编程习惯。实际开发中,程序员可以先将自己的 思想 通过注释整理出来,再用 代码 去体现。程序员最讨厌两件事:

                                  一件是自己写代码被要求加注释

                                  另一件是接手别人代码,发现没有注释

                                  不加注释的危害:

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  Java 中的注释类型,单行注释:

                                  //注释文字
                                  

                                  多行注释:

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

                                  文档注释 (Java 特有)

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

                                  注释的作用:

                                  1. 它提升了程序的可阅读性。
                                  2. 调试程序的重要方法。

                                  具体使用1:单行注释、多行注释。 对于单行和多行注释,被注释的文字,不会不会出现在字节码文件中,进而不会被 JVM(java虚拟机) 解释执行。多行注释里面不允许有多行注释嵌套。一个段子:

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

                                  具体使用2:文档注释(Java特有)。 文档注释内容可以被 JDK 提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。操作方式。比如:

                                  javadoc -d mydoc -author -version HelloWorld.java
                                  

                                  案例:

                                  //单行注释
                                  /*
                                  多行注释
                                  */
                                  /**
                                  文档注释演示。这是我的第一个Java程序!^_^
                                  @author AmoXiang
                                  @version 1.0
                                  */
                                  public class HelloWorld{
                                  	/**
                                  	Java程序的入口
                                  	@param args main方法的命令参数
                                  	*/
                                      public static void main(String[] args){
                                          System.out.println("hello");
                                      }
                                  }
                                  

                                  十二、Java API文档

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

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  下载API文档:

                                  1. 在线看:https://docs.oracle.com/en/java/javase/17/docs/api/index.html
                                  2. 离线下载:https://www.oracle.com/java/technologies/javase-jdk17-doc-downloads.html

                                  十三、Java核心机制:JVM

                                  13.1 Java语言的优缺点

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

                                  13.1.1 优点

                                  跨平台性: 这是 Java 的核心优势。Java 在最初设计时就很注重移植和跨平台性。比如:Java 的 int 永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。通过 Java 语言编写的应用程序在不同的系统平台上都可以运行。Write once , Run Anywhere。原理:只要在需要运行 java 应用程序的操作系统上,先安装一个 Java 虚拟机 (JVM ,Java Virtual Machine) 即可。由 JVM 来负责 Java 程序在该系统中的运行。

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  面向对象性: 面向对象是一种程序设计技术,非常 适合大型软件的设计和开发。面向对象编程支持封装、继承、多态等特性,让程序更好达到 高内聚,低耦合 的标准。

                                  健壮性: 吸收了 C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制。

                                  安全性高: Java 适合于网络/分布式环境,需要提供一个安全机制以防恶意代码的攻击。如:安全防范机制(ClassLoader类加载器),可以分配不同的命名空间以防替代本地的同名类、字节代码检查。

                                  简单性: Java 就是 C++ 语法的 简化版,我们也可以将Java称之为 C++--。比如:头文件,指针运算,结构,联合,操作符重载,虚基类等。

                                  高性能: Java 最初发展阶段,总是被人诟病 性能低;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java 语言本身发展中通过虚拟机的优化提升了 几十倍运行效率。比如,通过 JIT(JUST IN TIME) 即时编译技术提高运行效率。 Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多 C++ 应用转到 Java 开发,很多 C++ 程序员转型为 Java 程序员。

                                  13.1.2 缺点

                                  语法过于复杂、严谨,对程序员的约束比较多,与 python、php 等相比入门较难。但是一旦学会了,就业岗位需求量大,而且 薪资待遇节节攀升。一般适用于大型网站开发,整个架构会比较重,对于初创公司开发和维护人员的成本比较高(即薪资高),选择用 Java 语言开发网站或应用系统的需要一定的经济实力。并非适用于所有领域。比如,Objective C、Swift 在 IOS 设备上就有着无可取代的地位。浏览器中的处理几乎完全由 JavaScript 掌控。Windows 程序通常都用 C++ 或 C# 编写。Java 在服务器端编程和跨平台客户端应用领域则很有优势。

                                  13.2 JVM功能说明

                                  JVM(Java Virtual Machine ,Java虚拟机):是一个虚拟的计算机,是 Java 程序的运行环境。JVM具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器。

                                  2023最新版JavaSE教程——第1天:Java语言概述

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

                                  我们编写的 Java 代码,都运行在 JVM 之上。正是因为有了 JVM,才使得 Java 程序具备了跨平台性。

                                  2023最新版JavaSE教程——第1天:Java语言概述

                                  使用 JVM 前后对比:

                                  2023最新版JavaSE教程——第1天:Java语言概述

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

                                  Java 程序在运行过程中,涉及到运算的 数据的分配、存储 等都由 JVM 来完成。Java 消除了程序员回收无用内存空间的职责。提供了一种系统级线程跟踪存储空间的分配情况,在内存空间达到相应阈值时,检查并释放可被释放的存储器空间。GC的自动回收,提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上 减少了 因为没有释放空间而导致的 内存泄漏。

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

                                  至此今天的学习就到此结束了,笔者在这里声明,笔者写文章只是为了学习交流,以及让更多学习Java语言的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系博主删除即可。感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!


                                  2023最新版JavaSE教程——第1天:Java语言概述

                                      好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。

                                      如果我的博客对你有帮助、如果你喜欢我的博客内容,请 点赞、评论、收藏 一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。

                                   编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了 关注 我哦!

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]