day01
一、java的背景知识
1.1java的发展
- Java是哪家公司的产品?
Java是美国Sun(Stanford University Network,斯坦福大学网络公司)公司在1995年推出的一门计算机高级编程语言。但是在2009年是Sun公司被Oracle(甲骨文)公司给收购了,所以目前Java语言是Oracle公司所有产品。
- Java名称的来历?
早期这门语言的名字其实不叫Java,当时称为Oak(橡树的意思),为什么叫橡树呢?原因是因为Sun公司的门口种了很多橡树,但是后来由于商标注册时,Oak商标已经其他公司注册了,所以后面改名为Java了。那么有人好奇为什么叫Java呢?Java是印度的一个岛屿,上面盛产咖啡,可能是因为他们公司的程序员喜欢喝咖啡,所以就改名为Java了。
- Java的创始人是谁?
说完Java名称的来历之后,接下来我们聊聊Java的祖师爷是谁? Java的联合创始人有很多,但是行业普遍认可的Java的创始人 是詹姆斯.高斯林,被称为Java之父。
1.2Java的技术体系
(1)Java SE(Java Standard Edition):叫做标准版,它是后面两个版本的基础,也就是学习后面两个版本必须先学习JavaSE。
(2)Java EE(Java Enterprise Edition): 叫做企业版,它是为企业级应用开发提供的一套解决方案。
(3)Java ME(Java Micro Edition):叫做小型版,它为开发移动设备的应用提供了一套解决方案。目前已经不被市场认可(淘汰),取而代之的是基于Android系统的应用开发。
二、JAVA快速入门
Java开发环境,实际上就是Java官方提供的一个软件,叫做JDK(全称是Java Develop Kit),翻译过来意思就是Java开发工具包。我们先要到官网上去下载JDK,然后安装在自己的电脑上,才可以在自己的电脑上使用JDK来开发Java程序。
JDK的版本有很多,下图是JDK版本更新的历程图,有LTS标识的是长期支持版本(意思就是Oracle会不定期更新)。目前公司中用得最多的版本是JDK8版本,在目前这套课程中我们为了将一些新特性会使用JDK17版本。
2.1JDK的下载和安装
- JDk下载
(1)这是JDK下载的官方网址 https://www.oracle.com/java/technologies/downloads/,你需要把该网址复制到浏览器的地址栏,敲回车
(2)进入网址后,选择JDK17版本,找到Windows标签,选择x64 Installer版本。如下图所示:
- JDK安装
双击安装包,按照下图引导,点击下一步即可安装。需要注意的是安装JDK后不像你安装QQ一样会在桌面上显示一个图标,JDK安装后桌面上没有图标!!!
- 验证JDk
在文件资源管理器打开JDK的安装目录的bin目录,会发现有两个命令工具 javac.exe java.exe,这就是JDK提供给我们使用的编译工具和运行工具,如下图所示:
接下来开始验证JDK
(1)第一步:在JDK的bin目录,地址栏输入cmd,回车输入完cmd回车后,会出现一个黑窗口,专业说法叫命令行窗口
(2)第二步:在命令行窗口中输入 javac -version回车,然后输入java -version回车 如果出现下面红色框框的提示正确版本号,和我们安装的JDK版本号一致,就说明JDK安装成功
2.2命令行窗口(cmd、doc)的常见命令
(1)前面测试JDK是否安装成功,需要在黑窗口中输入javac -version和java -version 这其实就是JDK查看编译工具和运行工具版本号的命令。
(2)这种输入命令的和电脑交互的方式,称之为命令行交互。也就是说,可以使用命令指挥电脑做事情。接下来我们了解几种Windows系统常见的命令,后面可能会用到。
(3)下面是Windows系统常见的命令以及作用,小伙伴们可以自己试一试。需要注意的是,每敲完一条命令之后,马上敲回车就表示执行这条命名。
E: 切换到E盘
cd [目录] 进入指定的目录
cd .. 退回到上一级目录
cd / 退回到根目录
dir 显示当前目录下所有的内容
cls 清空屏幕
tree 目录名,查看指定的目录下所有的子级目录
md 建立目录
rm 删除目录
exit 退出dos
2.3JAVA的入门程序
我们已经安装好了JDK,接下来,我们就正式开始开发第一个入门Java程序。按照国际惯例,学习任何一本编程语言第一个案例都叫做 Hello
World,意思是向世界问好,从此开用程序和世界沟通的大门。
编写一个Java程序需要3步骤:编写代码,编译代码,运行代码
- 编写代码
任何一个文本编辑器都可以些代码,如Windows系统自带的记事本
- 编译代码
将人能看懂的源代码(.java文件)转换为Java虚拟机能够执行的字节码文件(.class文件)
- 运行代码
将字节码文件交给Java虚拟机执行
- 注意事项
① 第一个Java程序建议使用记事本书写。
② 建议代码文件名全英文,每个单词首字母大写,满足驼峰模式,源代码文件的后缀必须是.java
- 入门程序
按照下面提供的步骤,一步一步的完成第一个Java入门程序的编写、编译和执行。
第一步(编写程序)
新建一个后缀为.java的文本文件HelloWorld.java,用记事本编写代码如下。
public class HelloWorld {
public static void main(String[] args) {
System.out.println(" HelloWorld ");
}
}
第二步(进入命令行)
进入HelloWorld.java文件所在目录,在地址栏输入cmd回车,即可在此处打开命令行窗口。
第三步(编译与运行)
-
编译:在命令行窗口输入编译命令javac HelloWorld完成编译,编译后会生成一个HelloWorld.class文件。
-
运行:输入java HelloWorld就可以运行了
2.4用记事本编写JAVA程序常见的问题
- Windows的文件扩展名没有勾选
- 代码写了,但是忘记保存了
- 文件名和类名不一致。
- 英文大小写错误,单词拼写错误,存在中文符号,找不到main方法。
- 括号不配对。
- 编译或执行工具使用不当。
2.5 JAVA开发注意事项
- java应用程序的执行入口是main()方法。它有固定的书写格式。
- java方法由一条条语句构成,每条语句以;结束。
- 大括号都是成双成对出现,缺一不可。
- 一个源文件只能有一个public类,其他类个数不限,也可以将main方法写在非punlic类中,然后指定运行非public类,这样方法入口就是非public类的main方法。
如果出错的就对照的上列错误的可能性去检测一遍
2.6JDK的介绍
- JDK组成
JDK由JVM、核心类库、开发工具组成,如下图所示
- 什么是JVM?
答:JDK最核心的组成部分是JVM(Java Virtual Machine),它是Java虚拟机,真正运行Java程序的地方。
- 什么是核心类库?
答:它是Java本身写好的一些程序,给程序员调用的。 Java程序员并不是凭空开始写代码,是要基于核心类库提供的一些基础代码,进行编程。
- 什么是JRE?
答:JRE(Java Runtime Enviroment),意思是Java的运行环境;它是由JVM和核心类库组成的;如果你不是开发人员,只需要在电脑上安装JRE就可以运行Java程序。
- 什么是开发工具呢?
答:Java程序员写好源代码之后,需要编译成字节码,这里会提供一个编译工具叫做javac.exe,编写好源代码之后,想要把class文件加载到内存中运行,这里需要用到运行工具java.exe。
除了编译工具和运行工具,还有一些其他的反编译工具、文档工具等待…
JDK、JRE的关系用一句话总结就是:用JDK开发程序,交给JRE运行
2.7JAVA跨平台的原理
一次编译,处处可用
学完JDK的组成后,我们知道Java程序的执行是依赖于Java虚拟机的。就是因为有了Java虚拟机所以Java程序有一个重要的特性叫做跨平台性。
- 什么是跨平台行呢?
所谓跨平台指的是用Java语言开发的程序可以在多种操作系统上运行,常见的操作系统有Windows、Linux、MacOS系统。
如果没有跨平台性,同一个应用程序,想要在多种操作系统上运行,需要针对各个操作系统单独开发应用。比如微信有Windows版本、MacOS版本、Android版本、IOS版本
- 为什么Java程序可以跨平台呢?
跨平台性的原理是因为在不同版本的操作系统中安装有不同版本的Java虚拟机,Java程序的运行只依赖于Java虚拟机,和操作系统并没有直接关系。从而做到一处编译,处处运行。
- 如果觉得蒙圈就听一个小故事
高考结束了,小明想出国走走开拓以下眼界,体验以下其他国家的风土人情,他现在有三个理想国家,日本、俄罗斯、美国。但眼下的问题是小明只会中文,他不仅只想去走一趟,他想的是去这些国家进行采访和观察,可是语言并不相通,此时一个国际旅游社找到了小明,并为他派出翻译官,他每想去一个国家就会安排一个当地翻译官为他进行翻译。
三、IDEA的使用
1.大家刚才写代码的时候都是用记事本写的,但是有没有觉得记事本写代码不太方便啊!记事本写代码单词写错了没有提示,格式也不好调整,写代码之后还需要我们到命令行使用javac命令手动编译,然后运行。
2.有没有一种软件能够将写代码、编译、运行等工具集成到一起呢? 有,这就是集成开发环境(Integrated DevelopmentEnvironment ,简称IDE)。除此之外,IDEA还有代码提示、检查代码错误等功能,从而提高程序员的开发效率。
3.IDE有很多种,常见的Eclipse、MyEclipse、Intellij
4. IDEA、JBuilder、NetBeans等。但是这些IDE中目前比较火的是Intellij
5. IDEA(以下简称IDEA),被众多Java程序员视为最好用的Java集成开发环境,所以我们课程中就以IDEA为开发工具来编写代码,以后大家去公司也建议用IDEA作为开发环境。
3.1IDEA编写Java程序
想要在IDEA正确的写一个Java程序,必须先认识一下IDEA的管理Java程序的工程结构。
- 第一步
首先得在IDEA中创建一个Project(工程、也叫项目),后面统称为工程。
- 第二步
需要在Project中创建Module(模块),一个工程中可以包含多个模块
- 第三步
需要在Module中新建Package(包),一个模块中可以有多个包
- 第四步
需要在Package中新建Class(类),一个包中可以包含多个类
3.2IDEA的各种配置
-
主题配置
-
字体配置
-
背景色配置
3.3快捷键
快捷键 功能效果
main/psvm 快速生成main()方法
sout 快速生成输出语句
Ctrl + D 复制当前行数据到下一行
Ctrl + Y 删除所在行,建议用Ctrl + X
Ctrl + ALT + L 格式化代码
ALT + SHIFT + ↑ , ALT + SHIFT + ↓ 上下移动当前代码
Ctrl + / 对代码进行单行注释
Ctrl + Shift + / 对代码进行多行注释
Shift+回车 光标向下移动一行
四、JAVA基础语法
4.1注释
- 什么是注释?
注释是解释说明程序的问题,方便自己和别人阅读代码
- 注释有哪几种?格式怎样?
1.单行注释:
//后面跟解释文字
2.多行注释
/*
这里写注释文字
可以写多行
*/
3.文档注释
/**
这里写文档注释
也可以写多行,文档注释可以利用JDK的工具生成帮助文档
*/
- 注释讲解入门程序
/**
* 这是文档注释
*/
//HelloWorld{}表示一个类的开始和结束
public class HelloWorld {
// 这是程序的入口, 程序就是从这里开始运行的(大门)
//main(){}表示方法的开始和结束
public static void main(String[] args) {
/*
System.out.println: 打印, 作用是把括号中的数据显示在控制台
括号里面就是要打印的内容
*/
System.out.println("Hello World");
//;->分号表示语句结束
}
}
我最讨厌两种人,一种是不写注释的,另一种是让我写注释的。
4.2字面量(常量)
- 什么是字面量?
大家不要被这个词搞晕了,它其实很简单,我们知道计算机是来处理数据的,字面量其实就是告诉程序员数据在程序中的书写格式。下面是常用的数据在程序中的书写格式
- 编写程序
在命令行打印输出各种类型的字面值
/*
目标:掌握常见数据在程序中的书写
1.整数
2.小数
3.字符
4.字符串
5.布尔值
*/
public class Literal01 {
public static void main(String[] args) {
// 1.整数
System.out.println(666);//输出666
// 2.小数
System.out.println(3.33);//输出3.33
// 3.字符: 字符必须用单引号包裹起来, 单引号里面只能放一个内容(且不能为空)
System.out.println('a');//输出:a
System.out.println('3');//输出:3
System.out.println('中');//输出:中
System.out.println(' ');//输出:空格
错误演示: System.out.println(' ');//错误
// 4.字符串: 字符串是双引号包裹起来, 双引号里面内容任意
System.out.println("秃");//输出:秃
System.out.println("秃头程序员");//输出:秃头程序员
System.out.println("");//什么都没输出
System.out.println(" ");//输出:空格
// 5.布尔值
System.out.println(true);//输出:flase
System.out.println(false);//输出:true
}
}
4.3变量
- 什么是变量?
变量是用来记录程序中的数据的。其本质上是内存中的一块区域,你可以把这块区域理解成一个小盒子。
- 代码演示
/*
目标:认识变量,理解变量的作用和应用场景
变量格式: 数据类型 变量名 = 值;
假设多个地方用到整数10, 现在想把10改为20
使用变量的好处: 把x值改了, 后面用到x的地方都会改变
变量有应用场景: 假设你微信有200元, 中午吃饭花了16元, 晚上吃饭用了18元, 睡觉前女朋友给你发了个红包66元, 请问微信余额是多少?
*/
public class Variable01 {
public static void main(String[] args) {
// 变量格式: 数据类型 变量名 = 值;
int age = 18;
System.out.println(age);
}
}
Ps:当执行int age = 18;
这句代码时,JVM会在内存中申请一块区域,在这个区域中存储了一个整数18,给这个区域取的名字叫age;
相当于在盒子中存了一个数据18,这个盒子的名字是age,当我们打印age时,就是从盒子中把盒子中的数据取出来再打印。
- 为什么要用变量呢?
使用变量来记录数据,对于数据的管理更为灵活。比如我们有多个地方用到一个整数10,
/*
目标:认识变量,理解变量的作用和应用场景
1.变量格式: 数据类型 变量名 = 值;
假设多个地方用到整数10, 现在想把10改为20
2. 使用变量的好处:
把x值改了, 后面用到x的地方都会改变
3. 变量有应用场景:
假设你微信有200元, 中午吃饭花了16元, 晚上吃饭用了18元,
睡觉前女朋友给你发了个红包66元, 请问微信余额是多少?
*/
public class Variable01 {
public static void main(String[] args) {
// 变量格式: 数据类型 变量名 = 值;
int age = 18;
System.out.println(age);
// 假设多个地方用到整数10, 现在想把10改为20
System.out.println(10);
System.out.println(10);
System.out.println(10);
System.out.println(10);
// 没有使用变量存在的问题: 需要一条语句一条语句的修改
// 使用变量的好处: 把x值改了, 后面用到x的地方都会改变
// 可以先用一个变量记录这个整数10,
// 然后在需要用到整数10的地方用x代替就行
int x = 10;
System.out.println(x);
System.out.println(x);
x = 20;
System.out.println(x);
System.out.println(x);
}
}
- 变量注意事项(代码演示)
/*
目标:理解变量定义的注意事项
1.变量要先声明再使用
2.变量是什么类型, 就应该用来装什么类型的数据, 否则报错
3.变量的有效范围是定义变量时所在的{},且在同一个范围内部不能定义2个同名的变量
4.变量定义的时候可以没有初始值,但是使用的时候必须给初始值
*/
public class Variable02 {
public static void main(String[] args) {
// 1.变量要先声明再使用
int age = 18;
System.out.println(age);
// 2.变量是什么类型, 就应该用来装什么类型的数据, 否则报错
// age = 35.9;
// 3.变量的有效范围是定义变量时所在的{},
//且在同一个范围内部不能定义2个同名的变量
{
double money = 23.5;
System.out.println(money);
// double money = 10.4; // 报错
// int age = 28; // 报错
}
// System.out.println(money);
// 4.变量定义的时候可以没有初始值,但是使用的时候必须给初始值
// int number;
// System.out.println(number);
}
}
- 总结
变量是用来记录程序中的数据的,可以把变量理解成内存中的小盒子,盒子里放的东西就是变量记录的数据
变量的定义格式: 数据类型 变量名 = 初始值;
变量记录的数据程序运行过程中是可以发生改变的:变量名 = 值;
4.4关键字
- 什么是关键字?
关键字是java语言中有特殊含义的单词。比如用int表示整数,用double表示小数,等等!
- 关键字有哪些?
我们学习Java的语法其本质就是学习这些关键字的含义,一共有50多个关键字,我们不是一次性把这些关键字学完,会在后续的课程中每天学一点,慢慢得你就都学会了
- 如何识别那些单词是关键字?
关键字的特点:
1.关键字都是小写的
2.关键字在idea中有特殊颜色标记(如果你没有修改关键字的颜色,默认是蓝色的)
4.5 标识符
接下来我们学习一下标识符,所谓标识符其实就是我们自己取的名字。像前面我们取的类名,变量名其实都是标识符。
- 标识符规则
强制要求:必须遵守,不遵守就会报错
1.字母、数字、下划线、$组成
2.不能以数字开头
3.不能是Java的关键字
建议遵守:按照下面的方式取名字会显得更加专业
1.所有的名字要见名知意,便于自己和别人阅读
举例: class Student{} //一看这个类就知道表示一个学生
int age =10; //一看这个变量就知道表示年龄
2.类名:首字母大写(大驼峰命名)
举例: class Student{}
3.变量名:第二个单词开始首字母大写(小驼峰命名)
举例: double money = 6.88;
double applePrice = 7.5;
- 代码演示
/*
什么标识符: 就是程序中取的名字
人名:张三
狗:旺财
目标:掌握标识符的要求
1. 基本组成:由数字、字母、下划线(_)和美元符($)等组成
2. 强制要求:不能以数字开头、不能用关键字做为名字、且是区分大小写的
标识符的建议规范
1.变量名称:满足标识符规则,同时建议用英文、有意义、首字母小写,满足“驼峰模式”,例如: studentNumber
2.类名称:满足标识符规则,建议全英文、有意义、首字母大写,满足“驼峰模式”,例如: HelloWorld, Student */
public class Identifier01 {
public static void main(String[] args) {
int a = 10;
int b2 = 1;
// 标识符不能以数字开头
// int 2b = 2;
// 标识符不能是关键字
// int void = 6;
// 标识符是严格区分大小写的
int A = 3;
// 合法但不合理
int ____________ = 20;
int _____________ = 20;
// 中文合法但是不合理
int 年龄 = 18;
System.out.println(年龄);
} }
4.6转义字符
\t:一个制表位,实现对齐功能 \:一个\ \n:换行符 \”:一个” \’:一个’ \r:一个回车
- 案例演示
System.out.println("我的名字是:\t小马丁");
System.out.println("这是文件的的根目录\\");
System.out.println("我有没有\n换行");
System.out.println("妈妈对我说\"要好好学Java\"");
System.out.println("我想试一下\r回车是什么效果");
- 效果图展示