代码编织梦想

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, 以及不写(默认)时的区别

image-20230203015348159

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

然后进行取整。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45112292/article/details/128860055

最新java面试题,常见面试题及答案汇总_jack方的博客-爱代码爱编程_java面试题

Java最新常见面试题 + 答案汇总 原文地址:https://blog.csdn.net/sufu1065/article/details/88051083 1、面试题模块汇总 面试题包括以下十九个模块: J

java基础面试题50题_meetbetterhc的博客-爱代码爱编程_java基础面试

 1,""空字符串的作用 package com.neuedu.nineteen; public class Test { public static void main(String[] args) { String s=""; for (char i = 'a'; i < 'd'; i++) {

java基础面试题(2022年)_山竹之七语的博客-爱代码爱编程

微信公众号里面有Java生态的17种技术面试题合集。 Java概述 何为编程 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并 终得到结果的过程。 为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、 和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一 步一步去工作,完成某种特定的任务。这种