1. float a = 3.5; int b = a; 打印b的结果是什么?
无法运行,范围大的转小需要进行强制类型转换。且3.5是double型
输出3
2. int a = 5; float b = a; 打印b的结果是什么
5.0
3. char a = 'A'; int b = a; 打印b的结果是什么
65
4. int a = 68; char b = a; 打印b的结果是什么
无法运行,需要强制类型转换
输出D
5. 画出基本数据类型的兼容关系图
boolean无法相互转换。
6. 变量的命名规则
驼峰命名法
骆峰式命名法(Camel-Case)是电脑程式编写时的一套命名规则(惯例)。
骆峰式命名法就是当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母!
小驼峰
变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写。譬如int studentCount=0;
变量myStudentCount第一个单词是全部小写,后面的单词首字母大写。
大驼峰
相比小驼峰法,大驼峰法把第一个单词的首字母也大写了。常用于类名,函数名,属性,命名空间。譬如public class StudentInfomation;
补充说明,在JAVA中:类名的标识符一般用大驼峰式书写格式,方法和变量的标识符则多用小驼峰式书写格式。
连字符命名法
所有字母大写,如果有多个单词组成,单词与单词之间以” _“隔开。而且该变量
必须是公共、静态、final类型
例如:public static final String USER_NAME=”userName“;
7. 分别用表格整理算术运算符, 赋值运算符,比较运算符,逻辑运算符,位运算符,单目运算符,三目运算符
算数运算符:+、-、*、/、++、--、%
赋值运算符:=
拓展如下图
比较运算符:>、=、<、>=、<=
逻辑运算符:
位运算符:
按位与(&)解析:位上都为1则返回1
例如3&4:00000011
00000100
00000000 返回0
按位或(|)解析:位上有1则返回1
例如3&4:00000011
00000100
00000111 返回7
按位非(~):
例如~3、:00000011 将3转为二进制又正数原码=反码=补码
11111100 按位取反,包括符号位得补码
11111011 因 补码=反码+1,所以 补码减一得反码
10000100 返回-4 符号位不变,其余取反得原码 转十进制输出-4
~-5:10000101
11111010
11111011
00000100 正数原码=反码=补码 输出4
按位异或(^)解析:
3^4:00000011 (位上相同返回0,不同返回1)
00000100
00000111 返回7
<<左移运算符:
8<<2: 00001000 ------00100000 8*4=32 最高位消除最低位补0
>>右移运算符:
8>>2:00001000------00000010 8/4=2 最低位消除最高位补且正数补0负数补1
>>>无符号右移运算符:
8>>>2:00001000------00000010 8/4=2 最低位消除最高位补0
单目运算符:运算符只对一个操作数进运算
~5 按位非
i++/i-- 自增1/自减1
!a 逻辑取反
三目运算符:运算符只对三个操作数进运算 ?:
a ? A:B
a必须是boolean类型,或一个表达式,结果为Boolean。
A和B的类型必须一样
a的结果为true,则运算结果为A;a的结果为false,则运算结果为B。
8. =和==的区别
=为赋值,==为等于
int a = 7 将7赋值给a,'A'==65 则结果为true
9. i++和++i的区别
i++:先进行i运算,结束后马上进行i自增1。
++i:先进行i自增1运算,再进行后续运算。
10. +运算符操作数值, 字符, 字符串的区别是什么
1+3 为做加法运算。
'1'+'3' 为编码运算,字符'1'的编码加上字符'3'的编码
"1"+"3" 做拼接运算,结果为13
11. &和&&的区别
&为不短路与,两边都为true则为true,否则为flase。左边不成立,右边也会运算一下。
&&为短路与,逻辑同上,但是若左边为true,则继续做右边运算;若左边为flase,右边就不运算了。
12. |和||的区别
|为不短路或,两边有一个为true,结果就为true。左边成立,右边则失去了意义,但也会运算一下。
||为短路或,左边为true,虽然右边失去的运算意义,不会运算。
13. &可以作为逻辑运算符使用, 也可以作为位运算符使用, 区别是什么
一个是逻辑运算boolean型,一个是位运算既可以运算boolean型也可以运算数值型。
14. |可以作为逻辑运算符使用, 也可以作为位运算符使用, 区别是什么
一个是逻辑运算boolean型,一个是位运算既可以运算boolean型也可以运算数值型。
15. 什么是原码、反码、补码
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。
例如+1:00000001 -1:10000001
反码的表示方法是: 正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反。
例如+1:00000001 反码 00000001
-1:10000001 反码 11111110
补码的表示方法是:正数的补码就是其本身,负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1 (即在反码的基础上+1)。
例如-1:反码11111110 补码 11111111
16. 图解3&5的运算过程和结果
3:00000011
5:00000101
3&5:00000001 结果=1
17. 图解3|5的运算过程和结果
3:00000011
5:00000101
3|5:00000111 结果=7
18. 图解~5的运算过程和结果
~5:00000101 原码=补码
11111010 按位取反(包括符号位) 补码
11111001 补码-1=反码
10000110 除符号位取反得结果=-6
19. 图解3^5的运算过程和结果
3:00000011
5:00000101
3^5:00000110 结果=6 (位上相同返回0,不同返回1)
20. 图解8<<2的运算过程和结果
8<<2: 00001000 ------00100000 8*4=32 最高位消除最低位补0
21. 图解8>>2的运算过程和结果
8>>2:00001000------00000010 8/4=2 最低位消除最高位补且正数补0负数补1
22. 图解~5和~-5的运算过程和结果
~5:00000101 原码=补码
11111010 按位取反(包括符号位) 补码
11111001 补码-1=反码
10000110 除符号位取反得结果=-6
~-5:10000101
11111010
11111011
00000100 正数原码=反码=补码 输出4
23. >>和>>>的区别是什么
前者为有字符右移(正数高位补0,负数补1),后者为无字符右移(高位都补0)
如何最快速计算 8 * 4
8<<2
如何最快速计算 8 / 4
8>>2
24. 说说运算符的优先级, 以及如何改变优先级
使用优先级为 1 的小括号可以改变其他运算符的优先级,即如果需要将具有较低优先级的运算符先运算,则可以使用小括号将该运算符和操作符括起来
如 a+b*c 可以加上() 得(a+b)*c。
25. 什么是单目(一元), 双目(二元), 三目(三元)运算符
单目: 运算符只对一个操作数进行运算
~5 按位非
i++ 自增
!a 逻辑取反
双目: 运算符对两个操作数进行运算
3 + 4
5-2
6*7
8/2
10%3
a > b...........
三目: 运算符对三个操作数进行运算
?:
26. 说说第二行代码中有几个运算符和运算顺序
int a = 10
char b = a++ > 10 ? 'A': 'B'
打印a
打印b
答:=、++、>、?: 一共四个 ,先>再++再三目运算最后赋值运算。