《Java入门与精通》
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。
编程语言参考:https://www.tiobe.com/tiobe-index/
第一章 简介及开发环境
1.1 java简介
詹姆斯·高斯林 (James Gosling)是一名软件专家,1955年5月19日出生于加拿大,Java编程语言的共同创始人之一,一般公认他为“Java之父”。
Sun Microsystems
Sun Microsystems是IT及互联网技术服务公司(已被甲骨文收购)Sun Microsystems 创建于1982年。主要产品是工作站及服务器。1986年在美国成功上市。1992年sun推出了市场上第一台多处理器台式机SPARCstation 10 system,并于1993年进入财富500强。
1.2 java发展历史
1990年初,最初被命名为Oak;
1995年5月23日,Java语言诞生;1996年1月,第一个JDK-JDK1.0诞生;
1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入Java技术;
1996年9月,约8.3万个网页应用了Java技术来制作;
1997年2月18日,JDK1.1发布;
1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议纪录;
1997年9月,JavaDeveloperConnection社区成员超过十万;
1998年2月,JDK1.1被下载超过2,000,000次;
1998年12月8日,Java 2企业平台J2EE发布;
1999年6月,SUN公司发布Java三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME);
2000年5月8日,JDK1.3发布;
2000年5月29日,JDK1.4发布;
2001年6月5日,Nokia宣布到2003年将出售1亿部支持Java的手机;
2001年9月24日,J2EE1.3发布;
2002年2月26日,J2SE1.4发布,此后Java的计算能力有了大幅提升;
2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0;
2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME;
2006年12月,SUN公司发布JRE6.0
2008年sun公司收购mysql
2009年4月20日,甲骨文以74亿美元的价格收购SUN公司,取得java的版权,业界传闻说这对Java程序员是个坏消息(其实恰恰相反);
2010年11月 由于甲骨文对Java社区的不友善,因此Apache扬言将退出JCP
2011年7月28日甲骨文发布Java SE 7
2014年3月18日 甲骨文发表Java SE 8 公司通用
2017年9月22日 甲骨文发表Java SE 9
2018年3月21日 甲骨文发表Java SE 10
2018年9月26日 甲骨文发表Java SE 11 LTS 长期
2019年3月19日 甲骨文发表Java SE 12
2019年9月17日 Java SE 13 Text Blocks (Preview)
2020年3月17日 Java SE 14
2020年9月15-17日 Java se 15
2021年3月19日 Java SE 16
…
java 1.0
java 1.2 - 1.5 第二代 j2se j2ee j2me
java 1.5 就是java 5.0 javase javaee
2020 年是值得纪念的一年,这一年中我们庆祝了 Java 的 25 岁生日。经过二十多年的持续创新,Java 一直在:
1、通过适应不断变化的技术格局来保持灵活性,同时维持平台独立性。
2、通过保持向后兼容性来保证可靠性。
3、在不牺牲安全性的前提下加速创新来保持优势。
Java 凭借自身不断提高平台性能、稳定性和安全性的能力,一直是开发人员中最流行的编程语言。IDC 的最新报告“Java Turns 25”显示,超过 900 万名开发人员(全球专职开发人员中的 69%)在使用 Java——比其他任何语言都多。
甲骨文还在继续探索 Java 的持续创新之路,并自豪地宣布 Java 16 正式发布,这也是我们转向六个月发布周期后的第七个特性版本。这种可预测水平使开发人员可以更轻松地管理他们对创新的采用计划。
1.3 java相关的概念
-
jvm Java Virtual Machine(Java虚拟机)
-
jdk Java Development Kit
-
jre JavaRuntimeEnvironment缩写,指Java运行环境
-
jcp (Java Community Process) 是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新
-
jsr Java Specification Requests,Java规范请求,由JCP成员向委员会提交的Java发展议案,经过一系列流程后,如果通过最终会体现在未来的Java中
2018年5月18日, 阿里巴巴获邀加入JCP最高执行委员会(Java Community Process),以替代恩智浦被选举为该委员会委员,成为第一家加入JCP的中国企业。
此次阿里巴巴以126票赞成,19票反对,12票弃权高票当选,成为新的JCP委员。成员任期为两年。
-
java程序相关的扩展名
-
.java 源代码 ascii 文件
-
.class 程序编译后的字节码 javac Test.java 产生Test.class
-
.jar 程序包
-
.war web程序包
-
.ear 程序包
1.4 下载JDK安装配置
1.4.1 安装jdk8
CLASSPATH = %JAVA_HOME%\lib;%JAVA_HOME%\dt.jar;%JAVA_HOME%\tools.jar;.
1.4.2 安装配置jdk16
- java16 环境变量配置
- JAVA_HOME = D:\jdk\jdk-16.0.2
- CLASSPATH = %JAVA_HOME%\lib;.
- 编辑path 添加 %JAVA_HOME%\bin
1.5 HelloWorld程序入门
编写HelloWorld程序,在桌面上建立一个Demo.java文件,用记事本编写内容
public class Demo{
public static void main(String[] args){
System.out.println("hello world");
System.out.println(System.getProperty("java.home"));//javahome
System.out.println(System.getProperty("java.version"));//java version
System.out.println(System.getProperty("os.name"));// 获取系统名称 Windows 10
}
}
编译程序
# 编译程序
javac Demo.java
# 运行程序类 java Demo.class 错误的
java Demo
java10 版本后可以直接运行源程序
C:\Users\Administrator\Desktop>java --version
java 16.0.2 2021-07-20
Java(TM) SE Runtime Environment (build 16.0.2+7-67)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)
C:\Users\Administrator\Desktop>java -version
java version "16.0.2" 2021-07-20
Java(TM) SE Runtime Environment (build 16.0.2+7-67)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)
# java 10以后可以直接运行java程序
C:\Users\Administrator\Desktop>java Demo.java
hello world
D:\jdk\jdk-16.0.2
16.0.2
Windows 10
public class Demo{
//String...s 相当于 String[] s String[] args
public static void main(String...s){
System.out.println("hello world 中文字符串");
}
}
C:\Users\Administrator\Desktop>javac Demo.java
C:\Users\Administrator\Desktop>java Demo
hello world
C:\Users\Administrator\Desktop>java Demo.java
hello world
C:\Users\Administrator\Desktop>java Demo.java
hello world 中文字符串
C:\Users\Administrator\Desktop>java Demo
hello world
C:\Users\Administrator\Desktop>javac Demo.java
C:\Users\Administrator\Desktop>java Demo
hello world 中文字符串
C:\Users\Administrator\Desktop>
1.6 java开发工具
1.6.1 VSCode
-
下载vscode,解压
-
在解压目录下建立data目录
-
安装插件
- Debugger for Java
- Language Support for Java™ by Red Hat
-
按下ctrl + , 配置一下
//settings.json { "workbench.startupEditor": "none", "editor.mouseWheelZoom": true, "files.autoSave": "afterDelay", "editor.fontSize": 28, "java.home": "d:/jdk/jdk-16.0.1", "files.exclude": { "**/.classpath": true, "**/.project": true, "**/.settings": true, "**/.factorypath": true }, "workbench.iconTheme": "vscode-icons" }
-
修改一下
C:\vsc\data\extensions\vscjava.vscode-java-debug-0.34.0\scripts\launcher.bat
@echo off cls REM Change code page to UTF-8 for better compatibility. REM GBK 936 UTF-8 65001 @chcp.com 936 > NUL REM Execute real command passed by args %*
建立右键快捷方式:建立增加鼠标右键工具,addright.inf在vsc根目录下,内容如下,然后在windows中右键选择安装
[Version] Signature="$Windows NT$" [DefaultInstall] AddReg=VSCode [VSCode] hkcr,"*\\shell\\VSCode",,,"Open with Code" hkcr,"*\\shell\\VSCode\\command",,,"""%1%\Code.exe"" ""%%1"" %%*" hkcr,"Directory\shell\VSCode",,,"Open with Code" hkcr,"*\\shell\\VSCode","Icon",0x20000,"%1%\Code.exe, 0" hkcr,"Directory\shell\VSCode\command",,,"""%1%\Code.exe"" ""%%1"""
删除右键 delright.reg
Windows Registry Editor Version 5.00
[-HKEY_CLASSES_ROOT\*\shell\VSCode]
[-HKEY_CLASSES_ROOT\Directory\shell\VSCode]
常用快捷键
ctrl+shift+w 关闭所有打开的文档窗口(默认不是自己设定的)
alt+/ 代码提示快捷键(默认是ctrl+space)
ctrl+x 剪切当前行
ctrl+shift+k 删除当前行
alt+shift+up(down) 向上复制代码行
ctrl + d 向下复制当前一行
alt+up(down) 向上移动代码行
ctrl++ 窗口增大
ctrl+- 窗口缩小
ctrl+0(数字键盘) 窗口恢复默认
ctrl + mouseWheelZoom 设置编辑器字号大小写(settings.json 配置"editor.mouseWheelZoom": true)
ctrl+/ 注释取消注释当前行
alt+shift+a 块注释
alt 设置快捷键为ctrl+shift+alt+f1 临时显示菜单
alt+shift+f 格式化文档
ctrl+b 打开左活动面板
ctrl+j 打开关闭面板
ctrl+` 打开终端面板,可以输入live-server
ctrl+g 快捷进行指定行代码位置
ctrl+shift+t 快速翻译当前选中的词汇(需要安装Yao Translate翻译插件)
F2 修改内容或修改文件名
ctrl+shift+alt+F12 打开浏览器使用live-serve服务器,直接浏览当前网页
ctrl+shift+alt+f1 菜单 开关
ctrl+shift+alt+f2 左侧,活动条 开关
ctrl+shift+alt+f3 show breadcrumbs 开关
ctrl+shift+alt+f4 show minimap 开关
ctrl+shift+alt+F6 状态条开关
ctrl+shift+alt+u 转换为大写字母
ctrl+shift+alt+l 转换为小写字母
ctrl+shift+t 翻译选中的文字
ctrl+shift+r 翻译选中的文字进行直接替换
1.6.2 Eclipse
是开源免费的,有一个优秀的插件myeclipse,功能非常强大,但不免费。
下载:
1.6.3 IntelliJ IDEA
第一步:下载idea工具
作业
- 自己下载jdk,并配置环境变量,编写一个HelloWorld程序,并编译运行出结果。
- vscode 编写Helloworld并运行出结果
- eclipse 建立项目编写Helloworld运行出结果
- idea 建立项目编写Helloworld运行出结果
附录一 JDK 1.8环境变量配置
建立JAVA_HOME环境变量
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rDL23oH6-1627289016539)(assets/image-20210726092826547.png)]
建立CLASSPATH环境变量
A.java
class A{
public static void main(String[] a){
System.out.println("Hello world");
}
}
C:\Users\Administrator>java -version
java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)
C:\Users\Administrator>java --version
Unrecognized option: --version
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
C:\Users\Administrator>javac -version
javac 1.8.0_301
C:\Users\Administrator>notepad
C:\Users\Administrator>java A.java
错误: 找不到或无法加载主类 A.java
# cd desktop 进入桌面
C:\Users\Administrator>cd desktop
C:\Users\Administrator\Desktop>java A.java
错误: 找不到或无法加载主类 A.java
C:\Users\Administrator\Desktop>javac A.java
C:\Users\Administrator\Desktop>java A
Hello world
附录二 JDK 16 环境变量配置
JAVA_HOME -> D:\jdk\jdk-16.0.2
CLASSPATH -> .;%JAVA_HOME%\lib
CLASSPATH -> .;D:\jdk\jdk-16.0.2\lib
在path环境变量中添加 . 再添加%JAVA_HOME%\bin,如果还要再完美一点儿,再添加%JAVA_HOME%\lib
nistrator>cd desktop
C:\Users\Administrator\Desktop>java A.java
错误: 找不到或无法加载主类 A.java
C:\Users\Administrator\Desktop>javac A.java
C:\Users\Administrator\Desktop>java A
Hello world
## 附录二 JDK 16 环境变量配置
```text
JAVA_HOME -> D:\jdk\jdk-16.0.2
CLASSPATH -> .;%JAVA_HOME%\lib
CLASSPATH -> .;D:\jdk\jdk-16.0.2\lib
在path环境变量中添加 . 再添加%JAVA_HOME%\bin,如果还要再完美一点儿,再添加%JAVA_HOME%\lib
[外链图片转存中…(img-yeh9B5Iu-1627289016544)]