常见面试题

进程和线程的区别

进程是程序的一次执行,线程可以理解为进程中执行的一段程序片段。

进程是操作系统分配资源的单位,线程是操作系统执行的单位;

或者说:进程是资源分配和拥有的单位,线程是处理器调度的基本单位。

一个线程只属于一个进程,一个进程可以有多个线程。

进程间是独立的,拥有独立的系统资源;

线程运行在进程空间内,不拥有系统资源,但同一进程的不同线程可以共享该进程的资源。

在创建或撤销进程的时候,由于系统要为之分配或回收资源,导致系统开销明显大于创建或撤销线程的开销

进程有独立的运行空间,当进程崩溃后,不会对其他进程产生隐形;

而线程只是一个进程中不同的执行路径,线程有自己的堆栈和变量,但没有单独的地址空间,一个线程死掉等于整个程序死掉。

 抽象类和接口的区别

  1. 抽象类中可以有构造方法,接口中不能有构造方法
  2. 抽象类中可以有普通的成员变量,可以在子类中重新定义,也可以重新赋值;接口中不能有普通的成员变量,默认为public static final,且必须赋初值,所以实现类中不能重新定义,也不能改变其值)
  3. 抽象类中可以包含非抽象的普通方法,接口中的所有方法都必须是抽象的(默认都是public abstract),不能有非抽象的
  4. 抽象类中可以包含静态方法,接口中不能包含静态方法
  5. 抽象类和接口都可以包含成员变量,但接口中定义的成员变量只能是public static final型的
  6. 一个类可以实现多个接口,但只能继承一个抽象类
  7. 接口更多的是在系统架构设计方法发挥作用,主要用于定义模块之间的通信契约。而抽象类在代码实现方面发挥作用,可以实现代码的重用

HashMap和Hashtable的区别

  1. HashMap继承自AbstractMap,而Hashtable继承自Dictionary
  2. Hashtable的方法是同步的,而HashMap不是,所以在多线程场合要手动同步HashMap
  3. Hashtable的key和value均不能为空,HashMap可以为空
  4. Hashtable有一个方法contains(Object value),功能和containsValue(Object value)一样,HashMap去掉了这一方法
  5. HashTable使用Enumeration,HashMap使用Iterator
  6. HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数
  7. 哈希值的使用不同,HashTable直接使用对象的hashCode,而HashMap重新计算hash值

面向对象基本原则

  1. 单一职责原则(Single Responsibility Principle SRP)
  2. 开放封闭原则(Open-Closed Principle OCP)
  3. 依赖倒置原则(Dependence Inversion Principle DIP )
  4. 里氏替换原则(Liskov Substitution Principle LSP)
  5. 迪米特法则(Law of Demeter)
  6. 接口隔离原则(ISP)
  7. 组合/聚合复用原则(Composite/Aggregate Reuse Principle CARP)

  (参考这里

垃圾回收机制

在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。

垃圾内存并不需要程序显示的释放,而是由JVM的系统级线程自动释放该内存块。

功能:检测无用对象,回收无用对象占用的内存还给java程序

优点:提高效率。自动释放垃圾内存,减轻编程负担;提高安全性。有效防止内存泄露,有效的使用内存

缺点:它的开销影响程序的性能。执行GC线程时需要中止执行Java程序的线程

算法:

1.引用计数法(已过时)

使用引用计数器区分存活对象和不再使用的对象。堆中的每个对象对应一个引用计数器,当每次创建一个对象并赋给一个变量时,引用计数器就加1,当一个对象的某个引用超过了生命周期或者被赋予新值时,计数器减一。引用计数器为0的可以当做垃圾回收。优点执行快,缺点无法检测循环引用。

 2.跟踪收集器

建立一个根对象的图,沿着整个对象图上的每条链接,递归确定可到达性。不可到达的作为垃圾收集。

标记--清除

标记需要回收的对象,然后把这些对象内存信息清除

标记--清除--压缩

标记清除算法会形成内存碎片,所以需要把对象压缩到一边,留出另一边可用内存。

标记--清除--复制

分配两个空间,把A空间中活动对象复制到B中,然后一次性把空间A删除,

posted @ 2012-11-15 14:55  一瓶珍情  阅读(247)  评论(0编辑  收藏  举报