标识符
关键字
Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。
标识符注意点
-
所有标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
-
首字符之后可以使字母(A-Z或者a-z),美元符($)、或者下划线(_)任意字符组合
-
不能使用关键字作为变量名或方法名
-
标识符是大小写敏感的
-
合法标识符举例:age、$sa、_value
-
非法标识符举例:123abc、-sa、#abc
数据类型
Java数据类型分为基本数据类型(Primitive Type)和引用数据类型(Reference Type)
-
要求变量的使用必须先定义后使用
字节
-
位(bit):是计算机内部数据储存最小的单位,11001100是一个八位二进制数
-
字节(v=byte):计算机中数据处理的基本单位,习惯上用大写B来表示
-
1B(byte,字节) = 8bit(位)
-
字符:计算机中使用的字母、数字、字和符号
-
1bit表示1位
-
1Byte表示一个字节1B=8b
-
1024B=1KB
-
1024KB=1M
-
1024M=1G
变量
变量是可变化的量,Java是强类型语言,每个变量都必须声明其类型,变量是程序中最基本的存储单元,元素包括变量名,变量类型和作用域
type varName [=value] [{,varName[=value]}];
//数据类型 变量名 = 值; 可以使用逗号隔开声明多个同类型变量
-
注意事项
-
每个变量都有类型,类型是基本类型也可以是引用类型
-
变量名必须是合法的标识符
-
变量声明是一条完整的语句,因此每一个声明都必须以分号结束
-
运算符
-
按照功能分类可以分为算术运算符、自增自减运算符、赋值运算符、比较运算符(关系运算符)、逻辑运算符、条件运算符、位运算符、lambda运算符。
功能分类 | 运算符运算符 |
---|---|
算术运算符(5个)算术运算符(5个) | +、-、、\、%+、-、、\、% |
自增自减运算符(2个) | ++、-- |
赋值运算符(12个) | \=、+=、-=、*=、\=、%=、&=、|=、^=、<<=、>>=、>>>= |
比较运算符/关系运算符(6个) | >、>=、<、<=、==、!= |
逻辑运算符(6个) | &、|、^、!、&&、|| |
条件运算符(1个) | (布尔表达式)?结果1:结果2 |
位运算符(7个) | &、|、~、^、<<、>>、>>> |
lambda运算符 | -> |
public class operator {
public static void main(String[] agrs){
//二元运算符
int a = 10;
int b = 10;
int c = 10;
int d = 10;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
}
}
-
按照操作数个数分类可以分为一元运算符、二元运算符、三元运算符
分类 | 运算符 | 案例 |
---|---|---|
一元运算符/单目运算符 | 正号(+)、负号(-)、++、--、!、~ | i++、i--、 |
二元运算符/二目运算符 | +、-、*、\、%、>、>=、<、<=、==、!= | a+b、10>=8 |
三元运算符/三目运算符 | (布尔表达式)?结果1:结果2 | age>=18?"成年":"未成年" |
算术运算符介绍
Java支持5种算术运算符
-
加法(+)
-
减法(-)
-
乘法(*)
-
除法(/)被除数 / 除数 = 商数 求商数
-
取模/取余(%)被除数 / 除数 = 商数…余数 求余数
取模的应用场景
-
判断一个数A,是否可以被另外一个数B整除,如果A对B进行取模结果为0,那么就表示A能够被B整除
-
判断一个数字A是奇数还是偶数,也就是拿这个数A对2进行取模运算,如果结果为0表示这个数是一个偶数,否则就是一个奇数
自增自减
自增运算符(++):用于将变量的值加1
自减运算符(--):用于将变量的值减1
自增自减运算符只能操作变量,不能操作字面量。
自增自减运算符只能有一个操作数,既可以放在变量的前面,也可以放在变量的后面
如果是单独使用,前置--和后置--是相同的,它们都是让变量自减1
如果是参与运算:前置++:先自减1再参与运算,后置++:先运算再自减1
public class Demoe2 {
public static void main(String[] agrs) {
//++ -- 自增,自减 一元运算符
int a = 3;
int b = a++;//执行完成这行代码后,先给b赋值,再自加
int c = ++a;//执行代码前,先自增,再给b赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
输出a时,a为5,是a在经过两次加1得到的结果
输出b时,a先将初始值3赋给b,再进行自增加1,此时a为4
输出c时,a先自增加1,a此时为5,再将值赋给c
由上得出,当++ --前置时先自运算再赋值,后置时先赋值再自运算
逻辑运算符
符号 | 说明 | 运算规则 |
---|---|---|
& | 逻辑与 | 运算符左右两边的操作数都必须是true,运算结果返回true,否则返回false |
&& | 短路与 | 运算符左右两边的操作数都必须是true,运算结果返回true,否则返回false;增加了短路特性:左边为false,则右边就不执行 |
| | 逻辑或 | 运算符左右两边的操作数只要有一个为true,运算结果返回true,否则返回false |
|| | 短路或 | 运算符左右两边的操作数只要有一个为true,运算结果返回true,否则返回false;增加了短路特性:左边为true,则右边就不执行 |
! | 逻辑非 | 取反,操作数为true时逻辑非的运算结果为false,逻辑非只有一个操作数 |
^ | 逻辑异或 | 当两个操作数不同的时候返回true,当两个操作数相同的时候返回false |
public class Demo5 {
public static void main(String[] args){
//与(and) 或(for) 非(取反)
boolean a = true;
boolean b = false;
//逻辑与运算:两个变量都为真,结果才为true
System.out.println("a && b:"+(b&&a));
//逻辑与运算:两个变量都为真,结果才为true
System.out.println("a || b:"+(b||a));
//逻辑与运算:两个变量都为真,结果才为true
System.out.println("! a && b:"+!(b&&a));
}
}
-
&&:运算符左右两边的操作数都必须是true,运算结果返回true,否则返回false;增加了短路特性:左边为false,则右边就不执行
-
||:运算符左右两边的操作数只要有一个为true,运算结果返回true,否则返回false;增加了短路特性:左边为true,则右边就不执行
-
! :取反,操作数为true时逻辑非的运算结果为false,逻辑非只有一个操作数
短路运算
短路运算是一种在逻辑运算中为了提高效率和安全性而采用的技术,它主要发生在逻辑运算表达式中,特别是&&
(与)和||
(或)运算中。可以有效地减少不必要的计算,从而节省计算资源,同时也能避免因继续计算而可能导致的错误或安全问题。
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
当判断c<4时,5<4已经判定false,无论后面条件如何,结果已经为false,所以短路不再执行后面语句c++不再执行,则c的为5