Java面试题Day1

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

答:java虚拟机是一个可以执行java字节码的虚拟机进程。java源文件被编译成能被java虚
拟机执行的字节码文件。

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

2.jdk和jre的区别是什么?

答:java运行时的环境是jre.它包括java虚拟机,java核心类库和支持文件。它不包含开发
工具jdk–编译器,调试器和其他工具。

java开发工具包jdk是完整的java软件开发包,包含了jre,编译器和其他工具(比
如:javaDoc,java调试器),可以让开发者开发,编译,执行java应用程序。

3.static关键字是什么意思?

java中是否可以覆盖override一个private或者是static的方法?

答:static静态修饰符,指在编译后所分配的内存会一直存在,直到程序退出内存才会释放
这个空间。声明为static,可以让用户不需要实例化对象就可以引用成员。

static关键字表明一个成员变量 或者是成员方法可以在没有所属的类的实例的情况下被访问。

java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编
译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。

java中也不可以覆盖private的方法,因为private修饰的变量和方法只能在当前类中使用,
如果是其他的类继承是不能访问到private变量或方法的,当然也不能覆盖。

4.成员变量、实例变量、类变量、成员方法、实例方法、类方法的区别?

答: 类变量、类方法就是类中的变量、方法,必须是静态的,**要加static;**故其又称静态变量、
静态方法。

成员变量、成员方法是对象或实例中的变量、方法,不加static;

类变量:静态域,静态字段,或叫静态变量,它属于该类所有实例共有的属性,在内存中只
有一个地方存储这个变量。而且所有的实例都可以修改这个类变量的值(前提是这个类变量
没有被final修饰,否则是常量了),而且访问类变量的时候不用实例,直接用类就可以了。

类方法:和类变量一样,可以不用实例,直接用类就可以调用类方法。

实例变量:实例域,实例字段,或叫成员变量。

实例方法:或叫成员方法,必须先有实例,然后才能通过实例调用该实例方法。

5.java支持的数据类型有哪些?什么是自动拆装箱?

答:byte,short,int,long,float,double,boolean,char

***自动装箱***是java编译器在基本数据类型和对应的对象包装类型之间做的一个转换。比如:把int转换成integer,double转换成Double,等等。反之就是自动拆箱。

6.java中的方法覆盖Overriding和方法重载Overloading是什么意思?

答:java中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。与此相对,

方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。覆盖者可能不会限制它所覆盖的方法的访问。

你可能感兴趣的:(#,Java语言,java,面试题)