失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java运算符试题 编程语⾔⾯试题之新版javase基础语法篇之运算符

java运算符试题 编程语⾔⾯试题之新版javase基础语法篇之运算符

时间:2022-06-22 19:28:27

相关推荐

java运算符试题 编程语⾔⾯试题之新版javase基础语法篇之运算符

简介:⾯试中 短路运算符 和 位运算考点:计算机基础运算知识

难度【** *】

你知道 运算符 &和&&、|和||的区别吗?

```

& 按位与操作

只有对应的两个⼆进制数为1时,结果位才为1

1&1 = 1

1&0 = 0

0&1 = 0

0&0 = 0

| 按位或操作

有⼀个为1的时候,结果位就为1

1|1 = 1

1|0 = 1

0|1 = 1

0|0 = 0

```

```

& 和 && 都可以实现 和 这个功能

区别:& 两边都运算,⽽ && 先算 && 左侧,若左侧为false 那么右侧就不运算,判断语句中

推荐使⽤ &&,效率更⾼

| 和 || 和上⾯类似

区别:||只要满⾜第⼀个条件,后⾯的条件就不再判断,⽽|要对所有的条件进⾏判断

把&&和||称之为短路运算符

```

⽤最有效率的⽅法计算2乘以8

```

原理:将⼀个数左移n位,相当于乘以2的n次⽅,位运算是CPU直接⽀持的,所以效率⾼

答案:2<<3

常⻅的JDK源码⾥⾯HashMap的默认容量16

int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16

直接是⼆进制操作了,表示1左移4位,变成10000,转为10进制也就是16, 直接以⼆进制形式去运⾏,

效率更⾼

```

简介:讲解异或运算在⾯试中的考查点和分析

考点:计算机基础运算知识

难度【***】

写个⽅法,传递两个⾮0的int数值进去,实现变量交换的⽅式,有⼏种⽅式?

⽅式⼀

```

public static void swap(int a, int b){

System.out.printf("a=%d, b=%d",a,b);

a = a + b;

b = a - b ;

a = a - b;

System.out.printf("\na=%d, b=%d",a,b);

}

```

⽅式⼆ 异或运算 (⼀个数与另⼀个数异或两次是其本身, ⼀个数和⾃身异或结果是0 )

```

public static void swap2(int a, int b){

System.out.printf("a=%d, b=%d",a,b);

a = a^b; // a1 = a^b

b = b^a; // b = b^a^b

a = a^b; // a = a1^b = a^b^a

System.out.printf("\na=%d, b=%d",a,b);

}

解释:

a1=a^b

b=b^a1=b^a^b=a

//此时a1=a^b b=a

a=a1^b=a^b^a=b

```

如果觉得《java运算符试题 编程语⾔⾯试题之新版javase基础语法篇之运算符》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。