java第三天

好吧,这是补昨天晚上的,每个星期五晚上就不太想做事。


1.逻辑运算符中对布尔值的操作和位运算符的区别?

对于布尔值,可对它执行按位“与”、按位“或”和按位“异或”,但不能执行按位“非”(与逻辑非不同),

按位操作具有与逻辑操作符相同的效果,只是他们不会中途“短路‘。短路即是,运算符左边算完

根据结果可以确定运算结果,不需要左右两边都计算。

2.按位运算符是怎样操作的?

按位左移>>:  相当于乘 2

有符号右移<<:相当于除 2, 符号与被除数相同。

无符号右移<<<:相当于除 2, 有符号数不能参与运算。


3.java中逻辑运算符左右两边只能接收boolean类型的语句,否则呢?

否则会出现找到什么类型,试图转换为boolean类型,会出现编译错误。任何类型不能直接与boolean转 换。

4.java中异或是怎样操作的?

逻辑异或:符号左右两边boolean值相同,则结果为false

符号两边boolean值不相同,则结果为true。

位异或:左右两边对应位相同,则为0

对应位不同,则为1


5.条件表达式所能接收的类型?

条件表达式只能接收boolean类型,当出现把其他类型当做boolean使用时,编译会出现错误,即条件

表达式只能用比较运算符(< ,>, == )连接。


6.最有效的方式计算7乘8?

就是通过左移, 7<<3


7.怎么对两个整数变量的值进行互换?

A)通过第三方变量(开发时常用)

int tm;

tm = a, a = b, b = tm;


B)不通过第三方变量

a = a + b, b = a - b, a = a - b;

但如果a, b值过大会出现强制类型转换,数据会发生变化。

a = a ^ b, b = a ^ b, a = a ^ b;


8.如何对一个整数的最后一个字节,高四位和低四位进行换位?

描述:分别获取这个整数的高四位和低四位,然后合并这高四位和低四位,进行转换。

将这个整数右移八位,然后左移八位,使最后一个字节清零,在将转换后的最后一个字节加到这个整数去。

例:

int num = 70;

int num1 = num & 15;

int num2 = num & (15 << 4);

int num2 = (num1 << 4) | (num2 >> 4);

int num3 = (num>>8) << 8 | num2;

9.switch需要注意的地方?

switch语句中,遇到break和右花括号才算执行结束,退出switch,否则将继续执行下去。并不像电路中的 开关,switch只要没有break,如果选择的是第一case,那么switch语句中的所有case都会执行一遍。最后一个 case中的break可以不用写。


10.累加思想和计数器思想是什么?

累加:有一个基数,在基数基础上不断的变化得到另一个数,而下一个数在前一个数基础上继续变化,累加就是把这些数全部加起来。如何办到呢?

描述:

首先要定义一个基数,再给予范围,或者在什么样的条件下结束任务,累加,就需要不断的进行求和,多次重复相同的运算就需要循环结构了。还需要一个变量来记录前后两个数之间的增量。最后需要一个数来记录和,即前面几个数相加的和。这样就可以得出结果。

计数:就是把所要找的数据全部遍历一遍,找到一个count加1,最后把符合条件的进行全部相加。

描述:

首先要把所有数据遍历一遍,那就需要循环结构,多次重复的判断是否符合要求,然后需要一个计数器count来记录,如果符合条件,那么count加1,count也需要不断的增加,是随着每一次的遍历而变化,所以count也需要在循环的内部。


11.无限循环最简单的形式?

while(true);

for(; ;);//for中条件表达式的结果默认为true


12.for语句内部变量的生存周期或作用域?

int sum = 0;

for(int x = 1; x<=10; x++){

sum+= x;

}

sum 并不是for语句内部定义的变量,所以的当for循环结束时在内存中还未释放掉,而x定义在for语句内部,随着for训话结束,在内存中也就消失,所以后续想要使用x,就需要重新定义。所以根据变量的使用可以选择for循环还是while循环。不过x也可以定义在for循环的外部,此时就和while没什么区别,两者可以互换使用。 


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值