1_>Java的概述
1.1_Java语言发展史
目标:
Java语言是用来干什么的
小结:
-
Java发展史:
- 1995年Sun公司推出java语言 因为Java语言 需要一个 强大的类库
- 2004年推出5.0版本,更新力度很大,让JAVA进入了发展的快车道
- 2009年Oracle甲骨文公司收购Sun公司
- 2014年JAVA(8.0)公司使用最多的版本
- 现在JDK最新的版本是14
-
2018年9月JAVA(11.0)是我们学习JAVA所用的版本
-
什么是Java语言
Java语言:java是一门计算机语言,是让我们人类与计算机交互的一种语言。 我们人类就可以通过计算机语言指挥计算机去干活。
-
Java之父是谁?
JAVA之父:詹姆斯·高斯林(James Gosling)
1.2_Java语言跨平台原理
目标:
什么是平台?什么是跨平台?跨平台的原理是怎么样的?
小结:
-
什么是平台?
平台即操作系统,目前主流的有微软Windows系统,苹果Mac系统,Linux系统
-
什么是跨平台?
通过java语言编写的应用程序可以在不同的操作系统上直接运行[class]。具有一次编译,到处运行的特点。·
-
跨平台的原理是怎么样的?
通过JVM实现java语言跨平台
在运行java程序的操作系统上,安装对应的JVM虚拟机,实现java语言跨平台。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mnhg9e2M-1615808906119)(assets/1559034236533.png)]
1.3_JRE和JDK
目标:
什么是JVM?什么是JRE?什么是JDK?它们三者之间的关系是怎么样的?
小结:
-
什么是JVM?
JVM:(Java Virtual Machine),Java虚拟机,JVM的作用负责解析运行class文件,保证Java的跨平台。
-
什么是JRE?
JRE:(Java Runtime Environment) Java程序的运行时环境,包含了JVM和运行时所需要的核心类库。如果只要运行Java程序,只要安装JRE即可。
-
什么是JDK?
JDK:(Java Development Kit) 是Java程序开发工具包,包含JRE和开发人员所用的工具(编译工具javac.exe 运行工具 java.exe)。
-
它们三者之间的关系是怎么样的?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9XlYq3lH-1615808906122)(assets/1558683336010.png)]
1.4_JDK的下载和安装
目标:
能够完成JDK的安装,知道JDK的开发工具放在哪个文件夹下面
小结:
-
怎么安装?
傻瓜式安装,一直都是下一步即可。(具体可看day01->4-笔记->JDK下载及安装说明.docx)
**建议:**安装路径中不要包含中文和空格。
-
JDK的开发工具放在哪个文件夹下面?
目录名称 说明 bin 该路径下存放了JDK的各种工具命令。javac和java就放在这个目录里面 conf 该路径下存放了JDK的相关配置文件 include 该路径下存放了一些平台特定的头文件 jmods 该路径下存放了JDK的各种模块 legal 该路径存放了JDK各模块的授权文档 lib 该路径下存放了JDK工具的一些补充JAR包
说明:
-
javac.exe(编译工具):启动Java的编译器对Java的源文件进行编译
-
java.exe(运行工具):启动Java虚拟机去解析运行指定的class文件。
1.5_常用DOS命令
目标:
为什么要使用DOS命令?怎么使用控制台窗口, DOS命令有哪些?
小结:
-
为什么要使用DOS命令?
因为java的开发工具需要使用控制台去运行,而控制台使用的是dos命令。
-
怎么去打开控制台?
win + r 输入 cmd
-
常用的DOS命令有哪些?
操作 说明 盘符名称: 盘符切换。E:回车,表示切换到E盘。 dir 查看当前路径下的内容。 cd 目录 进入单级目录。cd itheima cd … 回退到上一级目录。 cd 目录1\目录2… 进入多级目录。cd itheima\JavaSE cd \ 回退到盘符目录。 cls 清屏。 exit 退出命令提示符窗口。
tab键:自动补全
上下箭头 可以切换你输入的命令
如果按 tab键没有自动补全:
- CTRL+R 输入regedit 打开注册表页面
- 进入HKEY_LOCAL_MACHINE\Software\Microsoft\ Command Prosessor
- 双击CompletionChar,在弹出的窗口中,修改值为9 。勾选选择(十进制),点击确定。
1.6_Path环境变量的配置
目标:
为什么要配置环境变量?怎么去配置?
小结:
-
为什么要配置环境变量?
为了在任意文件下能使用JDK的bin目录下开发工具
-
怎么去配置环境变量
略。详情请查看 day01->4-笔记>Java环境变量配置说明.docx
**疑问:**为什么要配置环境变量:
主要就是为了在任意的路径下面都能够使用 javac.exe 以及 java.exe两个命令。
首先 你输入javac 编译的java文件 系统会在当前的目录下面去找你输入的javac这个命令 如果找不到的话 就去系统环境里面去找 如果找到了就可以执行这个命令 如果还是找不到 就直接报错
2_>Java程序的入门案例
2.1_HelloWorld案例
目标:
开发Java程序的步骤是什么?编译和运行分别使用了什么工具?怎么去编写运行一个HelloWorld案例?
小结:
-
开发Java程序的步骤是什么?
-
编写程序:编写.java后缀的源文件
-
编译程序:使用Java工具,将.java文件编译成.class后缀的字节码文件
其实主要就是 Java文件我们可以看得懂 可是 计算机是看不懂的 ,所以 就要编译 编译的话就是将我们看得懂的文件 转化为 计算机看得懂文件 我们又看不懂的
-
运行程序:使用 java工具运行编译好的字节码(.class后缀的)文件
-
-
编译和运行分别使用了什么工具?
- 编译:使用的是javac.exe 命令: javac 文件名.java
- 运行:使用的是java.exe 命令: java class文件名
-
怎么去编写运行一个HelloWorld案例?
- 新建文本文档文件,修改文件名字为 HelloWorld.java
- 用笔记本打开HelloWorld.java文件,输入内容
public class HelloWorld{
//程序的入口函数(main函数|主函数),所有的代码运行的时候都是从main函数的第一行开始。
public static void main(String[]args){
System.out.println("HelloWorld!");
}
}
//格式化输出
double x = 10000.0/3.0;
System.out.print(x);//3333.3333333333335输出没有换行
System.out.printf("%8.2f", x);// 3333.33
System.out.printf("Hello, %s.Next year, you'll be %d", name, age);
System.out.printf("%,.2f", 10000.0/3.0);//3,333.33
-
写好之后,按ctrl+s保存
-
打开命令提示符窗口,进入到HelloWorld.java所在的目录,输入指令编译和执行。
-
编译:javac HelloWorld.java
-
运行:java HelloWorld
2.2_HelloWorld常见问题
目标:
了解代码编写过程中常出现的错误
小结:
- 类名和文件名字要一致
- main方法 名字不要写错
- string 首字母要大写 -> String
- system 首字母也要大写 -> System
- “” 要使用英文的
- 符号也要使用英文 ; ()
- 注意 文件的类型一定要是java文件
2.3_Notepad++软件的安装和使用
目标:
安装Notepad软件,了解使用Notepad的好处
小结:
使用Notepad的好处
- 使用Notepad软件可以让我们看到具体的行号
- 编写代码的时候,单词会提示
3_>Java基础语法
3.1_注释
目标:
注释有什么用?都分别有哪些注释? 怎么去写注释
注释是对程序进行解释说明的,使程序更容易被人理解
分为单行注释 多行注释以及文档注释
小结:
-
注释的作用:
在程序指定位置解释说明,它不参与运行
-
注释的分类
单行注释://
多行注释:/* */
文档注释:/** 内容 */
3.2_关键字
目标:
了解什么是关键字,关键字有什么特点
小结:
-
什么是关键字?
Java语言赋予特殊意义的单词
-
关键字有什么特点?
1.就是小写的单词
2.在编译器里面会有特殊的颜色高亮显示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JzIfki5i-1615808906132)(assets/1559038173703.png)]
注意:
保留字:是语言已经定义过的字,一些保留字可能没有相对应的语法,考虑到扩展性,为了向后兼容不能再将其作为变量名。const和goto是java的保留字。 所有的关键字都是小写
3.3_常量
public class ConstantDemo{
public static void main(String[] args){
System.out.println(' '); //空格也是字符,能直接输出
}
}
目标:
什么是常量?常量有哪些类型?我们在使用的时候 需要注意哪些事项
小结:
-
什么是常量?
java程序运行过程中,其值的不会发生变化
-
常量有哪些类型?
6类 字符串常量 由双引号引起来 "" 里面的内容可以随便写 可以不写 整数常量 就是整数 包括 正负数 10 -10 小数常量 就是小数 包括 正负数 -1.1 1.23 字符常量 由单引号引起来 '' 里面内容 只能写一个 不可以不写 布尔常量 真假值 -> true 如果为假 就用 false 空常量 null 不能直接输出来
3.4_数据类型
计算机的存储单元:
位 (比特位 ) : b
8个字节 1B = 8b
1kb = 1024B
1mb = 1024kb
目标:
数据类型的作用?java中的数据类型有哪些? 基本数据类型有哪些?
小结:
数据类型:
两种:
基本数据类型:
整数:
int byte short long 1
小数:
double float 10.2
字符
char ‘a’
布尔类型:
boolean -> true false
引用数据类型:类 数组
-
数据类型的作用?
java语言是强类型语言,对每种数据都给出了明确的数据类型,不同的数据类型也分配了不同的内存空间,所以他们表示的数据大小也是不一样的。
-
java中的数据类型有哪些?
byte < short , char < int < long < float < double
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
整数 | byte | 1 | 负的2的7次方 ~ 2的7次方-1(-128~127) |
short | 2 | 负的2的15次方 ~ 2的15次方-1(-32768~32767) | |
int(默认) | 4 | 负的2的31次方 ~ 2的31次方-1 21亿 | |
long | 8 | 负的2的63次方 ~ 2的63次方-1 e*21 大概19位数 | |
浮点数 | float 单精度 | 4 | -3.403e+38~ 3.40e+38 38位数 |
double(默认使用) 双精度 | 8 | -1.798E+308 ~ 1.797693e+308 | |
字符 | char | 2 | 0-65535 |
布尔 | boolean | 1 | true,false |
说明: 10 > 2* 2* 2
e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。
在java中整数默认是int类型,浮点数默认是double类型。
【练习题】下面哪些是Java中的基本数据类型?(ade)
A.byte
B.Byte
C.String
D.char
E.long
3.5_变量
public class VariableDemo{
public static void main(String[] args){
/*
变量就是我们java运行过程中可以改变的量
实际上就是我们内存中的一块内存空间
数据类型 变量名 = 数值;
*/
//定义变量
int a = 10;
//int a = 10;
//输出变量
System.out.println(a);
a = 20;
System.out.println(a);
byte b = 15;
//同时定义多个变量
int c = 20, e = 40;
System.out.println(c);
System.out.println(e);
}
}
目标:
什么是变量?变量的作用?变量的定义格式?
小结:
-
什么是变量?
就是在java程序运行过程中,【在一定范围内】 ,其值可以发生该变的量
-
变量的定义格式?
数据类型 变量名 = 值;
-
修改变量
变量名 = 值;
3.6_变量使用的注意事项
目标:
了解变量使用的注意事项
小结:
-
相同{}范围内,变量名不能重复。
-
变量未赋值,不能使用
-
变量可以定义时初始化,也可以先定义,使用前进行初始化。
int a ; a = 10;
-
整数常量默认是int类型,定义long类型常量时需要加 L 或者l,建议加L
long l = 10000000000L;
-
小数默认是double类型,定义float类型的时候需要在数字后面加F或者f,建议加F。
float f = 10.2F;
-
一行代码上可以定义多个变量。
int aa = 10 , bb = 20;
3.7_标识符
目标:
标识符有什么用?标识符的组成规则?标识符的命名规范?
小结:
-
标识符有什么用?
第一 给类起名字
第二个 给变量起名字
第三个 给 包起名字
第四个 给方法起名字
-
组成规则
- 大小写字母
- 数字
- 下划线(_) 美元符号 $
- 不能以数字开头
- 不能是关键字
- 严格区分大小写 A a 就是两个变量名
- 可以是中文 但是 不推荐
-
标识符的命名规范?
小驼峰式命名:变量名、方法名
第一个单词首字母小写,从第二个单词开始每个单词的首字母大写。
userName,maxValue等 userNameAndPassword
大驼峰式命名:类名
每个单词的首字 母都大写。
HelloWorld
ChangLiang
**建议:**标识符的起名尽量做到见名知意。
拓展:
【练习题】下列不可作为java语言变量名的是( )
A、a1
B、$1
C、_1
D、5a 不能
E、num@ 不能
F、class 不能 关键字
G、String 能
H、98K 不能
I、M24 能
J、M16A 能
3.8_类型转换
目标:
类型转换的分类和规则
byte < short , char < int < long < float < double
小结:
分类:
**自动类型装换:**把一个表示数据范围小的数据或者变量赋值给另一个表示数据范围大的变量
例如:double d = 10;
long a = 200;
**强制类型转换:**把表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量
格式:目标数据类型 变量名 = (目标数据类型)值或者变量;
例如:int k = (int) 88.88;
long a = (long) 88.88;
数据类型从小到达的范围图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WTnw7QoU-1615808906136)(assets/1559929687543.png)]
拓展
【选择题】以下关于数据类型的转换,说法错误的是( )
A:int a = 1; byte b = 1; System.out.println(a+b); 程序不会报错并且打印2
B:int类型的数据转为double类型,需要强制转换。
C:int类型转成short砍掉2个字节,可能造成数据丢失。
D:short h = 1; h= h+1; h+1 需要使用强制转换才能编译成功。