目录
——关键字
被Java赋予特定含义的词
class:定义类的
public:权限修饰符 公共
注意:一般来说小写
特殊关键字:例:const,goto 又称为保留字
——标识符
1、概念:
给类,方法,变量等起名字的字符序列
2、组成类别:
英文大小写字母,中文汉字
数字
$ _
3、注意:
严格区分大小写
标识符不能喝和关键字冲突
不建议使用中文汉字
数字不能开头,也不能单独享用
$ _ 有特殊用场,不建议随意使用
——变量值(字面值)
概念:
在程序中可以直接使用的值
分类:
1、数值型字面值
整数:默认为十进制
二进制:ob
八进制:0
十六进制:0x
浮点数
2、字符型字面值
一对单引号引起来,只能表示一个字符‘a',’+‘
注意:
单引号不能表示多字符 ’abc‘
单引号不能为空 ’‘
问题:怎样输出字符 ’
转义字符:
格式: \字符 例; \'
\t——制表符 \r——回车,换行
3、字符串型字面值
一对双引号引起来
“”——空字符串
“a”——字符串a
“sdag323”——多个字符
补充:
System.out.println("ab")——先输出ab,在换行
System.out.pring("ab")——只输出ab
4、布尔型字面值:
布尔:指的是逻辑判断的结果
ture:正确的
false:错误的
——Java数据类型
弱类型:JS
var x=10; x = 3.5; x = "hello";
强类型:Java
int x = 5; x = 3.5; //报错
Jave数据类型:
基本数据类型(四类八种) 和 引用数据类型(类数组枚举)
基本数据类型:
整型:
byte | 字节型 | 1字节 | -128~127 -2^7~2^7-1 |
short | 短整型 | 2字节 | -32768~32767 -2^15~2^15-1 |
int | 整型 | 4字节 | -2^31~-2^31-1 |
long | 长整形 | 8字节 | -2^63~2^63-1 |
int型是整型最常用的类型
整型字面值默认都是int型
整形字面值如果超出了int范围,希望通过long类型表示
则在后缀处加L或 I
浮点型:
float | 单精度浮点型 | 4字节 | 有效数字:7~8位 |
double | 双精度浮点型 | 8字节 |
double类型是浮点型常用的类型
浮点数字面值默认都是double型
double转换成float类型可能会溢出
如果需要指定的浮点数字面值用float类型来存储,可以加F或 f后缀
Java也支持在浮点数字面值后加D或 d,表示double存储
字符型:
char | 字符型 |
注意:
char c=98; //输出为b
可以将整数值赋值给char类型的变量(在码表范围内)
布尔型:
boolean | 字符型 |
值要么为true,要么为false
——数据类型转换(基本数据类型为例)
1、自动类型转换:
数值型 从小到大
byte->short->int->long
float->double
char->int->long->float->double
2、强制类型转换
格式:(type)数值或者变量
例如:(byte)i5——将i5 变量强制转换为byte类型
注意:强制类型转换要慎用,可能出现意外结果
——运算符
1、概念
被指定了运算规则的符号
2、分类
1、算术运算符
2、赋值运算符
3、关系运算符
4、三目运算符
5、逻辑运算符
6、位运算符
3、算数运算符
1、应用场景
1、输出语句中对字面值直接使用
2、输出语句中对变量运算
3、将运算的结果保存在变量
2、结果数据类型问题
1、结果数据类型和运算元素类型中的大类型保持一致
2、byte short char 类型参与运算时会自动提升为int型
3、面试题
1、byte b1=3;
byte b2=4;
byte sum=b1+b2;
编译报错,如何改错?
1.强制类型转换:byte sum=(byte)(b1+b2);
2.修改结果数据类型:int sum=b1+b2;
2、byte sum=3+4;
编译不会报错。
原因:1.编译期间只检验变量的值
2.编译期间进行优化,对字面值会在编译期间由虚拟机进行 运算,所以上程序编译后,byte sum=7;并检查7在不在 byte的范围内,如果超出范围,编译报错
4、/ (求商运算)
1、int / int 结果必然为int类型,只取整数部分
2、除数为0的情况:
1.被除数为整型:编译不报错,运行会抛出异常
2.被除数为正浮点数:2.0/0 //infinity 无穷大
被除数为负浮点数:-2.0/0 //-infinity 无穷小
3、0/0 //报错
0.0/0 //NAN——Not a number(非数字)
5、++(自增运算)
1.++:让变量值加1
2.应用场景:作用于变量
3.原理:x++ <=> x=(type)(x+1)
4.++可以再变量值前边也可以在变量值后边
如果单独使用,在前后效果一致
如果参与运算,则有区别:
变量在前,++在后,则先使用变量的值参与运算,再让变量+1;
++在前,变量在后,则先让变量+1,在使用变量+1后的值参与运算
4、赋值运算符
=:赋值运算符,优先级最低的,不表示相等
+=: a += b <=> a = (type)(a+b)
a只能是变量,不能是常量字面值
5、关系运算符
< > >= <= == !=
6、逻辑运算符
针对double类型的值做运算的,结果也是布尔类型的值
1.&(且 与) |(或) ^(异或) !(非)
2.&:要求两个条件同事成立,结果才成立
x & y:总结:同为true,结果为true,一旦有false,结果为false
3.x ^ y: 总结:x与y相同为false,不同为true
4.&&(双与 短路与):提高程序的执行效率
总结:&&左边为false时,右边不在执行,结果为false
&&左边为true,则效果等同于&
单&两边都要执行
7、三目运算符
1、格式:表达式或值 ? 表达式1或值1 : 表达式2或值2
2、要求:表达式必须为boolean类型
3、执行流程:
执行表达式或值
true:表达式1或值1
false:表达式2或值2
8、位运算符
&(按位与) |(按位或) ~(按位取反) ^(按位异或)
<<(按位左移) >>(按位右移) >>>(按位无符号右移)