1. float a = 3.5; int b = a; 打印b的结果是什么?
无结果。
Java语言的浮点类型默认是double类型,如果希望Java把一个浮点类型值当成float 类型处理,应该在这个浮点类型值后紧跟f或F。
2. int a = 5; float b = a; 打印b的结果是什么?
int 类型自动转换为float类型,所以结果为5.0
3. char a = 'A'; int b = a; 打印b的结果是什么?char 类型自动转换为int 类型,又因为A的ASCII码为65,所以结果为65。
4. int a = 68; char b = a; 打印b的结果是什么?无结果
5. 画出基本数据类型的兼容关系图
6. 变量的命名规则
1.变量首字母小写。2.变量可以使用字母,数字,下划线命名,但是不能以数字开头。3.采用的是小驼峰的命名规则如果变量的名字是两个单词拼接起来的,首个单词小写,另外一个单词首字母大写.4.命名 的时候一定要见名知意,看见英文意思就知道当前变量是什么意思。5.已经被java或者系统所占用的关键字,不能作为变量名字。
驼峰命名法就是当变量名或函数名是由一个或多个连接在一起,而构成的唯一识别字。
大驼峰是每一个单词的首字母都大写,例如:MyFirstName;
小驼峰是第一个单词首字母小写,其它单词首字母都大写,例如:myFirstName。
连字符命名法
7. 分别用表格整理算术运算符, 赋值运算符,比较运算符,逻辑运算符,位运算符,单目运算符,三目运算符
| 算术运算符 | +:加 可以作为数学加法运算符,还可以作为字符串的连接运算符。 -:减 还可以作为求负运算符 *:乘 /:除 如果除法运算符的两个操作数都是整数类型,则计算结果也是整数,即将自然除法的结果截断取 整。 如果除法运算符的两个操作数都是整数类型,则除数不可以是0,否则将引发除以零异常。 %:求余 用第一个操作数除以第二个操作数,得到一个整除的结果后剩下的值就是余数。如果求余运算的两 个操作数都是整数类型,则求余运算的第二个操作数不能是0,否则将引发除以零异常。如果求余运 算的两个操作数中有一个或者两个都是浮点数,则允许第二个操作数是0或0.0,只是求余运算的结 果是非数:NaN。0或0.0对零以外的任何数求余都将得到0或0.0。 ++:自加 自加只能操作一个操作数。 自加只能操作单个数值型的变量,不能操作常量和表达式。 若++在左边,则先把操作数加1,然后才把操作数放入表达式中运算;如果把++放在右边,则先把 操作数放入表达式中运算,然后才把操作数加1。 --:自减 用法与++相似 如果要完成乘方,平方等运算,可借助于java.lang.Math类的工具方法。 例如:求a的5次方:Math.pow(a,5);求a的平方根:Math.sqrt(a); |
| 赋值运算符 | 用于为变量指定变量值。使用赋值运算符将一个直接量值赋给变量。例如:double pi=1; 也可以将一个变量赋给另一个变量。例如:String str1=str2; 赋值运算符=号左边只能是变量。 |
| 比较运算符 | >:大于 >=:大于等于 <:小于 <=:小于等于 ==:等于 !=:不等于 |
| 逻辑运算符 | &&:与,前后两个操作数必须都是true才返回true,否则返回false。 &:不短路与,作用与&&相同,但不会短路。 |:不短路或,作用与||相同,但不会短路。 ^:异或,当两个操作数不同时才返回true,如果两个操作数相同则返回-false。 |
| 位运算符 | &:按位与。当两位同时为1时才返回1。 |:按位或。只要有一位为1即可返回1。 ^:按位异或。当两位相同时返回0,不同时返回1。 |
| 单目运算符 | 运算符只对一个操作数进行运算 ~5按位非 I++自增 !a 逻辑取反 |
| 双目运算符 | 运算符对两个操作数进行运算。例如3+4,5-2,6*7,8/2,10%3,A>b...... |
| 三目运算符 | 运算符对三个操作数进行运算 ? : 。格式:操作数1?操作数2:操作数3 |
8. =和==的区别
=是赋值运算
==是判断数值是否相等
9. i++和++i的区别
++i把操作数加1,然后才把操作数放入表达式中运算;
i++把操作数放入表达式中运算,然后才把操作数加1。
10. +运算符操作数值, 字符, 字符串的区别是什么
+运算符操作数值是将两个数值相加
+运算符操作字符是将字符的ASCII码的值相加
+运算符操作字符串是将字符串连接起来
11. &和&&的区别
& 不管成不成功都把判断条件内的条件全部执行,而对于&&如果第一个条件不成立则不用执行第二个条件
12. |和||的区别
||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。
13. &可以作为逻辑运算符使用, 也可以作为位运算符使用, 区别是什么
逻辑运算符只能针对boolean类型进行逻辑运算 ,位运算符可以对数值进行逻辑运算。逻辑运算符存在短路的现象,即前 边的表达式可以得到最终结果,后面的表达式不被执行。而位运算符不存在短路现象,位运算是把两边的数据全部变成二 进制补码的形式,然后进行计算
14. |可以作为逻辑运算符使用, 也可以作为位运算符使用, 区别是什么
同13
15. 什么是原码、反码、补码
原码就是符号位加上真值的绝对值,第一位表示符号,其余位表示值。
正数的反码是其本身。负数的反码是在其原码的基础上,符号位不变,其余位取反。
正数的补码还是其本身。负数的补码是在其原码的基础上,符号位保持不变,其余位取反,最后+1。即反码加1。
16. 图解3&5的运算过程和结果
| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
17. 图解3|5的运算过程和结果
| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
| 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
18. 图解~5的运算过程和结果
| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |
| 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
19. 图解3^5的运算过程和结果
| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
| 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
20. 图解8<<2的运算过程和结果
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
21. 图解8>>2的运算过程和结果
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
22. 图解~5和~-5的运算过程和结果
正数:+5
补码:00000101 ---->按位非运算~5=11111010 补码
11111001 反码
10000110 原码
负数:-5
原码:10000101
反码:11111010 反码=原码取反(第一个符号位不变)
补码:11111011 补码=反码加1 ----->按位非运算~-5=00000100 补码 正数
00000100 反码
00000100 原码
22. >>和>>>的区别是什么
>> 表示有符号右移,如果该数为正,则高位补0,若为负数,则高位补1
>>>表示无符号右移,若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。
23. 说说运算符的优先级, 以及如何改变优先级
可以用()来强行改变优先级
24. 什么是单目(一元), 双目(二元), 三目(三元)运算符
单目: 运算符只对一个操作数进行运算。例如 ~5 按位非,i++ 自增,!a 逻辑取反
双目: 运算符对两个操作数进行运算。例如3 + 4,5-2,6*7,8/2,10%3,a > b...........
三目: 运算符对三个操作数进行运算。?:
25. 说说第二行代码中有几个运算符和运算顺序
int a = 10
char b = a++ > 10 ? 'A': 'B'
4个运算符
运算顺序:>,? :,++,=
打印a,打印b



