关于java面试的常见问题汇总(一)

Java校招面试题合集:

(1)什么是Java虚拟机?为什么Java被称作“平台无关的编程语言”?

答案参考:首先,Java虚拟机(JVM)是一个可以执行java字节码的虚拟机进程。java源文件被编译成能被java虚拟机执行的字节码文件(.class文件);其次,java被设计成应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译,是Java虚拟机让这个变成可能,因为它可执行java字节码,并且它知道底层硬件平台的指令长度和其他特性。

(2)JRE和JDK的区别是什么?

答案参考:首先,java运行时环境(JRE),它包括JVM、java核心类库以及支持文件,但是不包括开发工具JDK中的编译器、调试器和其他工具;其次,java开发工具包(JDK)是完整的Java软件开发包,包括了JRE、编译器、调试器和其他工具(JavaDoc、Java调试器),可以让开发者开发、编译和执行Java应用程序。

(3)“static”关键字是什么意思?java中是否可以覆盖(override)一个private或者是static方法?

答案参考:首先,“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问;其次,Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例均不相关,所以概念上不适用。再者,java中的private方法也不可以被覆盖(override),因为private修饰的变量和方法只能在当前类中使用,如果是其他的类继承当前类是不可以private变量和方法的,自然也就不能覆盖

(4)是否可以在static环境中访问非static变量?

答案参考:static变量在Java中是属于类的,它在所有的实例中的值都是一样的。当类被Java 虚拟机载入的时候,会对static变量初始化,如果代码尝试不用实例来访问非static变量,编译器会报错,因为此时这些非static变量还没有被创建出来,也没有跟其他的实例关联上。

(5)Java支持的基本数据类型有哪些?什么是自动拆装箱?

答案参考:首先。Java 支持的数据类型分为两种:(1)基本数据类型:主要包括8种:byte、short、int、long、float、double、char、boolean。(2)引用类型:比如String类等包装类即将数据类型的首字母大写,其实质是对象的引用,在JVM中虚拟栈存的是对象的地址,创建的对象实质在堆中,通过地址来找到堆中的对象的过程,成为引用类型。自动装拆箱其实就是java编译器在基本数据类型和对象包装类之间的转换;其中,自动装箱就是:int转为Integer,即基本数据类型转换为对象包装类;自动拆箱是:Integer转换为int,即对象包装类转换为基本数据类型。

(6)Java中的方法覆盖(override)和方法重载(overload)是什么意思?

答案参考:首先,java中的方法覆盖是指子类在继承父类的时候,重新定义了父类的方法,即方法覆盖必须要有相同的方法名、参数列表和返回类型,覆盖者可能不会限制它所覆盖的方法的访问;与此相反,方法重载发生在一个类里面两个或者多个方法的方法名相同但是参数不同的情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值