Java|资深架构师整理分享60道全套Java核心技术面试题及答案( 三 )


三.值:只有 HashMap 可以让你将空值作为一个表的条目的 key 或 value
28、char 型变量中能不能存贮一个中文汉字?为什么?
答:是能够定义成为一个中文的 , 因为 java 中以 unicode 编码 , 一个 char 占 16 个字节 , 所以放一个中文是没问题的
29、GC 是什么? 为什么要有 GC
答:GC 是垃圾收集的意思(Gabage Collection)内存处理是编程人员容易出现问题的地方 , 忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃 , Java 提供的 GC 功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的 , Java 语言没有提供释放已分配内存的显示操作方法 。
30、float 型 float f=3.4 是否正确?
答:不正确 。 精度不准确应该用强制类型转换 , 如下所示:float f=(float)3.4
31、介绍 JAVA 中的 Collection FrameWork(包括如何写自己的数据结构)?
答:Collection FrameWork 如下:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap

Collection 是最基本的集合接口 , 一个 Collection 代表一组 Object , 即 Collection 的元素(Elements)
Map 提供 key 到 value 的映射
32、抽象类与接口?
答:抽象类与接口都用于抽象 , 但是抽象类(JAVA 中)可以有自己的部分实现 , 而接口则完全是一个标识(同时有多重继承的功能) 。
JAVA 类实现序例化的方法是实现 java.io.Serializable 接口
Collection 框架中实现比较要实现 Comparable 接口和 Comparator 接口
33、STRING 与 STRINGBUFFER 的区别 。
答:STRING 的长度是不可变的 , STRINGBUFFER 的长度是可变的 。 如果你对字符串中的内容经常进行操作 , 特别是内容要修改时 , 那么使用 StringBuffer , 如果最后需要 String , 那么使用 StringBuffer 的 toString()方法
34、谈谈 final finally finalize 的区别
答:final—修饰符(关键字)如果一个类被声明为 final , 意味着它不能再派生出新的子类 , 不能作为父类被继承 。 因此一个类不能既被声明为 abstract 的 , 又被声明为 final 的 。 将变量或方法声明为 final , 可以保证它们在使用中不被改变 。 被声明为 final 的变量必须在声明时给定初值 , 而在以后的引用中只能读取 , 不可修改 。 被声明为 final 的方法也同样只能使用 , 不能重载finally—再异常处理时提供 finally 块来执行任何清除操作 。 如果抛出一个异常 , 那么相匹配的catch 子句就会执行 , 然后控制就会进入 finally 块(如果有的话)finalize—方法名 。 Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作 。 这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的 。 它是在 Object 类中定义的 , 因此所有的类都继承了它 。 子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作 。 finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的
35、面向对象的特征有哪些方面
答:主要有以下四方面:
1.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面 , 以便更充分地注意与当前目标有关的方面 。 抽象并不打算了解全部问题 , 而只是选择其中的一部分 , 暂时不用部分细节 。 抽象包括两个方面 , 一是过程抽象 , 二是数据抽象 。
2.继承:
继承是一种联结类的层次模型 , 并且允许和鼓励类的重用 , 它提供了一种明确表述共性的方法 。
对象的一个新类可以从现有的类中派生 , 这个过程称为类继承 。 新类继承了原始类的特性 , 新类称为原始类的派生类(子类) , 而原始类称为新类的基类(父类) 。 派生类可以从它的基类那里继承方法和实例变量 , 并且类可以修改或增加新的方法使之更适合特殊的需要 。
3.封装:
封装是把过程和数据包围起来 , 对数据的访问只能通过已定义的界面 。 面向对象计算始于这个基本概念 , 即现实世界可以被描绘成一系列完全自治、封装的对象 , 这些对象通过一个受保护的接口访问其他对象 。
4. 多态性:
【Java|资深架构师整理分享60道全套Java核心技术面试题及答案】多态性是指允许不同类的对象对同一消息作出响应 。 多态性包括参数化多态性和包含多态性 。 多态性语言具有灵活、抽象、行为共享、代码共享的优势 , 很好的解决了应用程序函数同名问题 。
36、String 是最基本的数据类型吗
答:基本数据类型包括 byte、int、char、long、float、double、boolean 和 short 。