java 面试基础回顾

java 面试基础回顾 (自己对java表层知识点基础回顾)


1.JDK 和 JRE 的 区别?

总的来说,JDK 是完整的java软件开发包,里面包含了JRE,编译器和其他的工具(javadoc),以至于开发者可以进行开发,编译,执行java程序。而JRE是将要执行java程序的java虚拟机。


2.为什么java是一个跨平台的语言?

因为java虚拟机的存在,它了解底层硬件平台的指令长度(例如windows和Linux不同的指令长度)和其他特征。(java虚拟机是一个可执行java字节码的虚拟机进程。java源文件被编译成能被java虚拟机执行的字节码文件)


3.static是否可以被override?

不可以,static表面一个成员变量或者成员方法可以再没有所属类的实例变量下被访问,因此它是基于编译时候被静态绑定的(它类似于实例变量,会在编译的时候被初始化),然后override是是基于运行时动态绑定的。


4.overload:是指同一类中有两个或者多个方法的方法名一样,但是参数类型不同。


5.override的两同两小一大原则:

a.方法名相同,参数类型相同

b.子类返回类型小于等于父类返回类型

c.子类抛出异常小于等于父类抛出异常

d.子类访问权限大于等于父类方法访问权限


6.接口和抽象类的区别?

a.接口中的所有方法都是抽象的,抽象类中的方法可以为非抽象的。

b.类可以实现很多接口,但是只能继承一个抽象类。

c.类如果要实现一个接口,就必须要实现接口声明中的所有方法。但是如果此类也声明为抽象的情况下,此类不用实现抽象类中的所有方法。

d .抽象类可以再不提供接口方法实现的情况下实现接口。

e.java接口中声明的变量默认是final的。抽象类中可以包含非final的变量

f .java接口中的成员函数默认是public的,但是抽象类中的成员函数可以为public,private,protected。

  下一章将回顾java多线程的知识点--

猜你喜欢

转载自blog.csdn.net/puzimengya/article/details/80234656