变量存储过程
int num=8;
System.out.prient(num);
图拍你稍后补上
作用域
从定义变量开始, 到该变量所属的 {} 完结, 在同一作用域中, 变量名 不能够反复!!!
数据类型的转换:
byte > short > int > long > float > double
主动转换
程序主动转换, 不须要程序员关注
例如:
`byte b=10;
short s=b;
System.out.println(s);
`
整数类型转浮点型, 在整数前面加上 .0 变成浮点数
float > double 可能会存在精度失落
强制转换
从大转小的时候, 编译会报错(可能会溢出)
在否些状况下, 强转并不会溢出
格局:
(强转的类型)值;
留神:
1. 大类型转小类型, 有可能会呈现溢出
2. 从大转小, 江大的二进制数从最左边开始截取小数据类型所能存储的二进制的位数
![image.png](/img/bVcM5zq)
3. 浮点型转整型
舍弃小数局部
数据类型的主动晋升
例如:
![image.png](/img/bVcM5Af)
运算符号
分类
1. 算数运算符号
2. 赋值运算符号
3. 关系运算符号(比拟)
4. 逻辑运算符号
5. 位运算符号
6. 三目运算符号
算数运算符号
+ - * / 加减乘除
+:
如果两个元素的数据类型始终, 后果的数据类型和元素保持一致;;; 如果两个元素不统一, 后果的数据类型和大的保持一致
![image.png](/img/bVcM5Ew)
-: 相减
*: 求积
如果两个元素的数据类型始终, 后果的数据类型和元素保持一致;;; 如果两个元素不统一, 后果的数据类型和大的保持一致
/: 求商
除数不能为 0
正浮点数 /0 Infinity(无穷大)
负浮点数 /0 -Infinity(无穷小)
0.0/0 NaN(Not a Number)
%: 取模 模余 --- 求有数
5%3=2
余数是负数还是正数 取决于第一个数字
++: 自增 1
单目运算符号, 只能对单个变量元素做运算
i++; 严格意义上来说指的是
i=(type)(i+1)
i++,++i;
符号在前先自增在运算, 符号在后, 先运算在自增
eg;
int i=6;
int j=i++ + ++i;
答案:j=14,i=8
--: 自减 1
和 ++ 同理
赋值运算符号
java 中反对连等符号;Eg: int a,b;
a=b=3;+=;(默认蕴含 强制数据类型转换)
a+=2;
等于:a=a+2
byte a =10;
a+=2;
sout(a);
-+;*=;/+;
比拟运算符号
> 大于
< 小于
>= 大于等于
<= 小于等于
== 相等
!= 不等于
逻辑运算符号
对于 boolean 类型的做运算,后果也为 boolean
& 与 且 and
同 true 为 true,见 false 为 false;
| 或 or
见 true 为 true 同 false 为 false
! 取反
^ 异或
如果两个元素的值相等,则后果为 false;如果两个元素的值不想等,则后果我 true
经典面试题:int a=3;
int b=4;
int c=a;
a=b;
b=c;
一个值异或同一个值两次后果还是该数自身;替换两个数的值:1. 通过三个变量来替换
2. 求和形式,不必创立第三个变量
3.^ 解决
长处:晋升代码效率
&& 双与 短路与
|| 双或 短路或
位运算符号
对整型数字运算,基于二进制来做运算
& 按位与
将数字换成二进制,雷同
| 按位或
^ 按位异或
~
<<
>>
>>>
源码:十进制转二进制 失去的数字
反码:转二进制 1 变成 0
补码:反码根底上 +1
补充
int i=10;
char c='a';
syso(i+c);
PS: 和字符串拼接,会应用字符
和整数类型、浮点数类型拼接的时候会应用对应的数字~~