变量:
概述:在程序执行的过程中,在某个范围内其值可以发生改变的量
定义格式:
格式1:数据类型 变量名 = 初始化值; 例 int x=3;
格式2:数据类型 变量名; 变量名 = 初始化值; 例 int x; x=4;
注意事项:
初始化:没有初始化值的变量不能直接使用
作用域:变量定义在哪个大括号内,它就在哪个大括号内有效,并且在同一个大括号内,不能定义重名的变量
数据类型:
数据类型:Java是一种强类型语言,针对每一种数据都定义了明确的数据类型。
数据类型分为:基本数据类型;引用数据类型;
基本数据类型:
整数型(占用字节):byte(1),short(2),int(4),long(8);浮点型:float(4),double(8);字符型:char(2);布尔型:boolean(1);
引用数据类型:
类:class;接口:interface;数组:[];
注意事项:同一作用范围内,变量名不可重复;整数默认类型是int;长整型后缀用L标记;小数默认类型是double;单精度浮点型后缀用F标记。
一般来说,我们在做运算的时候,要求参与运算的数据类型必须一致;数据类型不同时,发生类型转换。
数据转换:默认转换:小范围的数据默认转换为大范围的数据进行运算;强制转换:大范围的数据转换为小范围的数据时报错,需要强制转换。
强制转换格式:目标数据类型 变量名 = (目标数据类型)(表达式)
变量相加,会首先看类型的问题(有提升就提升),最终把结果赋值也会考虑类型的问题。
常量相加,首先会做加法运算,然后再去看结果在不在接收的数据类型的范围内。
例如:
ASCll码表: 'a' :97; 'A':65; '0':48
+号的作用:字符串与其他数据做加法的时候,加号起到连接符的作用,做字符串拼接
运算符:
运算:对常量和变量进行操作的过程称之为运算;运算符:对常量和变量进行操作的符号,称之为运算符
算数运算符:+,-,*,/,%,++,--
++(--)是自增加1(自减减1),单独使用的时候,放在前面或者后面结果都一样
无论是++还是--,当它们放在后面的时候(i++),先赋值,后加1或者减1,放在前面的时候(++i),先加1或者减1,后赋值;只针对变量进行操作。
赋值运算符:=,+=,-=,*=,/=,%=
a+=1 并不是转换成a = a + 1, 而是转换成a = (a的数据类型)(a+1),默认包含了强制类型转换
关系运算符: ==,!=,<,>,<=,>=
关系运算符的计算结果是一个boolean值,true或者false
逻辑运算符:& (与);&& (AND短路);| (或) ; || (OR短路); ^ (异或); ! (非)
&逻辑与:有false则false;|逻辑或:有true则true;^逻辑异或:相同为false,不同为true。
&&和&的区别:&&具有短路效果,左边为false的时候,右边不执行,结果就是false
||和|的区别:||具有短路效果,左边为true的时候,右边不执行,结果就是true
位运算符:>>,>>>,<<,&,|,^,~
想要进行位运算,首先要求得二进制
&位与运算:有0则0; |位或运算:有1则1; ^位异或运算:相同则0,不同则1
&位与运算例:
|位或运算例:
^位异或运算例:
~位取反运算:
计算机运算通过操作补码进行 ,位运算也在补码上操作
<<n左移:向左移动n,最高位丢弃,右边补0
>>n右移:向右移动n,最高位是0,左边补0,最高位是1,左边补1
>>>n无符号右移:向右移动n,无论最高位是0还是1,左边都用0补齐
三元运算符:格式: (关系表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1 ; 如果条件为false,运算后的结果是表达式2;
关系表达式中的结果一定要是boolean类型
三目运算符的结果数据类型以最大的那个数据类型为标准