Java面试官_常见的面试题系列(一)

Java面试宝典
本文针对常见的Java面试题进行了解答,覆盖Java虚拟机原理、JDK与JRE区别、static环境访问限制等知识点,并深入探讨了多态、多继承、接口与抽象类的区别等内容。

        我所要写的这些面试题,是市面上经常见到的题目,很多都没有答案,或者有些答案是根据老版本JDK来写的答案,到了JDK7以后呢,有些答案就不适用了,因此我决定写这么一个Java面试官系列的博客,将答案总结和改正,希望能给那些正在找工作的网友一些帮助。

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

    a)Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被变异成能被Java虚拟机执行的字节码文件。

    b)Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。

2、JDK和JRE的区别是什么?

    a)Java运行时环境(JRE)是将要执行Java程序的Java虚拟机。它同时也包含了执行applet需要的浏览器插件。

    b)Java开发工具包(JDK)是完整的Java软件开发包,包含了JRE,编译器和其他的工具(比如:JavaDoc,Java调试器),可以让开发者开发、编译、执行Java应用程序。

3、是否可以在static环境中访问非static变量?

    不能。static变量在java中是属于类的,它是随着类的加载而加载。即在类被JVM载入时,静态变量的值就确定了。而非静态变量是属于实例的,要在new一个实例之后,值才会存在。由于静态优先于对象存在,所以在static中调用非static变量,可能这个变量都还不存在,当然就会报错。

4、Java支持的数据类型有哪些?什么是自动拆装箱?

    a)Java中有8中基本数据类型和3中引用数据类型。

    基本数据类型:byte,short,int,long,char,float,double,boolean

    引用数据类型:类、数组、接口

    b)自动装箱就是Java自动将基本数据类型转换成对应的对象;自动拆箱就是把对象转化为其对应的基本数据类型。

5、Java中的方法重写和方法重载的含义?方法重载能改变返回值类型吗?

    a)方法重写(overriding):子类出现了和父类方法声明一模一样的方法(方法名称、参数列表和返回值类型全部相同)。

    b)方法重载(overloading):本类中出现了方法名一样,参数列表(参数类型和参数个数)不同的方法。

    c)方法重载可以改变返回值类型。因为方法重载与返回值类型无关。但是方法重写不可以改变返回值类型,因为方法重写与返回值类型有关,返回值类型必须一致。

6、Java支持多继承吗?

    Java是不支持多继承的。每个类都只能继承一个类,但是可以实现多个接口。

7、接口和抽象类的区别是什么?

    先看定义:

    接口:接口是由全局常量和公共的抽象方法组成。

    抽象类:包含一个抽象方法的类必须是抽象类;抽象类和抽象方法都要使用abstract关键字声明;抽象方法只需要声明,不需要实现;抽象类被子类继承时,子类(如果不是抽象类)必须重写抽象类中的全部抽象方法。

    区别:

        a)接口中的成员变量只能是常量;抽象类中的成员变量可以是变量,也可以是常量。

        b)接口中的成员方法都是抽象的;抽象类中的成员方法可以是抽象的也可以是非抽象的。

        c)接口中没有构造方法;抽象类中有构造方法。

       d)接口中的成员函数默认是public的;抽象类的成员函数可以是private,protected或者是public。

        e)接口可以是单继承也可以是多继承,抽象类只能是单继承

8、多态的体现形式。

    a)方法的重载与重写

     b)向上和向下转型

9、什么是值传递和引用传递?

    a)对象被值传递,意味着传递了对象的一个副本。因此,即便改变了对象的副本,也不会影响源对象的值;

    b)对象被引用传递,传递的并不是一个实际的对象,而是该对象的引用(地址值)。因此,外部对象对引用对象所作的任何改变都会反映到源对象上。

10、进程和线程的区别是什么?

    进程是指一段正在执行的应用程序,而线程是进程内部的一个执行序列,它是程序执行的最小单元。一个进程可以有多个线程,各个线程之间可以共享内存空间和一些进程级资源,各个线程有自己独立的栈空间。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值