Java Datem02

1. float a = 3.5; int b = a; 打印b的结果是什么?

题目错误,float默认是double类型,同时float 和int是不兼容的类型,

如果希望Java把浮点型当成float,应该在后面加f或F,

即float a = 3.5F,int 类型到float需要强制转换,即int b = (int)a;会精度丢失,打印b是3


2. int a = 5; float b = a; 打印b的结果是什么

b打印的结果为5.0

3. char a = 'A'; int b = a; 打印b的结果是什么

打印结果为65

 本题中a为字符型字符,b为整型字符,将二者转换,就是将字符转换成字符编码

4. int a = 68; char b = a; 打印b的结果是什么?

两者不兼容,无法打印,下图为修改以后打印出来的b

5、 画出基本数据类型的兼容关系图

 

 

6. 变量的命名规则
          驼峰命名法:

小驼峰:除第一个单词之外,其他单词首字母大写。譬如int myStudentCount;变量myStudentCount第一个单词是全部小写,后面的单词首字母大写。常用于函数名。

大驼峰法相比小驼峰法,大驼峰法(即帕斯卡命名法)把第一个单词的首字母也大写了。常用于类名,属性,命名空间等。譬如 DataBaseUser;

 连字符命名法:利用-将两个个或多个单词连接起来 如 new-life  news-left 

7. 分别用表格整理算术运算符, 赋值运算符,比较运算符,逻辑运算符,位运算符,单目运算符,三目运算符

种类符号说明
算术运算符+、- 、  *、/    、%  

当表达式中的数值都是整数int, 则运算结果也是整数int

当表达式中有一个数值是浮点数double, 则整个表达式所有数值全部提升为浮点数double, 运算结果为浮点数double

赋值运算符

= 、 += 、 -=、  *= 、 /=  %=

逻辑运算符

&  &&  |  ||  !

逻辑运算符是对两个boolean条件做逻辑(与、或、非)运算, 运算结果也是boolean

与(并且关系and, 两个条件都成立, 结果才成立, 有一个条件不成立, 结果就是不成立)

左右两边都为true, 运算结果为true, 有一边是false, 运算结果就是false

或(或者关系or, 两个条件都不成立, 结果才不成立, 有一个条件成立, 结果就是成立)

左右两边都为false, 运算结果为false, 有一边是true, 运算结果就是true

非(成立变为不成立, 不成立变为成立)

取反, true取反后得到false, false取反后得到true

与和或有短路和不短路的区别

短路与: 左边不成立, 右边就不会运算了, 因为与要求两边都成立, 如果左边已经为不成立, 右边就没有运算的意义了, 因为无论右边是否成立, 也不会影响最终结果

不短路与: 左边不成立, 右边就失去了运算的意义, 但是也会运算一下

短路或: 左边成立, 右边就不会运算了, 因为或要求两边都不成立, 如果左边已经成立了, 右边就失去了运算的意义了, 因为无论右边是否成立. 也不会影响最终结果

不短路或: 左边成立, 右边就失去了运算的意义, 但是也会运算一下

位运算符& 、| 、~、 ^ 、<< 、>> 、>>>
单目运算符++、--

如果表达式中只有 ++或--运算, 则在变量前面或后面没有区别

如果表达式中除了 ++或--, 还有其他运算

则在变量前面, 先运行++或--, 再运行其他运算

在变量后面, 先运行其他运算, 再运行 ++ 或 --

比较运算符

>  >=  <  <=  ==  !=

所有的比较运算符, 运算结果都是boolean类型, 要么是true, 要么是false

注意: 一个等于号  =  是赋值运算符 (可以是直接量赋给变量, 也可以是变量赋给变量)

  两个等于号  == 才是是否相等的比较运算符

三目运算符?:
操作数1必须是boolean类型,或者是一个表达式,运算结果是boolean类型
操作数2和3必须是一样的类型
操作数1为true,则操作数2是整个表达式的运算结果
操作数1为false,则操作数3是整个表达式的运算结果
注意:如果想要存储三目运算符的结果,应该用什么类型的变量

8. =和==的区别

一个等于号  =  是赋值运算符 (可以是直接量赋给变量, 也可以是变量赋给变量)

两个等于号  == 是是否相等的比较运算符

9. i++和++i的区别

如果表达式中只有 ++运算, 则在变量前面或后面没有区别

如果表达式中除了 ++还有其他运算则在变量前面, 先运行++再运行其他

运算在变量后面, 先运行其他运算, 再运行 ++ 

10. +运算符操作数值, 字符, 字符串的区别是什么

操作数值:直接将数值相加,然后输出

操作字符:将字符转换为int类型的字符编码,然后相加再输出

操作字符串:直接将字符串连接在一起

11 &&和&的区别

&&短路与:左边不成立,右边就不会运算了,因为与要求两边都成立,如果左边为不成立,右边就没有运算的意义了,因为无论右边是否成立,也不会影响最终结果

&不短路与:不短路与,左边不成立,右边就失去了运算的意义,但是也会运算一下

12 |和||的区别

短路或: 左边成立, 右边就不会运算了, 因为或要求两边都不成立, 如果左边已经成立了, 右边就失去了运算的意义了, 因为无论右边是否成立. 也不会影响最终结果

不短路或: 左边成立, 右边就失去了运算的意义, 但是也会运算一下

13&可以作为逻辑运算符使用,也可以作为位运算符使用,区别是什么

逻辑运算符:两个条件都成立,结果才成立,有一个条件不成立,结果就是不成立

位运算符:按位与,两个数字同一位上的数字都为1返回为1 ,其他为0。(注意要先将数字转换为二进制)

14|可以作为逻辑运算符使用,也可以作为位运算符使用,区别是什么

逻辑运算符:两个条件都不成立,结果才不成立,有一个条件成立,结果就是成立

位运算符:按位或,两个数字同一位上的数字只要有一位为1,结果返回就为1

15什么是原码、反码、补码?

原码:将一个整数转换为二进制

反码:正数的反码就是其原码,负数的反码是将原码中除了符号位以外,每一位取反

补码:正数的补码就是其原码,负数的补码是其反码+1

16. 图解3&5的运算过程和结果

按位与,两个数字同一位上的数字都为1返回为一 ,其他0为,注意要先转换为二进制,

数字二进制
30  0  0  0  0  0  1  1
50  0  0  0  0  1  0  1
3&50  0  0  0  0  0  0  1
最终结果为1

17. 图解3|5的运算过程和结果

按位或,只要有一位为1,结果返回就为1

数字二进制
30  0  0  0  0  0  1  1
50  0  0  0  0  1  0  1
3|50  0  0  0  0  1  1  1
最终结果为7

18. 图解~5的运算过程和结果

数字5
原码0  0  0  0  0  1  0  1
反码0  0  0  0  0  1  0  1
补码0  0  0  0  0  1  0  1
按位取反~5(对5的补码取反)1  1  1  1  1  0  1  0
~5补码(对5的反码取反,包括符号位)1  1  1  1  1  0  1  0
~5反码(~5的补码-1)1  1  1  1  1  0  0  1
~-5原码(~5的反码取反)1  0  0  0  0  1  1  0
最终结果为-6

19. 图解3^5的运算过程和结果

按位异或,两位相同时返回0,不同时返回1

数字二进制
30  0  0  0  0  0  1  1
50  0  0  0  0  1  0  1
3^50  0  0  0  0  1  1  0
最终结果为6

20、图解8<<2的运算过程和结果

8<<2相当于8*4   高位舍弃,低位用0填充

00001000

<---------------

00100000

21. 图解8>>2的运算过程和结果

8>>2相当于8/4有符号右移,正数最高位用0填充,负数最高位补1

00001000

------------->

00000010


22. 图解~5和~-5的运算过程和结果

数字5
原码0  0  0  0  0  1  0  1
反码0  0  0  0  0  1  0  1
补码0  0  0  0  0  1  0  1
按位取反~5(对5的补码取反)1  1  1  1  1  0  1  0
~5补码(对5的反码取反,包括符号位)1  1  1  1  1  0  1  0
~5反码(~5的补码-1)1  1  1  1  1  0  0  1
~-5原码(~5的反码取反)1  0  0  0  0  1  1  0
最终结果为-6

数字-5
原码1  0  0  0  0  0  1  0  1
反码1  1  1  1  1  1  0  1  0
补码1  1  1  1  1  0  1  1
按位取反~-5(对5的补码取反)0  0  0  0  0  1  0  0
~-5的补码0  0  0  0  0  1  0  0
~5的反码0  0  0  0  0  1  0  0
~-5的原码0  0  0  0  0  1  0  0
最终结果为4

22. >>和>>>的区别是什么
    如何最快速计算 8 * 4
    如何最快速计算 8 / 4

区别:>>是有符号右移,正数最高位用0填充,负数最高位补1

>>>无符号右移,无论正负,高位都是补0

8*4:1<<5(相当于0001向左移4个单位变成00100000)

8/4:1<<1(相当于0001向左移1个单位变成00000010)

23. 说说运算符的优先级, 以及如何改变优先级

加()改变优先级

24. 什么是单目(一元), 双目(二元), 三目(三元)运算符
      单目: 运算符只对一个操作数进行运算
           ~5 按位非
           i++ 自增
           !a  逻辑取反
      双目: 运算符对两个操作数进行运算
              3 + 4
              5-2
              6*7
              8/2
              10%3
              a > b...........
      三目: 运算符对三个操作数进行运算
            ?: 

操作数1?操作数二:操作数3

25. 说说第二行代码中有几个运算符和运算顺序
int a = 10
char b = a++ > 10 ? 'A': 'B'

四个运算符,顺序1>,2++,3?:4=
打印a 11
打印b  B

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值