在线客服
扫描二维码
下载博学谷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学习中关于并发编程的问题总结
Java编程开发学习需要掌握的知识点很多,并发编程作为Java学习中的难点,也是实际应用中最常用的。编写优质的碧昂发代码并不是一件容易的事情。但是如果我们对并发编程有了更多的认识和实践,就会有更多的方案和更好的选择来实现并发编程。下面就是针对Java学习中关于并发编程的问题总结。
7204
2019-08-08 14:08:47
Java基础 用 Java怎么实现一种排序?
用 JAVA怎么实现一种排序,冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
6808
2019-06-05 18:02:46
abstract class 和 interface 有什么区别?
“abstract class 和 interface 有什么区别?”这个问题在Java基础的笔试题中是比较常见的。下面就是关于这个问题博学谷老师整理的答案。
7428
2019-08-14 10:19:51
美团Java面试题整理汇总
本文整理汇总了上百道的美团Java面试题,其中重要包括了Java集合、JVM与调优、并发编程、spring、设计模式、springboot、Netty和Redis相关知识点问题。大家要是有面试需求可以好好刷一遍题,相信可以打败面试中的绝大多数求职者。
6008
2019-11-18 17:24:20
Java基础练习之评委打分
在学习Java的过程中,最重要的就是多敲代码多练习,只有这样才巩固所学的基础理论知识。本文为大家提供了Java中一个十分经典的基础练习题——评委打分,并且附上了思路和答案,下面大家一起来做做吧~
5453
2020-05-28 15:41:04