其实很多面试Java程序员的求职者都在技术面被刷下来了,原因很简单,面试官觉得你技术不过关,思路不够清晰,知识点没有融入自己的想法等等。
所以,小编精选出历年高频Java面试题,帮你快速拿到offer!
1、JDK、JRE和JVM的关系?
-
JDK(Java Development Kit):Java开发工具包,包含编写Java程序所必须的编译、运行等开发工具以及JRE。
-
JRE(Java Runtime Environment):Java运行环境,提供运行Java应用程序的软件环境,包含有Java虚拟机(JVM)和大量的系统库类。系统库类是为Java提前封装好的功能类,可以直接拿来使用,提高开发效率。
-
JVM(Java Virtual Machines):Java虚拟机,提供字节码文件(.class)的运行环境。
-
简单说,JDK包含JRE包含JVM
小编是一个有着5年工作经验的java程序员,对于java,自己有做资料的整合,一个完整学习java的路线,学习资料和工具,相信这里有很多学习java的小伙伴,我创立了一个2000人学习扣群,479121291。每晚都有java的直播课程。无论是初级还是进阶的小伙伴小编我都欢迎!
2、Java的数据类型有哪些?
基本数据类型:
-
整数型:byte、short、int、long(默认int型)
-
字符型:char
-
浮点型:float、double(默认double型)
-
布尔型:boolean
引用类型:
-
字符串类型:String
3、什么是值传递和引用传递?
-
值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量。
-
引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本,并不是原对象本身。
-
一般认为,Java内的传递都是值传递,Java中实例对象的传递是引用传递。
4、是否可以在static环境中访问非static变量?
-
static变量在Java中是属于类的,它在所有的实力中的值是一样的。当类被Java虚拟机载入的时候,会对static变量进行初始化。如果你的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些实例还没有被创建出来,还没有跟任何实例关联上。
5、Java中方法覆盖(Overriding)和方法重载(Overloading)是什么意思?
-
方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。
-
方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名、参数列表和返回类型。覆盖者可能不会限制它所覆盖的方法的访问。
6、Java支持多继承吗?
-
Java不支持多继承,只支持单继承(即一个类只有一个父类)
-
但是Java的接口支持多继承(即一个子接口可以有多个父接口)
-
接口的作用是用来扩展对象的功能,一个子接口继承多个父接口,说明子接口扩展了多个功能,当类实现接口时,类就扩展了相应的功能