文本描述
100IT 名企 java 面试真题整理面试必考点 据官方数据统计,在全球编程语言工程师的数量上,JavaEE 以 900 万的程序员数 量位居首位,很多软件的开发都离不开它。 自从黑马程序员授课以来,深受社会上广大编程爱好的喜爱,我们的课程一直被 其他机构争相模仿,我们坚信只有教育机构自身能力的不断提升,才能带动整体 教育欧亿·体育(中国)有限公司的前进。根据黑马程序员毕业学员面试经验,整理 100 家 IT 名(阿里、 百度、腾讯、)企面试题,黑马程序员为了帮助更多爱好并想学习编程的同学, 整理了这篇资源帖子,只为帮助更多的人受益。 更多(Java、android、大数据、python、前端、iOS、PHP )开发、编程资源、源码、笔记加 QQ:208695827 北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090 面向对象编程(OOP) Java是一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软 件开发的优点: ? 代码开发模块化,更易维护和修改。 ? ? ? 代码复用。 增强代码的可靠性和灵活性。 增加代码的可理解性。 面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象。下面的章节我们会 逐个分析这些特性。 封装 封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法 来改变它内部的数据。在Java当中,有3种修饰符:public,private和protected。每一 种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。 下面列出了使用封装的一些好处: ? ? 通过隐藏对象的属性来保护对象内部的状态。 提高了代码的可用性和可维护性,因为对象的行为可以被单独的改变或者是扩 展。 ? 禁止对象之间的不良交互提高模块化。 参考这个文档获取更多关于封装的细节和示例。 多态 多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上 的操作可以应用到其他类型的值上面。 继承 继承给对象提供了从基类获取字段和方法的能力。继承提供了代码的重用行,也可以在 不修改类的情况下给现存的类添加新特性。 北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090 抽象 抽象是把想法从具体的实例中分离出来的步骤,因此,要根据他们的功能而不是实现细 节来创建类。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”关键字表明一个成员变