文章目录
- 1.==和equals区别是什么?
- 2.Java中的 <<、>>、>>> 是什么
- 3.if-else-if-else与switch的区别
- 4.while和do-while的区别
- 5.switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在String上
- 6.&和&&、|和||区别
- 7.break和continue区别
- 8.访问权限修饰符public、private、protected, 以及不写(默认)时的区别
- 9.如何让计算机最高效的算出2乘以8
- 10. Math.round(11.5)等于多少? Math.round(- 11.5) 又等于多少
1.==和equals区别是什么?
-
==是关系运算符,equals()是方法,返回的都是布尔值。
-
Object的==和equals()比较的都是地址,作用相同。
-
== 对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而 equals 默认情况下是引用比较,只是很多类重新了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。
equals源码
//equals 本质上就是 ==,String、Integer重写了 Object 的 equals 方法,把引用比较改成了值比较。
public boolean equals(Object obj) {
return (this == obj);
}
String x = “string”;
String y = “string”;
String z = new String(“string”);
System.out.println(x == y); // true因为x和y指向同一个地址
System.out.println(x == z); // false
System.out.println(x.equals(y)); // true
System.out.println(x.equals(z)); // true
2.Java中的 <<、>>、>>> 是什么
- <<表示左移,不分正负,低位补0。<< 1 相当于乘以2。
- >> 表示右移,如果该数为正,则高位补0,若为负数,则高位补1,右移1位表示除以2
- >>> 表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0
3.if-else-if-else与switch的区别
if-else-if-else:
- 适合分支较少
- 判断条件不单一
switch
- 适合较多分支
- 适合判断条件类型单一
- JDK1.7之前仅支持int和enum,JDK1.7之后多了支持String。但是企业开发中大部分用enum
- 没有break语句,每个分支都会执行
4.while和do-while的区别
- while先判断后执行,第一次判断为false,循环体一次都不执行。
- do-while 先执行后判单,循环体最少执行一次。
5.switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在String上
Java5 以前 switch(expr)中,expr 只能是 byte、short、char、int。
Java 5开始,Java中引入了枚举型,expr也可以是 enum类型。
ava 7开始,expr还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。
6.&和&&、|和||区别
- &是逻辑与、例如a&b。a为false后,仍会运算b
- &&是短路与。例如a&b。a为false后,后面就被短路了,不会运算b。
例如:某种判断有两个步骤,先去a表查指定数据,有数据(返回true)就进入下一步,没有数据就需要去b表查询是否有数据,有数据(返回true)就进行下一步。(a||b)
7.break和continue区别
- 两者都是用来控制循环的语句。
- break:用于结束一个循环,跳出循环执行后面的语句
- continue:跳过本轮循环,进入下一个循环
8.访问权限修饰符public、private、protected, 以及不写(默认)时的区别
9.如何让计算机最高效的算出2乘以8
2 <<3 CPU 直接支持位运算,效率最高
位运算符 <<,是将一个数左移 n 位,相当于乘以了 2 的 n 次方
一个数乘以 8 只要将其左移 3 位即可
10. Math.round(11.5)等于多少? Math.round(- 11.5) 又等于多少
Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5
然后进行取整。