当前位置 博文首页 > 北执丿的博客:Java常见面试题1(绝对干货)

    北执丿的博客:Java常见面试题1(绝对干货)

    作者:[db:作者] 时间:2021-09-01 13:03

    1.JDK 和 JRE 有什么区别?

    ①JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。

    ②JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。

    ????????具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具。简单来说:如果你需要运行 java 程序,只需安装 JRE 就可以了,如果你需要编写 java 程序,需要安装 JDK。

    2.== 和 equals 的区别是什么?

    ????????== 对于基本类型来说是值比较,对于引用类型来说是比较的是地址值;而 equals 默认情况下是引用比较,只是很多类重写了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。

    3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?

    不对,两个对象的 hashCode()相同,equals()不一定 true。

    hashCode()相等即两个键值对的哈希值相等,然而哈希值相等,并不一定能得出键值对相等。

    4.final 在 java 中有什么作用?

    ①final 修饰的类叫最终类,该类不能被继承。

    ②final 修饰的方法不能被重写。

    ③final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。

    5.java 中的 Math.round(-1.5) 等于多少?

    解读:round()是Math类中的一个四舍五入的方法,就是round()方法在实现四舍五入的时候实际上是不论正负的,它会先将这个数加上0.5然后在像下取整。

    -1.5+0.5=-1.0,然后-1.0向下取整结果为-1,最后的结果就是-1

    6.String 属于基础的数据类型吗?

    String不是基本的数据类型,是final修饰的java类

    java中的基本类型一共有8个:byte、boolean、char、short、int、float、long、double

    7.java 中操作字符串都有哪些类?它们之间有什么区别?

    操作字符串的类有:String、StringBuffer、StringBuilder

    简单来说就是↓↓

    String:不可变字符串;

    StringBuffer:可变字符串、效率低、线程安全;

    StringBuilder:可变字符序列、效率高、线程不安全;

    8.String str="i"与 String str=new String(“i”)一样吗?

    不一样,因为内存的分配方式不一样。String str="i"的方式,java 虚拟机会将其分配到常量池中;而 String str=new String(“i”) 则会被分到堆内存中。

    9.抽象类必须要有抽象方法吗?

    不需要,抽象类不一定非要有抽象方法。可以半抽/全普/全抽

    10.接口和抽象类有哪些区别?

    ①抽象类是一个被abstract修饰的类
    ? 接口可以理解成一个特殊的抽象类,但接口不是类,定义的关键字是interface
    ②抽象类中的方法不做限制(全普/全抽/半普半抽)
    ? ?接口中的方法全部都是抽象方法,而且可以简写,默认拼接public abstract?
    ③抽象类中有构造方法,为了子类创建对象时调用super()
    ? ?接口中没有构造方法,接口实现类如果没有明确指定父类,super()调用的是Object();
    ④接口与抽象类均不可创建对象
    ⑤抽象类是重构的结果,接口是设计的结果

    11.抽象类能使用 final 修饰吗?

    不能,定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承,这样彼此就会产生矛盾,所以 final 不能修饰抽象类。

    12.java 中 IO 流分为几种?

    ①字节输出流(OutputStream)

    ②字节输入流(InputStream)

    ③字符输出流(Writer)

    ④字符输入流(Reader)


    ?

    cs