path环境变量的执行流程:
需要现在当前目录找,如果存在,就编译和运行;不存在,然后在path变量中( jdk安装目录的bin去找)
第一章 关键字和标识符
1.1 关键字的概述
被Java语言赋予特定含义的单词,HelloWorld案例中出现的关键词有:public,class,static,void等。
1.2 标识符概述
给类,接口,方法,变量等起名字时使用的字符序列。
标识符的组成
1)标识符可以包含英文字母26个(区分大小写)
2)0-9数字
3)美元符号
4)下划线(_)
注意:不能以数字开头,不能是Java中的关键字,要区分大小写。
第二章 常量
常量是指在Java程序中固定不变的数据。
2.1 常量的分类
字面值常量 :字面值常量典型的有整数常量、小数常量、字符常量、字符串常量、布尔常量、空常量。
自定义常量(跟final有关系)
2.2 进制的转换
进制的转换包括二进制、八进制、十六进制转换为十进制,也包括十进制转换为二进制、八进制、十六进制。
2.3 有符号位的数据表示法
在计算机内,有符号数的三种表示法:原码、反码、补码。所有数据的运算都是采用补码进行的。
原码:二进制定点表示法,即最高符号位,最高符号位是0表示正数,最高符号位是1表示负数,其余位表示数值的大小。
反码:正数的反码和原码相同,负数的反码是最高符号位不变,数值位按位取反。
补码:正数的补码和原码相同,负数的补码是在其反码的末尾加1.
第三章 变量和数据类型(##)
3.1 变量的概述
程序中可以变化的量称为变量。Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。
3.2 数据类型
数据类型的分类
分为两大类: 基本数据类型:整数 :字节型(byte) 1个字节
短整型(short) 2个字节
整型 (int) 4个字节
长整型 (long) 8个字节
浮点数 :单精度(float) 8个字节
双精度(double) 8个字节
字符 :(char) 2个字节
布尔:(boolean) 1个字节
3.3 变量的定义
定义变量格式的三要素:数据类型、变量名、数据值。
格式:
数据类型 变量名 = 数据值
注意:
变量名称:在同一个大括号范围内,变量的名字不可用相同
变量赋值:定义的变量不赋值不能使用。
3.4 数据类型的转换
Java程序中要求参与计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。
自动转换:将取值范围小的类型自动提升为取值范围大的类型 。
强制转换:将取值范围大的类型强制转换成取值范围小的类型。
转换格式:数据类型 变量名 =(数据类型) 被转数据值
注意:浮点转成整数,直接取消小数点,可能造成数据损失精度。
第四章 运算符和键盘录入数据
4.1 运算符
对常量和变量进行操作的符号
4.1.1算数运算符
常见的算数运算符:+、-、*、/、%、++、--
++和--单独使用和参与运算使用的区别
单独使用:单独使用时,无论++或--在前还是在后都自增1或自减1.
参与运算使用:++或 --在前,先自增1或自减1,然后再赋值;++或--在后,先赋值,再自增1或自减1.
4.1.2赋值运算符
基本的赋值运算符:=
扩展的赋值运算符:/=、+=、%=
4.1.3关系运算符
比较运算符有==、!=、<、>、<=、>=、
比较运算符的结果都是boolean型,要么是true,要么是false.
4.1.4逻辑运算符
包括:&、|、^、!、&&、||
&和&&的区别:单与时,无论左边是真是假,右边都进行运算。
双与时,如果左边为假,右边就不参与运算。
| 和 || 的区别:单或时,无论左边是真是假,右边都参与运算。
双或是,左边为真,右边就不参与运算。
4.1.5位运算符
包括<<(左移)、>>(右移)、>>>(无符号右移)、&(与运算)、|(或运算)、^(异或运算)、~(反码)
左移:空位补0,被移除的高位丢弃。乘以2的移动次幂。
右移:被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,最高位补1。除以2的移动次幂。
无符号右移:被移位二进制最高位无论是0或者是1,空缺位都用0补。
4.1.6三元运算符
格式: (关系表达式)?表达式1:表达式2;
如果条件是true,运算后的结果是表达式1;
如果条件是false,运算后的结果是表达式2;
4.2 键盘录入数据
步骤 :
(1)导包:位置在class上面,格式Import Java。util。Scanner;
(2)固定格式:Scanner 对象名=new Scanner(System.in)
(3)t 提示并接收:Int 对象名=对象名.nextInt();
(4)输出变量名即可
第五章 流程控制语句
5.1 顺序结构语句
是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行。
5.2 选择结构语句
1、 if语句
格式1:if(关系表达式){
语句体;
}
执行流程:先判断关系表达式的结果是true,还是false,如果是前者,就执行语句,如果是后者,就不执行语句体。
格式2 : if(关系表达式) {
语句体1;
}else {
语句体2;
}
执行流程:首先判断关系表达式看其结果是true还是false ,如果是true就执行语句体1 ,如果是false就执行语句体2。
三元运算符和if语句2的区别:(1)三元运算符连接的是两个数据的数据值(针对这个数据值进行比较或者判断)。
(2)if语句是一种流程控制语句,范围比三元运算符大,不仅可以判断两个数据数据值,还可以 操作具体语句。
(3)能使用if语句2的不一定能使用三元运算符,反之,能使用三元运算符的一定能使用if语句2.
格式3:if(关系表达式1) {
语句体1;
}else if (关系表达式2) {
语句体2;
}
…
else {
执行流程:首先判断关系表达式1看其结果是true还是false ,如果是true就执行语句体1 ,如果是false就继续判断关系
表达式2看其结果,true还是false ,如果是true就执行语句体2 ,如果是false就继续判断关系表达式
2、switch语句
格式:switch(表达式1){
case值1;
语句体1;
break;
case值2;
语句体2;
break;
........
default;
语句体n+1;
break;
}
执行流程:先计算出表达式的值,其次和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到
break就会结束。最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
注意:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的,default可以放在switch语句中的任意位置
case穿透性:在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运
行,直到遇到break,或者整体switch结束。
if语句和switch语句的区别:使用场景不同。
(1)if语句使用场: 针对结果是boolean类型的判断;针对一个范围的判断;针对几个常量值的判断。
(2)switch语句使用场景:针对几个常量值的判断。
5.3 循环语句
1、 for循环语句
格式: for(初始化表达式①; 布尔表达式②; 步进表达式④){
流程: 执行顺序:①②③④>②③④>②③④…②不满足为止。
其中: ①负责完成循环变量初始化
2、while循环语句
基本格式:while(判断条件语句){
循环体语句;
}
扩展格式:初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}
执行流程:先初始化语句后,判断条件语句是true还是false,如果是true,执行循环体语句,控制条件语句,如果是
false,执行其他语句。
(1)两种循环格式不一样
while:从内存角度考虑,while循环结束了,依然可以访问循环中的变量(消耗内存空间)
for:从内存角度考虑,for循环结束了,不能访问变量(变量生命周期随着for循环的结束而结束)
(2)从应用场景来说:
一般情况:如果明白循环次数或者明确循环的范围,优先考虑使用for循环,如果不明确循环次数或者不明确的范
围, 使用while循环操作.
3、do...while循环语句
基本格式:do{
循环体语句;
}while(判断条件语句);
扩展格式:初始化语句;
do{
循环体语句;
控制条件语句;
}whlie(判断条件语句);