2021年115个Java面试题和答案终极列表.doc

目录 面向对象编程(OOP) 常见Java问题 Java线程 Java集合类 垃圾搜集器 异常处理 Java小应用程序(Applet) Swing JDBC 远程方法调用(RMI) Servlet JSP 面向对象编程(OOP) Java是一个支持并发、基于类和面向对象计算机编程语言。下面列出了面向对象 软件开发优点: 代码开发模块化,更易维护和修改。 代码复用。 增强代码可靠性和灵活性。 增加代码可了解性。 面向对象编程有很多关键特征,比如:封装,继承,多态和抽象。下面章节我们会逐一分析这些特征。 封装 封装给对象提供了隐藏内部特征和行为能力。对象提供部分能被其它对象访问方法来改变它内部数据。在Java当中,有3种修饰符:public,private和protected。每一个修饰符给其它在同一个包或不一样包下面对象给予了不一样访问权限。 下面列出了使用封装部分好处: 经过隐藏对象属性来保护对象内部状态。 提升了代码可用性和可维护性,因为对象行为能够被单独改变或是扩展。 严禁对象之间不良交互提升模块化。 参考 这个文档获取更多相关封装细节和示例。 多态 多态是编程语言给不一样底层数据类型做相同接口展示一个能力。一个多态类型上操作能够应用到其它类型值上面。 继承 继承给对象提供了从基类获取字段和方法能力。继承提供了代码重用行,也能够在不修改类情况下给现存类添加新特征。 抽象 抽象是把想法从具体实例中分离出来步骤,所以,要依据她们功效而不是实现细节来创建类。Java支持创建只暴漏接口而不包含方法实现抽象类。这种抽象技术关键目标是把类行为和实现细节分离开。 抽象和封装不一样点 抽象和封装是互补概念。首先,抽象关注对象行为。其次,封装关注对象行为细节。通常是经过隐藏对象内部状态信息做到封装,所以,封装能够看成是用来提供抽象一个策略。 常见Java问题 1.什么是Java虚拟机?为何Java被称作是“平台无关编程语言”? Java虚拟机是一个能够实施Java字节码虚拟机进程。Java源文件被编译成能被Java虚拟机实施字节码文件。 Java被设计成许可应用程序能够运行在任意平台,而不需要程序员为每一个平台单独重写或是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台指令长度和其它特征。 2.JDK和JRE区分是什么? Java运行时环境(JRE)是将要实施Java程序Java虚拟机。它同时也包含了实施applet需要浏览器插件。Java开发工具包(JDK)是完整Java软件开发包,包含了JRE,编译器和其它工具(比如:JavaDoc,Java调试器),能够让开发者开发、编译、实施Java应用程序。 3.”static”关键字是什么意思?Java中是否能够覆盖(override)一个private或是static方法? “static”关键字表明一个组员变量或是组员方法能够在没有所属类实例变量情况下被访问。 Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定,而static方法是编译时静态绑定。static方法跟类任何实例全部不相关,所以概念上不适用。 4.是否能够在static环境中访问非static变量? static变量在Java中是属于类,它在全部实例中值是一样。当类被Java虚拟机载入时候,会对static变量进行初始化。假如你代码尝试不用实例来访问非static变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。 5.Java支持数据类型有哪些?什么是自动拆装箱? Java语言支持8中基础数据类型是: byte short int long float double boolean char 自动装箱是Java编译器在基础数据类型和对应对象包装类型之间做一个转化。比如:把int转化成Integer,double转化成double,等等。反之就是自动拆箱。 6.Java中方法覆盖(Overriding)和方法重载(Overloading)是什么意思? Java中方法重载发生在同一个类里面两个或是多个方法方法名相同不过参数不一样情况。和此相对,方法覆盖是说子类重新定义了父类方法。方法覆盖必需有相同方法名,参数列表和返回类型。覆盖者可能不会限制它所覆盖方法访问。 7.Java中,什么是结构函数?什么是结构函数重载?什么是复制结构函数? 当新对象被创建时候,结构函数会被调用。每一个类全部有结构函数。在程序员没有给类提供结构函数情况下,Java编译器会为这个类创建一个默认结构函数。 Java中结构函数重载和方法重载很相同。能够为一个类创建多个结构函数。每一个结构函数必需有它自己唯一参数列表。 Java不支持像C++中那样复制结构函数,这个不一样点

文档评论(0)

1亿VIP精品文档

相关文档