您的位置:首页 > 编程语言 > Java开发

java第三天

2014-03-08 10:24 260 查看
好吧,这是补昨天晚上的,每个星期五晚上就不太想做事。

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没什么区别,两者可以互换使用。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息