文章目录
- 一、注释
- 二、字面量
- 三、变量
- 3.1 变量概述
- 3.2 变量在计算机中的底层原理
- 四、数据类型
- 五、关键字、标志符
- 六、类型转换
- 6.1 自动类型转换
- 6.2 表达式的自动类型转换
- 6.3 强制类型转换
- 七、运算符
- 7.1 基本算数运算符
- 7.2 + 符号做连接符
- 7.3 自增自减运算符
- 7.4 赋值运算符
- 7.5 关系运算符
- 7.6 逻辑运算符
- 7.7 三目运算符
- 7.8 运算符优先级
- 八、程序流程控制
- 8.1 顺序结构
- 8.2 分支结构
- 8.3 循环结构
- 8.4 跳转关键字:break、continue
- 补充:键盘录入技术
一、注释
- 作用: 对程序进行解释说明的文字,不影响程序的执行。
- 分类:
单行注释: // 注释内容 多行注释: /* 注释内容 */ 文档注释: /*** 注释内容*/
- 注意: 文档注释的内容将来可以提取到程序说明书中去,且不影响程序执行的原因是编译后的 Class 文件中没有注释了。
二、字面量
- 作用: 告诉程序员数据在程序中该怎么书写。
- 分类:
① 整数、小数:生活中写法与程序中写法一样。
② 字符:程序中必须使用单引号围起来,里面只能一个字符。
③ 字符串:程序中必须双引号围起来,里面内容可以随意。
④ 布尔值:false,true。
⑤ 空值:null 以后的内容。
三、变量
3.1 变量概述
- 作用: 内存中的一块区域,里面可以存储一个数据,存储的数据可以变化。
- 格式:
数据类型 变量名称 = 初始值;
- 赋值: 从右边往左执行。
- 注意事项:
① 变量必须先声明才能使用
② 什么类型的变量只能存放什么类型的数据
③ 变量从定义开始到 } 有效,同一个有效范围内不能定义重名的变量。
④ 变量定义的时候可以没有初始值,但是使用前必须有初始值。
3.2 变量在计算机中的底层原理
四、数据类型
- 定义变量:
数据类型 变量名称 = 初始值;
- 作用: 约束变量只能存储什么类型的数据,帮助定义出不同类型的变量。
- 分类: 引用数据类型、基本数据类型。引用数据类型包含String等,基本数据类型内存等信息如下:
- 注意事项:
随便写整数字面量,默认是 int 类型,想当成 long 类型后面加 L 或 l ;
随便写小数字面量,默认是 double 类型,想当成 float 类型后面加 F 或 f
如:Long b = 1234567899008343; b 是 long 型,但字面量123… 超过了整型的范围,因此会报错
Long b = 1234567899008343L; 这样则不会报错
五、关键字、标志符
- 关键字: java自己使用的,我们不能拿来取名字。
- 标志符: 就是我们取的名字,其规则:不能数字开头,不能用关键字,区分大小写。
六、类型转换
开发中会存在不同类型的变量或者数据赋值给其他类型的变量,也存在不同类型的数据一起运算,其结果类型要确定下来。
6.1 自动类型转换
-
原理: 小范围类型的变量可以直接赋值给大范围类型的变量。
-
范围信息:
-
举例: 这里在给 sh 赋值时,JVM 首先将变量 b 的值转换成 short 类型然后再赋值给 sh。
byte b = 11; // 00001011 short sh = b; // 00000000 00001011
-
注意这种形式是可以的:
char ch = 'a'; int code = ch; // 97
6.2 表达式的自动类型转换
-
含义: 在表达式中,小范围类型的变量会自动提升成大范围运算。
-
结论: 表达式的最终结果数据类型是由表达式中最高数据类型决定的。
-
注意: byte short char 在表达式中,是直接提升成int运算的。
byte a = 10; int b = 20; double c = 1.0; int rs1 = a + b + c; // 报错,最高类型是 double,应用 double 接收 double rs2 = a + b + c; // 不报错
byte i = 10; byte j = 20; byte k1 = i + j; // 报错,byte 在表达式中直接转换成 int 类型参与运算。 int k2 = i + j; // 不报错
-
面试笔试题:
byte b1 = 21; byte b2 = 22; byte b3 = b1 + b2 ; // 错误形式 int b3 = b1 + b2 ; // 不报错 byte b3 = (byte) (b1 + b2); // 不报错
6.3 强制类型转换
-
含义: 大范围类型的变量或者数据不能直接赋值给小范围类型的变量,否则报错!必须进行强制类型转换才可以。
-
格式:
数据类型 变量 = (数据类型) 其他类型的变量 / 数据
-
注意: 强制类型转换可能出现数据丢失。
-
注意: 浮点型类型的变量或者数据强制转换成整型,保留整数部分返回的,小数部分直接不要了。
double a = 99.5; int i = (int)a; // 99
七、运算符
7.1 基本算数运算符
- 常见的算数运算符:
+ - * / %
- 注意:/ 两个整数相除的结果一定是整数,可以先乘1.0,转换为浮点类型。
10 / 3 = 3 1.0 * 10 / 3 = 3.333....
7.2 + 符号做连接符
- 场景:+ 符号与字符串一起运算时,充当连接符,连接后的结果还是一个字符串。
- 识别技巧:从左到右,能算则算,不能算大家连在一起。
7.3 自增自减运算符
7.4 赋值运算符
7.5 关系运算符
7.6 逻辑运算符
7.7 三目运算符
格式:条件表达式 ? 值1:值2
7.8 运算符优先级
运算符存在谁先谁后执行的情况:
( )
优先级最高;*/
高于 ±
;&&
优先级高于 ||
八、程序流程控制
8.1 顺序结构
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
8.2 分支结构
-
if:可以判断条件来决定执行哪个分支,格式如下:
-
switch:根据表达式的值来进行值匹配选择对应的分支执行,格式如下:
-
if 和 switch 的区别:if 的功能更强大,适合做区间匹配。如果是值匹配的操作建议用switch,格式清晰,性能较好。
-
switch的注意事项:
表达式类型支持byte、short、int、char、String
,还有枚举。不支持double、float、long
。
case 给出的值不允许重复,且只能是字面量,不能是变量。
不要忘记写break,否则会出现 穿透现象。
8.3 循环结构
作用:控制一段代码重复的执行多次。
-
for 循环:
-
while 循环
-
do-while 循环:一定会执行一次循环体语句!再判断循环条件
8.4 跳转关键字:break、continue
break:跳出并结束当前所在循环的执行。只能用于结束所在循环,或者结束所在 switch 分支的执行。
continue:用于跳出当前循环的当次执行,进入下一次循环。只能在循环中进行使用。
补充:键盘录入技术
文章参考:Java入门基础视频教程,java零基础自学就选黑马程序员Java入门教程(含Java项目和Java真题)