七、谈谈HashMap和Hashtable的区别。
答: HashMap是轻量级的(线程不安全的,效率高的)集合,Hashtable是重量级的(线程安全的,效率低的)集合。
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap 类没有分类或者排序。它允许一个 null 键和多个null值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null值。它也比 HashMap慢,因为它是同步的。
八、请问abstract class和interface有什么区别?
答: 1) 接口没有任何的实现,而抽象类它可以有部分的实现也可以没有;
2) 如果需要复用或者共享部分代码,应该用抽象类而不是接口;
3) 继承无法解决类型的转换问题,接口就是为了解决这一问题而产生的(Java的单继承是接口产生的根本原因)接口是一种抽象的第三方规范,跟对象没什么直接关系。
九、请问软件开发中的设计模式你会使用哪些?
答:我熟悉的设计模式有单例模式,DAO模式,模板方法,工厂模式,委托代理模式,MVC模式等。
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
Singleton模式一般形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
public class MySingleton{
private MySingleton (){};//私有的构造方法
private static MySingleton mys=newMySingleton();
public static MySingleton newInstance(){return mys;}
十、类的核心特性有哪些?
类具有封装性、继承性和多态性。
封装性:类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类中的私有变量和类中方法的实现细节。
继承性:类的继承性提供从已存在的类创建新类的机制,继承(inheritance)使一个新类自动拥有被继承类(父类)的全部成员。
多态性:类的多态性提供类中方法执行的多样性,多态性有两种表现形式:重载和覆盖。
十一、请问类与对象有什么区别?
类:类就是某一种事物的一般性的集合体,是相同或相似的各个事物共同特性的一种抽象。
对象:在面向对象概念中,对象(Object)是类的实例(instance)。对象与类的关系就像变量与数据类型的关系一样。
十二、文件系统的几个类:FileInputStream、FileOutputStream、FileReader、FileWriter的区别
1)读文件: FileReader 从文本文件中读字符到程序
(1) 写文件: FileWriter 程序写字符到文本文件
(2)缓冲: BufferedReader 读文件;BufferedWriter 写文件
注:文本文件本质上也是二进制文件,它是由一个一个的字节构成的。但不同的是,其中的每个字节都代表字符。
2、二进制文件的读写
(1)写文件: FileOutputStream 将二进制数据写入文件。
DataOutputStream 可连接到一个 FileOutputStream 上,便于写各种基本类型的数据。