2015java面试题汇总

来源:互联网 发布:ettercap linux 安装 编辑:程序博客网 时间:2024/06/06 07:33

      最近面试了几家公司,总结了几道亲身经历的java面试题供大家参考,面试官提问的问题不单单都是关于java的,如有偏差还望请多多指教。

1.public、private、protected、default的作用范围?

  作用域        当前类    同一package      子孙类       其它package    
   public          true            true                    true               true
   protected    true            true                    true               false
   friendly        true           true                     false             false
   private         true          false                    false             false

2.接口是否可以继承接口?抽象类是否可实现接口,抽象类是否可继承实体类?抽象类是否可继承实体类(concrete class)?

接口可以继承接口。抽象类可以实现接口,抽象类可继承实体类,但前提是实体类必须有明确的构造函数。

3.什么是敏捷开发?
敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。

4.什么是内排序和外排序?

内排序:指在排序期间数据对象全部存放在内存的排序。内排序是排序的基础。内排序效率用比较次数来衡量。按所用策略不同,内排序又可分为插入排序、选择排序、交换排       序、归并排序及基数排序等几大类。

外排序:指在排序期间全部对象太多,不能同时存放在内存中,必须根据排序过程的要求,不断在内,外存间移动的排序。在数据量大的情况下,只能分块排序,但块与块间不能保证有序。外排序用读/写外存的次数来衡量其效率。

5.事务四大特性(简称ACID)

1)、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。

2)、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。

3)、隔离性(Isolation):事务的隔离性要求系统必须保证事务不受其他并发执行的事务的影响,也既要达到这样一种效果:对于任何一对事务T1和T2,在事务T1看来,T2要么在T1开始之前执行,要么在T1完成之后才开始执行,这样,每个事务都感觉不到系统中有并发事务执行。

4)、持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。

6.Servlet的生命周期是怎样的?

1).初始化阶段 调用init()方法
2).响应客户请求阶段  调用service()方法
3).终止阶段  调用destroy()方法初始化阶段 调用init()方法
7.两个对象值相同(x.equals(y)==ture),但却可有不同的hash node,对不对?为什么?

值是否相同使用equals方法来判断,equals方法重写后不一定是判断对象是不是同一个对象。所以hashcode不同是正常的。

8.启动一个线程使用run()还是start()?

start()方法是启动一个线程的方法,线程的启动必须通过此方法,
而run()方法,只是Thread类的一个方法,它本身并不能开辟线程。
所以,当你用run()时候,程序只有一个线程,根本没达到你多线程的目的(是错误的)。而你用start()时候,你的程序又开辟了两个线程,所以结果不同 。

9.说说final,finally和finalized的不同?

final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。  
finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

10.常见的数据结构有哪些?
数组、栈、队列、链表、树、图、堆、散列表。

       能够记下来的就这几道题了,面试时有必要精心准备下自我介绍,重点介绍下与众不同的地方、高人一等的能力,至于简历上有的就少啰嗦两句吧。不同的面试官有不同的喜好,问的问题自然不同。临阵磨枪只知皮毛,平时多积累,多练习才是王道。


0 0