2004年JAVA5.0更新密度非常大,让JAVA进入了发展的快车道。
2014年JAVA8.0是公司中使用最多的版本。
2018年9月JAVA11.0是我们学习JAVA基础使用的版本
JAVA可以在任意操作平台上运行。在需要运行JAVA应用程序的操作系统上,安装一个与操作系统对应的JAVA虚拟机JVM (JAVA Virtual Machine)即可。
JRE(Java Runtime Environment)是Java程序的运行时环境,包含JVM和运行时所需要的核心类库。我们想要运行一个已有的Java程序,那么只需安装JRE即可。
JDK(Java Development Kit)是Java程序开发工具包,包含JRE和和开发人员使用的工具。其中的开发工具:编译工具(javac.exe)和运行工具(java。exe)我们想要开发一个全新的Java程序,那么必须安装JDK。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FEfCNQ63-1619099431572)(D:/Program Files/TyporaPicture/image-20210421183645030.png)]
建议:安装路径中不要包含中文和空格,所有的开发工具最好安装目录统一。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4xMOYM6p-1619099431580)(D:/Program Files/TyporaPicture/image-20210421185012793.png)]
win+R 输入cmd
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vWBHOahr-1619099431586)(D:/Program Files/TyporaPicture/image-20210421185141329.png)]
为什么要配置Path环境变量
开发Java程序,需要使用JDK提供的开发工具,而这些工具在JDK的安装目录的bin目录下。
为了在开发Java程序的时候,能够方便的使用javac和java这些命令,我们需要配置Path环境变量。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5PyYoPjp-1619099431604)(D:/Program Files/TyporaPicture/image-20210421190841658.png)]
开发Java程序,需要三个步骤:编写程序,编译程序,运行程序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vnpizePx-1619099431606)(D:/Program Files/TyporaPicture/image-20210421191006528.png)]
BUG的解决
1:具备识别BUG的能力
多看
2:具备分析BUG的能力
多思考,多查阅资料
3:具备解决BUG的能力
多尝试,多总结
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-As02Jkyy-1619099431608)(D:/Program Files/TyporaPicture/image-20210421194254521.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UcWdb1lk-1619099431609)(D:/Program Files/TyporaPicture/image-20210421194604877.png)]
类名和文件保存时的文件名不一致,在保存时将其命名为HelloWrold,但是我在在程序中我的命名是HelloWordl,所以编译不成功。
关键字的字母全部小写。
常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。
常量:在程序运行过程中,其值不可以发生改变的量。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aeJda8mV-1619099431610)(D:/Program Files/TyporaPicture/image-20210422180853249.png)]
空常量不能直接输出,别的都可以。
计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母“b”表示。而计算机中最小的存储单元叫“字节(byte)”,通常用大写字母“B”表示,字节是由连续的8个位组成。
除了字节外还有一些常用的存储单位:
1B(字节)=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
Java语言是强类型语言,对于每一种数据都给出了明确的数据类型,不同的数据类型也分配了不同的存储空间,所以它们表示的数据大小也是不一样的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xePH5xES-1619099431611)(D:/Program Files/TyporaPicture/image-20210422182125389.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IKwgrnCC-1619099431612)(D:/Program Files/TyporaPicture/image-20210422182325281.png)]
占用单位(字节)
变量概述:在程序运行过程中,其值可以发生改变的量。从本质上讲,变量是内存中一小块区域。
格式:数据类型 变量名=变量值;
范例:int a=10;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0vTchiyV-1619099431613)(D:/Program Files/TyporaPicture/image-20210422182745562.png)]
变量的使用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xMfXnICf-1619099431614)(D:/Program Files/TyporaPicture/image-20210422182825485.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gS1JL3x9-1619099431616)(D:/Program Files/TyporaPicture/image-20210422184408318.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OgBWf0Yi-1619099431617)(D:/Program Files/TyporaPicture/image-20210422184432656.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KK3nxbnP-1619099431618)(D:/Program Files/TyporaPicture/image-20210422184503151.png)]
1.由数字、字母、下划线(_)和美元符($)组成
2.不能以数字开头
3.不能是关键字
4.区分大小写
2b以数字开头不符合规则
class是关键字
#itheima有#所以不符合规则
Class符合
小驼峰命名法: 方法、变量
约定1:标识符是一个单词的时候,首字母小写
范例1: name
约定2:标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写
范例2: firstName
大驼峰命名法:类
约定1:标识符是一个单词的时候,首字母大写
范例1: Student
约定2:标识符由多个单词组成的时候,每个单词的首字母大写
范例2: GoodStudent
自动类型转换
把一个表示数据范围小的数值
或者变量
赋值给另一个表示数据范围大的变量
范例:double d=10;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zjgvK8ny-1619099431619)(D:/Program Files/TyporaPicture/image-20210422185517951.png)]
强制类型转换
把一个表示数据范围大的数值
或者变量
赋值给另一个表示数据范围小的变量
格式:目标数据类型变量名=(目标数据类型)值或者变量;
范例: intk = (int)88.88;
运算符:对常量或者变量进行操作的符号
表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
不同运算符连接的表达式体现的是不同类型的表达式。
举例说明:
int a = 10;int b = 20;int c = a + b;
+:是运算符
,并且是算术运算符
a +b:是表达式
,由于+是算术运算符,所以这个表达式叫算术表达式
+-*/%
需要注意的是:整数相除只能得到整数,要想得到小数,必须有浮点数的参与
拿字符在计算机底层对应的数值来进行计算的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DoDfNyAt-1619099431621)(D:/Program Files/TyporaPicture/image-20210422191628674.png)]
算术表达式中包含多个基本数据类型
的值的时候,整个算术表达式的类型会自动进行提升。
提升规则:
byte类型,short类型和char类型将被提升到int类型
整个表达式的类型自动提升到表达式中最高等级操作数同样的类型
等级顺序:byte,short,char->int->long->float->double
char a1=int b+char c; //char类型会被自动提升为int类型 //错误:不兼容的类型:从int转换为char可能会有损失 int a2=int b+char c; //int a3 =10 +13.l4; //错误:不兼容的类型:从doule转换为int可能会有损失 double a4= 10 + l3.l4;
当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算。
“damedolla”+ 666
在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”
操作时,从左到右逐个执行。
1 + 99+“XUPT”
= += -= *= /= %=
需要注意的是:扩展的赋值运算符隐含了强制类型转换
short x=20; x = (short)(s+20);
++和–既可以放在变量的后边,也可以放在变量的前边.
单独使用的时候,++和–无论是放在变量的前边还是后边,结果是一样的。
参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者–。
参与操作的时候,如果放在变量的前边,先拿变量做++或者–,后拿变量参与操作。
最常见的用法:单独使用
== != > >= < <=
先做关系判断,关系运算符的结果都是boolean类型,成立为ture,不成立为false。
逻辑运算符,是用来连接关系表达式的运算符。当然,逻辑运算符也可以直接连接布尔类型的常量或者变量。
& | ^ !
符号 | 作用 | 说明 |
---|---|---|
&& | 短路与 | 作用和&相同,但是有短路效果 |
ll | 短路或 | 作用和|相同,但是有短路效果 |
需要注意的是:
逻辑与&,无论左边真假,右边都要执行。
短路与8&,如果左边为真,右边执行;如果左边为假,右边不执行。逻辑或|,无论左边真假,右边都要执行。
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
最常用的逻辑运算符:&&,ll,!
格式:关系表达式?表达式1∶表达式2;
范例: a> b ? a: b;
计算规则:
首先计算关系表达式的值。
如果值为true,表达式1的值就是运算结果如果值为false,表达式2的值就是运算结果。
Scanner使用的基本步骤
1.导包
import java.util.scanner;
导包的动作必须出现在类定义的上边
2.创建对象
scanner sc = new Scanner (System.in) ;
上面这个格式里面,只有sc是变量名,可以变,其他的都不允许变。
3.接收数据
int i = sc.nextInt () ;
上面这个格式里面,只有i是变量名,可以变,其他的都不允许变。
流程控制语句分类
顺序结构
分支结构(if,switch)
循环结构(for,while,do…while)
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
if语句格式
格式: if(关系表达式1){ 语句体1; }else if(关系表达式2){ 语句体2; } ... else{ 语句体n+1; }
执行流程:
①首先计算关系表达式1的值
②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
④…
⑤如果没有任何关系表达式为true,就执行语句体n+1
格式:
,执行流程:
switch(表达式){
首先计算表达式的值。
case值1:
②依次和case后面的值进行比较,如果有对应的值,就会执行相应的语
语句体1;
句,在执行的过程中,遇到break就会结束。
break;
③如果所有的case后面的值和表达式的值都不匹配,就会执行default
case值2:
里面的语句体,然后程序结束掉。
语句体2;
break;
…
default:
语句体n+1;[break;]
}
需要注意的是:在switch语句中,如果case控制的语句体后面不写break,将出现穿透现象,在不判断下一个case值的情况下,向下运行,直到遇到break,或者整体switch语句结束
循环结构的组成:
初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
循环结构对应的语法:
初始化语句:这里可以是一条或者多条语句,这些语句可以完成一些初始化操作
条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式能决定是否执行循环体。例如: a<3
循环体语句:这里可以是任意语句,这些语句将反复执行
条件控制语句:这里通常是使用一条语句来改变变量的值,从而达到控制循环是否继续向下执行的效果。常见i++,i–这样的操作
for循环语句格式
格式:
for(初始化语句;条件判断语句;条件控制语句){ 循环体语句; }
执行流程:
执行初始化语句
执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
执行条件控制语句回到②继续
while循环语句格式
基本格式:
while(条件判断语句){ 循环体语句; }
完整格式:
初始化语句; while(条件判断语句){ 循环体语句; 条件控制语句; }
执行流程:
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行③执行循环体语句
④执行条件控制语句
⑤回到②继续
do…while循环语句格式
基本格式:do { 循环体语句; }while(条件判断语句);
完整格式: 初始化语句;do { 循环体语句; 条件控制语句; }while(条件判断语句);
执行流程:
①执行初始化语句
②执行循环体语句
③执行条件控制语句
④执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行回到②继续
⑤回到②继续
continue用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行
break用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环
语句结构:
顺序语句―以分号结尾,表示一句话的结束
分支语句―一对大括号表示if的整体结构,整体描述一个完整的if语句
一对大括号表示switch的整体结构,整体描述一个完整的switch语句
循环语句一对大括号表示for的整体结构,整体描述一个完整的for语句
一对大括号表示while的整体结构,整体描述一个完整的while语句do…while以分号结尾,整体描述一个完整的do…while语句
任何语句对外都可以看成是一句话,一句代码
分支语句中包含分支语句称为分支嵌套循环语句中包含循环语句称为循环嵌套
作用:用于产生一个随机数
使用步骤:
①导包
import java.util.Random;导包的动作必须出现在类定义的上面
②创建对象
Random r = new Random() ;
上面这个格式里面,r是变量名,可以变,其他的都不允许变
③获取随机数
int number = r.nextInt(10);//获取数据的范围:[0 ,10)包括0,不包括10
上面这个格式里面,number是变量名,可以变,数字10可以变。其他的都不允许变
1创建一个空项目(JavaSE_Code)
2创建一个新模块(idea_test)
3在idea_test模块下的src下创建一个包(com.lxh
4在com.itheima包下新建一个类(HelloWorld)
5在HelloWorld类中编写代码
6在idea中执行程序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-svN1TsKl-1619099431623)(D:/Program Files/TyporaPicture/image-20210422213950994.png)]
快速生成语句
快速生成main()方法: psvm,回车
快速生成输出语句: sout,回车
内容辅助键
Ctrl+Alt+space(内容提示,代码补全等)
快捷键:
注释:
单行:选中代码,Ctrl+/,再来一次,就是取消
多行:选中代码,Ctrl+Shift+/,再来一次,就是取消
格式化
Ctrl+ALt+L