黑马程序员入学面试题

上传人:第*** 文档编号:60794644 上传时间:2018-11-18 格式:PDF 页数:30 大小:1.21MB
返回 下载 相关 举报
黑马程序员入学面试题_第1页
第1页 / 共30页
黑马程序员入学面试题_第2页
第2页 / 共30页
黑马程序员入学面试题_第3页
第3页 / 共30页
黑马程序员入学面试题_第4页
第4页 / 共30页
黑马程序员入学面试题_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《黑马程序员入学面试题》由会员分享,可在线阅读,更多相关《黑马程序员入学面试题(30页珍藏版)》请在金锄头文库上搜索。

1、黑马程序员入学面试复习 黑马程序员入学面试题黑马程序员入学面试题 第一部分 知识点 . 3 1. 面试大概流程 . 3 2. 面向对象的理解 . 3 3. 面向对象和面向过程的区别 . 3 4. abstract 与哪些关键字不能共存为什么 . 3 5. static 的特点 3 6. 类与类、类与接口、接口与接口的关系 . 3 7. final、finally、finalize 的区别 . 3 8. 什么是多态,多态的好处和弊端 . 3 9. 多态实现的机制 . 4 10. wait()和 sleep()的区别 4 11. 网络编程的三要素 . 4 12. UDP 和 TCP 的区别 4 1

2、3. 什么是暴力反射 . 4 14. 反射获取字节码对象方式、创建对象的两种方式 . 4 15. 怎么理解反射,反射的应用 . 5 16. 对匿名内部类的理解 . 5 17. IO 体系 . 5 18. 集合体系 . 5 19. 线程的创建方式,进程线程的理解 . 6 20. 进程与线程 . 6 21. 局部变量和成员变量区别 . 6 22. 同步函数与同步代码块的区别 . 6 23. 数组和集合的区别 . 6 24. StringBuffer 和 StringBuilder 的区别 . 7 25. String 和 StringBuffer 区别 7 第二部分 知识点 . 7 26. 说明

3、Java 中 String str=null 与 String str=“的区别? . 7 27. 使用运算符“= =“和方法 equals() 进行比较对象的区别? . 7 28. 接口和抽象类有何区别? . 7 29. 简述方法的重写与重载 . 8 30. final、finally、finallize 有何区别? . 9 31. 编程计算 3 乘 8 等于几,什么方法效率更高? . 9 32. 不借用第三方变量,互换两个变量。 . 9 33. 传统 for 和高级 for 有什么区别呢? 9 34. Collection 和 Colections 的区别是什么? . 9 35. 面向对象

4、和面向过程的理解 . 10 36. 线程之间通信的理解 . 10 37. 线程的状态 . 11 38. 数组和集合 . 11 39. String、StringBuffer 和 StringBuilder . 12 40. 集合 . 12 黑马程序员入学面试复习 41. 为什么需要配置 path,什么时候需要 classpath? . 13 42. IO 流 13 43. OSI 参考模型 14 44. abstract 与哪些关键字不能共存为什么 . 14 45. static 的特点 . 14 46. wait()和 sleep()的区别 . 14 47. 网络编程的三要素 . 14 第三

5、部分 面试题 . 16 48. collection 和 collections 的区别。 . 16 49. list, set, map 是否继承自 collection 接口? list,set 是 map 不是。 16 50. arraylist 和 vector 的区别。 . 16 51. hashmap 和 hashtable 的区别 . 16 第四部分 面试题 . 16 52. 1写一个卖票的程序。 . 16 53. 用代码实现 List 和 map 存储、取出数据 使用泛型 . 17 54. 将用户输入在控制台上的指定路径下所有的.txt 文件复制到 c 盘下随意目录(你 可以自

6、己指定路径)并在复制后将.txt 后缀名更改成.java 后缀名 18 55. throw 和 throws 关键字的区别: 19 56. 编译时期异常和运行时异常的区别 . 19 57. 定义异常处理时,什么时候定义 try,什么时候定义 throws 呢? 19 58. 常见的包、类、接口 . 19 59. 常见异常 . 19 黑马程序员入学面试复习 第一部分 知识点 1. 面试大概流程 (1) 自我介绍 (2) 几道编程题 (3) Java 基础知识提问 2. 面向对象的理解 面向对象是基于面向过程的。在开发过程中,要完成特定的功能就去找相应的对象,如 果找不到就创建相应的对象,使用对象

7、,维护完善对象。 面向对象是基于面向过程的, 面向对象是把所需要解决的问题按照一定的规则划分为多 个独立的对象,强调的是对象,把功能封装成对象,让对象去调用方法来解决问题。 3. 面向对象和面向过程的区别 面向过程强调的是功能行为,分析解决问题所需的步骤,然后用函数把这些步骤一一实 现,使用的时候一个一个的调用就可以了。 面向过程就是分析解决问题所需要的步骤,然后用函数把这些步骤一一的实现,使用的 时候一个一个的调用就可以了,强调是功能行为,解决问题的步骤,以函数为基础,完成各 种操作。 面向对象是基于面向过程的,将功能封装成对象,强调的是具备功能的对象,让对象去 调用方法来解决问题。 4.

8、abstract 与哪些关键字不能共存为什么 private:私有的方法是不可见的,无法被重写 final:被 final 修饰的方法是最终方法,无法被重写 static:被 static 修饰的方法,要随类加载到方法区,由于抽象方法没有方法体所以不 能加载 5. static 的特点 (1) 随着类的加载而加载;优先于对象存在;被所有对象所共享;可以直接被类名所调用。 (2) 静态方法只能访问静态成员,非静态方法既可以访问静态也可访问非静态 (3) 静态方法中不可以定义 this、super 关键字,因为静态优先于对象存在,this 和 super 所代表的对象还没有不存在。 6. 类与类、

9、类与接口、接口与接口的关系 继承,继承或实现,继承 7. final、finally、finalize 的区别 final:可以修饰类、方法和变量,被 final 修饰的类无法被继承,方法无法被重写,变 量为常量只能赋值一次 finally:异常处理,和 try、catch 结合使用,可以添加也可以不添加,用于执行一些 必须执行的代码,如释放资源等 finalize:Object 类中的方法,其中定义了对象要被垃圾收集器回收之前要做的相关的 清理工作 8. 什么是多态,多态的好处和弊端 多态可以理解为事物存在的多种体现形态。 父类的引用指向了自己的子类对象; 父类的 引用也可以接收自己子类的对

10、象。 一个类定义的属性和方法被其他类继承后, 可以具有不同 黑马程序员入学面试复习 的数据类型或表现出不同的行为,这使得同一个属性和方法在不同的类中具有不同的语义。 重写和重载是多态的不同表现形式。 好处:提高了代码的扩展性 弊端:父类的引用只能访问父类中有的成员(父类引用无法调用子类中特有的方法) 9. 多态实现的机制 靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象, 而程序调用 的方法在运行期才动态绑定, 就是引用变量所指向的具体实例对象的方法, 也就是内存里正 在运行的那个对象的方法,而不是引用变量的类型中定义的方法。重写、重载是多态性的不 同表现。 10. wait(

11、)和 sleep()的区别 (1)所在的类不同:wait 是 Object 类中的方法,sleep 是 Thread 类中的方法 (2)sleep 方法没有释放同步锁,而 wait 方法释放了同步锁,使得其他线程可以使用同 步代码块或者方法。 (3)sleep()必须指定时间,wait()可以指定也可以不指定时间。 (4)wait,notify 和 notifyAll 只能在同步方法或者同步代码块里面使用,而 sleep 可以 在任何地方使用 (5)sleep 必须捕获异常,而 wait,notify 和 notifyAll 不需要捕获异常 11. 网络编程的三要素 (1)IP:网络中设备的唯

12、一标识 (2)端口: 用于标识设备中接收数据的网络应用程序具体是哪一个, 有效端口 065535, 01024 为系统端口及保留端口 (3)传输协议:UDP 和 TCP 协议,信息通讯的规则 12. UDP 和 TCP 的区别 UDP:不需要建立连接,是不可靠协议,将数据及源和目的封装到数据报中,每个数 据报限制在 64k 以内,发送数据较少,速度快 TCP:通过三次握手建立连接通路,是可靠协议,可进行大量的数据传输,效率较低 13. 什么是暴力反射 java 的特性之一就是封装,将对象的属性和具体实现细节隐藏起来,只对外提供公共 的方法访问,private 修饰的内部属性和方法对我们是不可见

13、的。 我们通过正常的方法是无法获取以及修改的, 可是通过反射却可以强制获取并做一些修 改,这就破坏了封装性,这就是所谓的暴力反射 14. 反射获取字节码对象方式、创建对象的两种方式 获取字节码方式三种: (1)类名.class,例如:System.class (2)对象.getClass(),例如:new Date().getClass(); (3)Class.forName(“类名“),例如:Class.forName(“java.util.Date“); 创建对象的两种方式: (1)直接用字节码创建对象,只能调用默认的构造方法:字节码.newInstance(); (2)获取构造方法 Co

14、nstructor,然后调用构造方法创建,可以通过参数不同调用不同 黑马程序员入学面试复习 的构造方式 15. 怎么理解反射,反射的应用 在运行状态下,通过类的字节码文件去解剖一个类,使用该类的构造方法、成员变量、 成员函数。 反射就是把 Java 类中的各种成分映射成相应的 Java 类。 一般情况下我们要解决某个问题,先找到相关的类,创建该类的对象,然后通过该对象 调用对应的方法来解决问题。 反射是一个正好相反的过程, 开始可能并没有类可以解决这个问题, 而我们却先用一个 当时可能并不存在的方法解决了这个问题,后来才有的这个类。 这其实就是框架的原理,现有的框架再有的解决问题的类。框架描述

15、了整体,制订了功 能方法的规范,具体的实现之后按照这个规范编写。这些都需要靠反射来完成。 使用框架有良好的扩展性, 某部分功能的优化不需要涉及程序整体, 只需要修改特定的 部分就好了,然后通过配置文件,获取对应的类名,就可以了。 16. 对匿名内部类的理解 匿名内部类其实是内部类的简写形式。 内部类是定义在类中的类,就好比我们人类,我们人类都有心脏,而心脏又有自己独特 组成,可以把心脏也抽象成一个类。 这个心脏类就是人类的内部类。如果要研究某一种心脏疾病,需要一个实例时,我们不 需要知道这个患病的心脏到底是谁的,那找到的这个就是匿名的。 匿名内部类必须要继承一个类或实现一个接口, 在使用时直接

16、用父类或接口的名称创建 了一个子类对象并实现其中的方法,匿名内部类其实是一个匿名的子类对象。 传递参数的时候,需要的是抽象类或者接口的时候,其实需要的是子类或实现类对象, 这时可以通过匿名内部类创建。 匿名内部类就是没有名字的内部类, 是内部类的简化形式。 一般只使用一次的时候使用 匿名内部类,匿名内部类本质上是一个匿名子类对象。匿名内部类的使用前提:内部类继承 一个类或实现接口。 17. IO 体系 字节流 InputStream/OutputStream |-FileInputStream/FileOutputStream:文件字节流,用于文件的读写操作 |-BufferedInputStream/BufferedOutputStream:加缓冲区的字节流,用于提 高效率 字符流 Reader/Writer |-FileReader/FileWriter:文件字符流,用于文本文件的读写操作 |-BufferedReader/BufferedWrite:加缓冲区的字符流,用于提高效率 转换流 InputStreamReader/OutputStreamWrit

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号