2018最新Java面试题整理.doc

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2018最新Java面试题整理.doc

基础篇 基本功 面向对象特征 封装,继承,多态和抽象 封装 封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改变它内部的数据。在 Java 当中,有 3 种修饰符: public, private 和 protected。每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。下面列出了使用封装的一些好处: 通过隐藏对象的属性来保护对象内部的状态。 提高了代码的可用性和可维护性,因为对象的行为可以被单独的改变或者是扩展。 禁止对象之间的不良交互提高模块化 继承 继承给对象提供了从基类获取字段和方法的能力。继承提供了代码的重用行,也可以在不修改类的情况下给现存的类添加新特性。 多态 多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上的操作可以应用到其他类型的值上面。 抽象 抽象是把想法从具体的实例中分离出来的步骤,因此,要根据他们的功能而不是实现细节来创建类。 Java 支持创建只暴漏接口而不包含方法实现的抽象的类。这种抽象技术的主要目的是把类的行为和实现细节分离开。 final, finally, finalize 的区别 final修饰符(关键字) 如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。 将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。 finally 在异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。 finalize 方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。 int 和 Integer 有什么区别 int是基本数据类型?,而Integer是其包装类,注意是一个类。? 为什么要提供包装类呢???? 一是为了在各种类型间转化,通过各种方法的调用。否则你无法直接通过变量转化。 重载和重写的区别 override(重写)    1. 方法名、参数、返回值相同。    2. 子类方法不能缩小父类方法的访问权限。    3. 子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。    4. 存在于父类和子类之间。    5. 方法被定义为final不能被重写。 overload(重载)   1. 参数类型、个数、顺序至少有一个不相同。   2. 不能重载只有返回值不同的方法名。   3. 存在于父类和子类、同类中。 区别点 重载 重写(覆写) 英文 Overloading Overiding 定义 方法名称相同,参数的类型或个数不同 方法名称、参数类型、返回值类型全部相同 权限 对权限没要求 被重写的方法不能拥有更严格的权限 范围 发生在一个类中 发生在继承类中 抽象类和接口有什么区别 接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。? 还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用。 说说反射的用途及实现 Java反射机制主要提供了以下功能:在运行时构造一个类的对象;判断一个类所具有的成员变量和方法;调用一个对象的方法;生成动态代理。反射最大的应用就是框架 Java反射的主要功能:? - 确定一个对象的类? - 取出类的modifiers,数据成员,方法,构造器,和超类.? - 找出某个接口里定义的常量和方法说明.? - 创建一个类实例,这个实例在运行时刻才有名字(运行时间才生成的对象).? - 取得和设定对象数据成员的值,如果数据成员名是运行时刻确定的也能做到.? - 在运行时刻调用动态对象的方法.? - 创建数组,数组大小和类型在运行时刻才确定,也能更改数组成员的值. 反射的应用很多,很多框架都有用到

文档评论(0)

tangtianbao1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档