--- 恢复内容开始 ---
一, 1, 单行注释的快捷键 control+/
先选中要注释的行, 再按 control+/
按一次是注释, 再按一次是取消注释.
2, 多行注释的快捷键
control+shift+/ 多行注释
control+shift+\ 取消多行注释
二, 8 种基本数据类型:
整数: byte,short,int,long
浮点数: float,double
布尔类型: boolean
字符型: char
1, byte 最小的整数类型. 占 1 个字节. -128~127
2, short 也表示整数, 但是占 2 个字节. -32768~32767
3, int 占 4 个字节. -2147483648~2147483647 ***( 整数默认类型是 int)
4, long 占 8 个字节. 属于最大的整数类型, 能表示 19 位整数.
5, float 占 4 个字节. 后要加 f 或 F 也可以强制转换.
6, double 占 8 个字节. 浮点型 默认 可以加 d ,D 也可以不加.
7,boolear (bool) 布尔类型 多用于判断 . 布尔类型不能参与运算
布尔类型不能与其他类型互转, 包括强转.
8,char 类型, 用于保存一个字符: 可以是字母, 可以是符号, 可以是汉字, 可以是日文...
在 java 里面, char 类型存储的是 Unicode 字符. java 的 char 占 2 个字节.
三, 数据类型有隐式转换和显示转换 2 种.
一般大数据类型能容纳小数据类型的内容, 因此系统提供了隐式转换.
"=" 是 java 里面的赋值运算符, 它的功能是把 = 右边的值, 赋值给左边的变量.
大类型往小类型转换就出现编译错误.
如果非要转换, 可以使用强制类型转换.
*** 数据类型的转换:
1 隐式转换:
小转大. 大类型可以接收小类型.
赋值时: 小类型可以赋值给大类型.
- byte->short->int->long->float->double
- char->int->long->float->double
运算时:
小于等于 int 类型的整数进行运算, 会自动升级为 int 再进行运算.
小于等于 long 类型整数与 long 进行运算, 会自动升级为 long 再进行运算
如果和 float 运算, 升级为 float
如果和 double 运算, 升级为 double.
如果 = 左边的变量类型小于 = 右边的类型, 要进行强制转换.
2, 强制转换:
格式: 变量 = (指定的类型)数值, 指定的类型要与变量的类型一致.
四, 运算符的分类:
1, 赋值运算符 =
2, 算术运算符 + - */ %(模) ++ --
3, 复合运算符 += -= *= /= %=
4, 关系运算符>>= <<= == !=
5, 逻辑运算符 && || !
6, 位运算符 & | ~ ^ << >>
7, 三目运算符 ?:
1, 赋值运算符 =
作用是把等号右边的值, 赋值给左边的变量.
左边一定是变量.
int a = 5; 定义变量 a,a 的类型是 int. 把 5 赋值给 a.
此次此刻 a 存放的值是 5, 我们称: a 的值是 5
2, 算术运算符 + - */ %(模) ++ --
- m + n;
- m - n;
- m * n;
- m / n;
注意: 整数与整数相除, 结果取整 (抹掉小数部分) 除法里, 除数不能为 0
*% 用于求余数.
求余数的时候, 余数始终与被除数符号一致. 8%5=3 -8%5=-3
*++ 自增运算符
num++; 等价于 num = num + 1;
++num; 等价于 num = num + 1;
++ 在变量前面, 先增 1, 再使用变量.
++ 在变量后面, 先使用变量, 再增 1
* 复合运算符 += -= *= /= %=
a+= b 等价于 a = a + b;
a -= b 等价于 a = a -b;
a *= b 等价于 a=a * b;
a /= b 等价于 a=a/ b;
a %=b 等价于 a = a%b;
4, 关系运算符>>= <<= == !=
关系运算符的运算结果一定是一个 boolean
- int x = 3;
- int y = 5;
- boolean a = x != y;
- System.out.println(a);
5, 逻辑运算符 && || !
&& 逻辑与 表示并且, 用来连接 2 个表达式.
&& 两侧的表达式都为真的时候, 结果才为真. 只要有一个表达式是假, 结构就是假.
* 注意事项: 一旦发现 && 前面的表达式为假了 , 就不再计算后面的表达式了
这个现象称为短路现象.
|| 逻辑或 表示或者.
|| 左侧或者右侧有一个为 true 结果就是 true.
只有在 2 者都是 false 的时候才为 false.
如果 || 左侧的表达式为 true, 就不再计算 || 右侧的表达式了.
! 逻辑非. 作用就是取反.! 右侧是一个表达式.
如果表达式值是 true, 整个表达式的结果就是 false
- boolean h = !(a> b);
- System.out.println(h);
6, 位运算符 & | ~ ^ << >>
机器码 最高位是符号位 0 表示整数 1 表示负数
真值: 真正的值, 带正负号. 是 10 进制数.
原码(机器码)
反码: 正数的反码与原码相同, 负数的反码: 符号位不变, 其他位取反.
补码: 正数的补码与原码相同, 负数的补码: 反码 + 1
在内存里, 整数都是按补码存放的.
& 按位与. & 左右两侧是 2 个整数.
计算规则, 先把 2 个数转化位二进制(补码).
再按位与. 相同位置的数都是 1 结果才是 1, 有一个是 0, 结果就是 0
| 按位或. | 左右两侧是 2 个整数.
计算规则, 先把 2 个数转化位二进制(补码).
再按位或. 相同位置的数都是 0 结果才是 0, 有一个是 1, 结果就是 1
~ 按位取反. 以前是 0 变成 1, 以前是 1 变成 0.
也是先找补码, 对补码取反.
取非的快速公式:~A = -(A+1);
^ 左右 2 侧是 2 个整数. 也是先转换为二进制(补码).
相同位置的数, 相同为 0, 不同为 1.
数 <<n 位.<< 左侧是你要移动的数, 右侧是要移动多少位.
左移几位相当于乘以 2 的几次方.
数>> n 位.>> 左侧是你要移动的数, 右侧是要移动多少位.
右移几位相当于除以 2 的几次方.
7, 三目运算符 ?:
完整格式 表达式 1? 表达式 2: 表达式 3
当表达式 1 的值为 true 时,
使用表达式 2 的值作为整个表达式的结果
当表达式 1 的值为 false 时,
使用表达式 3 的值作为整个表达式的结果.
来源: http://www.bubuko.com/infodetail-2985403.html