100道最新Java面试题,常见面试题及答案汇总

除了掌握扎实的专业技能之外,你还需要一份《Java程序员面试宝典》才能在万千面试者中杀出重围,成功拿下offer。

小编特意整理了100道Java面试题,送给大家,希望大家都能顺利通过面试,拿下高薪。赶紧码住吧~~文末有福利

Q1:Java内部类和子类之间有什么区别/strong>

答案:内部类是指在一个外部类的内部再定义一个类,内部类对外部类有访问权限,可以访问类中定义的所有变量和方法。

子类是从父类(superclass)中继承的类,子类可以访问父类所有public和protected的字段和方法。

Q2:Java语言中有哪些常见的访问说明符,有什么意义/strong>

答案:Java中的访问说明符是放在类名之前,用于定义访问范围的关键字,常见的访问说明符有以下几类:

Public:公共,能被项目中的任何一个Class、Method、Field访问。

Protected:受保护,能被同类或子类访问,不能从外部访问。

Default:默认,只能被同一个包的Class、Method、Field访问。

Private:私有,只能被本类访问。

Q3:静态方法和静态变量的目的是什么/strong>

答案:静态变量被类的所有实例共用,静态类只能访问类的静态变量,或调用类的静态方法。

Q4:什么是数据封装及其意义/strong>

答案:封装是面向对象编程中用于在单个单元中组合属性和方法。

封装可以帮助程序员遵循模块化方法进行软件开发,每个对象都有自己的一组方法和变量,并且可以独立于其他对象来执行其功能。另外,封装也有数据隐藏的目的。

Q5:什么是 singleton class(单例类)给出其用法的实际例子。

答案:单例类只能有一个实例,必须自己创建自己的唯一实例,必须给所有其他对象提供这一实例。

单例使用场景的最佳实践是由于某些驱动程序限制或由于许可问题的限制只能连接数据库。

Q6:什么是循环ava中有哪些循环/strong>

答案:循环用于编程中重复执行语句,Java中的循环有三类:

1、for循环

for循环用于执行指定重复次数的语句,当程序员明确知道循环次数可以使用for循环。

2、While循环

当语句满足条件时开始进行重复执行,直到语句不再满足条件退出循环。While循环中在执行语句之前先检查是否满足条件。

3、do while循环

Do while 和while循环基本类似,唯一不同的是do while是先执行语句再检查条件,也就是说do while循环至少会执行一次语句。

Q7:什么是无限循环何声明无限循环/strong>

答案:无限循环是指无条件执行,无限运行。无限循环可以由定义中断语句块来结束。

Q8:continue和break语句有什么区别/strong>

答案:break和continue都是循环中的重要关键词,break语句是结束整个循环过程,continue语句只结束本次循环,而不是终止整个循环的执行。

Break:

Q9:Java中的double和float变量有什么区别/strong>

答案:float是单精度浮点数,内存中占用4字节,double是双精度浮点数,内存中占用8字节。

Q10:Java中的Final关键字是什么意思举例说明

答案:final是Java中的关键字,有“无法改变”、“终态”的含义,final类不能被继承,没有子类,final类中的方法默认是final的,且不能被子类的方法覆盖,但可以被继承。

final成员变量表示常量,只能被赋值一次,赋值后值不再改变。final不能用于修饰构造方法。

下面的例子中,const_val被声明且赋值为常量100:

Private Final int const_val=100

而当一个方法被声明为final之后,它不能被子类覆盖,而且会比其他方法都快。

Q11:举例说明什么是三元运算符/strong>

答案:三元运算符,也称为条件运算符,根据布尔值来决定将哪个值分配给变量,它被表示为…:…

在下面的示例中,如果rank为1,status=Done,否则status=Pending

Q14:Java中所有派生类的基类是什么/strong>

答案:java.lang.object

Q15:Java中的main()方法可以返回任何数据吗/strong>

答案:java中的main()方法不能返回任何数据,它的返回类型始终是void。

Q16:什么是Java Packages意义是什么/strong>

答案:为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。

包的作用:

1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。

2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。

3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

Q17:我们可以声明一个抽象类,但是没有任何抽象方法吗/strong>

答案:是的,我们可以声明一个抽象类,且不包含任何抽象方法,但是一旦一个类中含有一个抽象方法,那么该类必须声明为抽象。

Q18:Java中的抽象类和接口有什么区别/strong>

答案:抽象类和接口之间的主要区别在于,抽象类可以拥有任意范围的成员数据,同时也可以拥有自己的非抽象方法,但是接口方式中,它仅能够有静态、不能修改的成员数据,同时它所有的方法都必须是抽象的。

抽象类是对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。

一个类可以实现多个接口,但它只能扩展一个抽象类。

Q19:接口对抽象类的性能影响是什么/strong>

答案:与抽象类相比,接口性能较慢。一个类只能扩展一个抽象类,却能实现许多接口,随着接口在类中的实现,也会给开发人员带来额外负担。

Q20:Java中导入包时,其子包是否会被导入/strong>

答案:在Java中导入包时,其子包不会被导入,如果有需要,开发者必须单独导入。开发者需要单独导入它们。

Q21:类中的main方法可以声明为private/strong>

答案:Java中main方法必须是public,如果是private,那么它虽然在编译时不会出错,但是在运行时会出错。

Q22:我们能不能通过引用向函数传递参数/strong>

答案:不能,我们只能通过引用将值传递给函数。

Q23:对象在java中如何序列化/strong>

答案:序列化是指把Java对象转换为字节序列的过程,只能将支持 java.io.Serializable 接口的对象写入流中,每个 serializable 对象的类都被编码。

Q24:Java中的try…catch是用于异常处理吗/strong>

答案:try后面往往会跟着catch或finally,try抛出的任何异常都会被捕获在catch中,在代码终止前的要执行的任务放在finally中。

Q25:有没有什么办法在出现异常时跳过finally/strong>

答案:当在try中出现异常时,如果存在catch,会先被catch捕获,否则会执行到finally。异常发生时肯定会执行finally,除非在try的末尾有强制中止代码:System.exit(0);

Q26:什么时候类的构造函数会被调用/strong>

答案:每次用new来创建对象时,都会调用构造函数。

例如,下例中new创建了两个对象,构造函数也被调用了两次。

答案: 输出为:

Displaying from subclass

Displaying from superclass

Q30:String是Java的数据类型吗/strong>

答案:String不是Java的原始数据类型,Java中创建一个string时,实际上是创建了Java.Lang.String类的对象,这个对象可以使用String类的所有内置方法。

Q31:下面的示例中,共创建了多少个String对象/strong>

当分配一个新值时,将创建一个新的String对象,并将引用移动到新对象。:

Q42:如果类中没有定义构造函数,那么类的对象将会怎么创建/strong>

答案:即使类没有定义显式构造函数,对象在创建时也会执行隐式构造函数,且该构造函数没有参数。

Q43:在多线程中,如何确保资源不会同时被多个线程使用/strong>

答案:在多线程中,可以通过使用同步的概念来控制对多个线程之间共享的资源的访问。使用synchronized关键字,我们可以确保只有一个线程可以一段时间内使用共享资源。

Q44:我们是否可以为对象多次调用类的构造函数/strong>

答案:使用new创建对象时,会自动调用构造函数,对象创建之后,则无法再调用该构造函数。

Q45:两个类classA和classB都在同一个包中,那么classA的私有成员可以被classB的对象访问吗/strong>

答案:类的私有成员在该类的范围之外是不可访问的,即使在同一个包中也不能访问任何其他类。

Q46:同一类中可以定义重名的方法吗/strong>

答案:可以定义重名的方法,但是其参数的数量和类型是不同的,调用哪个方法取决于传递的参数。

例如在下面的类中,我们有两个具有相同名称但不同参数的打印方法。根据参数,将调用适当的参数:

Q52:访问说明符的访问范围是什么/p>

答案:

Q55:我们如何使用原始数据类型作为对象/strong>

答案:Java提倡“一切皆为对象”,引用数据类型可以实例化为对象,基本数据类型却无法变为对象,针对这一不足,JAVA中设置了包装类,例如,Integer是原始数据类型int的包装类。

Q56:编译时会遇到哪些类型的异常/strong>

答案:程序编译时可以捕获被检查的异常,为了成功编译代码,异常会通过try…catch来处理。

Q57:请描述一下线程的不同状态。

答案:Java中的线程往往是处于下面的某一种状态

NEW:通过New关键字创建了Thread类(或其子类)的对象
RUNNABLE:这种情况指的是Thread类的对象调用了start()方法,线程处于就绪状态。
RUNNING:线程获得了CPU,处于运行状态。
DEAD:处于RUNNING状态的线程,在执行完run方法之后,就变成了DEAD状态了。
BLOCKED:这种状态指的是处于RUNNING状态的线程,出于某种原因,比如调用了sleep方法、等待用户输入等而让出当前的CPU给其他的线程。
Q58:定义了类的显式构造函数之后,还可以使用默认构造函数吗/strong>

答案:如果没有定义显式构造函数,那么Java将提供一个默认的无参数构造函数,但是如果定义了显式构造函数之后,就不能再调用默认构造函数。

Q59:可以有两个方法,它们方法名和参数都相同,但返回值类型不同/strong>

答案:相同的方法指的是方法名、参数以及返回类型都相同,因此返回类型不同的两个方法是可以并存的。

Q60:以下代码的输出是什么/strong>

答案:不正确,抽象类不能被声明为Final。

Q71:每个机器都需要JDK来运行Java程序/strong>

答案:JDK是Java的开发工具包,不是必需的,JRE才是必需的。

Q72:Equals()和==有什么区别/strong>

答案:Java中,==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。

equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同

下例中,equals()返回true,而==操作符则返回false:

Q84:如何实现一个类不允许其他类(甚至派生类)创建其对象/strong>

答案:将该类的构造函数声明为private,那么它就不会被其他类访问。

Q85:对象如何存储在Java中/strong>

答案:每个对象在创建时都会从堆栈中获取内存空间,被垃圾回收器销毁之后,其空间将被释放重新分配给其它对象。

Q86:如何确定堆栈上对象的实际大小/strong>

答案:Java中,没办法确定对象的确切大小。

Q87:以下哪个类将分配更多的内存/strong>

A类:三种方法,四个变量,无对象

B类:五个方法,三个变量,无对象

答案:在创建对象之前,不会分配内存,所以这两个类都没有分配内存。

Q88:如果程序中没有处理异常,会发生什么/strong>

答案:如果没有异常处理,那么程序将中止,且不会执行异常抛出之后的语句。

Q89:如果定义了一个类定义了多个构造函数,那么是否可以在一个构造函数中调用另一个构造函数/strong>

答案:如果一个类有多个构造函数,那么可以使用this()在一个构造函数中调用另一个构造函数。

Q90:什么是匿名类/strong>

答案:匿名类是不能有名字的类,它们不能被引用,只能在创建时用New语句来声明它们。

下例中,我们定义了一个匿名类:

Q99:所有异常类的基类是什么/strong>

答案:Java.Lang.throwable。

Q100:构造函数在继承中的调用顺序是什么/strong>

答案:在继承的情况下,创建派生类的新对象时,首先调用父类的构造函数,然后调用派生类的构造函数。

以上就是整理的100道Java程序员面试问题和答案,希望同学们在学好技术的基础上,也能理解和掌握这些知识,祝大家早日拿到满意的offer!

总结了一些2020年的面试题,这份面试题的包含的模块分为19个模块,分别是: Java 基础、容器、多线程、反射、对象拷贝、Java Web异常、 络、设计模式、Spring/Spring MVC、Spring Boot/SpringCloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM 。
【点击这里,暗 CSDN !!】获取以上的学习资料~

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91536 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月25日
下一篇 2021年1月25日

相关推荐