在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
为了帮助大家可以更好地做好面试前的准备,本文为大家整理了Java基础面试题和答案。这些问题都是比较经典的面试题,大家可以先不看答案做一做,查漏补缺。
1、Java 有哪些特点?
答案:并发性,你可以在其中执行许多语句,而不必一次执行它;面向对象,基于类和面向对象的编程语言;独立性,支持一次编写,到处运行的独立编程语言,即编译后的代码可以在支持Java的所有平台上运行。
2、值传递和引用传递的区别是什么?
答案:值传递 是指在调用函数时将实际参数复制一份到函数中,这样的话如果函数对其传递过来的形式参数进行修改,将不会影响到实际参数。引用传递 是指在调用函数时将对象的地址直接传递到函数中,如果在对形式参数进行修改,将影响到实际参数的值。
3、描述一下==和equals的区别。
答案:== 是Java中一种操作符,它有两种比较方式。一是对于基本数据类型来说,==判断的是两边的值是否相等。另一个是对于引用类型来说,==判断的是两边的引用是否相等,也就是判断两个对象是否指向了同一块内存区域。equals是Java中所有对象的父类,即 Object 类定义的一个方法。它只能比较对象,它表示的是引用双方的值是否相等。所以记住,并不是说==比较的就是引用是否相等,equals比较的就是值,这需要区分来说的。
4、String中的equals是如何重写的?
答案:String代表的是Java开发中的字符串,String类比较特殊,它整个类都是被final修饰的,也就是说,String不能被任何类继承,任何 修改String字符串的方法都是创建了一个新的字符串。equals方法是Object类定义的方法,Object是所有类的父类,当然也包括String,String重写了equals方法,下面我们来看看是怎么重写的:
首先会判断要比较的两个字符串它们的引用是否相等。如果引用相等的话,直接返回 true ,不相等的话继续下面的判断。然后再判断被比较的对象是否是 String 的实例,如果不是的话直接返回 false,如果是的话,再比较两个字符串的长度是否相等,如果长度不想等的话也就没有比较的必要了;长度如果相同,会比较字符串中的每个 字符 是否相等,一旦有一个字符不相等,就会直接返回 false。
5、为什么重写equals方法必须重写hashcode方法?
答案:如果在 Java 运行期间对同一个对象调用 hashCode 方法后,无论调用多少次,都应该返回相同的 hashCode,但是在不同的 Java 程序中,执行 hashCode 方法返回的值可能不一致。如果两个对象的 equals 相等,那么 hashCode 必须相同。如果两个对象 equals 不相等,那么 hashCode 也有可能相同,所以需要重写 hashCode 方法,因为你不知道 hashCode 的底层构造(反正我是不知道,有大牛可以传授传授),所以你需要重写 hashCode 方法,来为不同的对象生成不同的 hashCode 值,这样能够提高不同对象的访问速度。hashCode 通常是将地址转换为整数来实现的。
6、static关键字有什么用?
答案:static是Java中非常重要的关键字,static表示的概念是静态的,在Java中,static 主要用来修饰变量,static修饰的变量能够直接通过类名变量名来进行访问,不用通过实例化类再进行使用。static 可以修饰代码块,主要分为两种,一种直接定义在类中,使用 static{},这种被称为静态代码块,一种是在类中定义静态内部类,使用 static class xxx 来进行定义。
7、抽象类和接口的不同点是什么?
答案:抽象级别不同:类、抽象类、接口其实是三种不同的抽象级别,抽象程度依次是 接口 > 抽象类 > 类。在接口中,只允许进行方法的定义,不允许有方法的实现,抽象类中可以进行方法的定义和实现;而类中只允许进行方法的实现,我说的方法的定义是不允许在方法后面出现 {};使用的关键字不同:类使用 class 来表示;抽象类使用 abstract class 来表示;接口使用 interface 来表示;变量:接口中定义的变量只能是公共的静态常量,抽象类中的变量是普通变量。
以上就是Java基础面试题和答案的全部整理,大家都梳理了一遍了吗?如果还有什么问题,可以在反复研究一下该问题的参考答案。希望大家在面试前都能做足准备,拿到满意的offer!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java基础 字节流与字符流的区别是什么?
要把一片二进制数据数据逐一输出到某个设备中,或者从某个设 备中逐一读取一片二进制数据,不管输入输出设备是什么,我们 要用统一的方式来完成这些操作,用一种抽象的方式进行描述, 这个抽象描述方式起名为 IO 流,对应的抽象类为 OutputStream 和 InputStream ,不同的实现类就代表不同的输入和输出设备, 它们都是针对字节进行操作的。
9561
2019-06-03 11:19:03
Kotlin与Java相比的优缺点有哪些?
Kotlin语言被谷歌公开作为Android官方开发语言之后,就有传言,kotlin会取代Java。然而即使到了现在还是有很多人并不了解kotlin是什么。所以今天小编给大家科普一下关于kotlin的一些问题。
14999
2019-08-09 18:03:46
【Java面试题】如何保障同一资源被多个线程并发方位时的完整性?
作为技术岗,进入一家企业不但要经历面试,还会有一些笔试题目。通过整理发现“如何保障同一资源被多个线程并发方位时的完整性?”是被提问次数比较多的问题。今天就和大家一起来学习一下这个面试题的解决方案。
7213
2019-06-12 17:39:36
Java程序员Spring框架面试题汇总附答案
Spring框架对于服务器端的开发大有帮助,无论从简单性、可测试性和松耦合性角度来说,Java应用都可以从Spring中受益。本文整理汇总了Java程序员在面试中关于Spring框架的面试题,涉及大量Spring框架知识点,不会做的话还可以参考答案,有面试需求的朋友赶紧来刷题吧!
6041
2019-11-21 15:51:56
线程池经典面试题整理附答案
线程池是一种多线程处理形式,它是Java开发面试中的必考知识点,尤其是在一些大厂的求职面试中,线程池是对求职者考核的重点。为了帮助大家可以更好地通过面试,本文特地为大家整理了线程池经典面试题并附上了答案,下面一起来尝试着做一做吧!
9094
2020-06-17 14:44:17