面试总结之JAVA

1. what is thread safe? java

线程安全就是说多线程访问同一代码,不会产生不肯定的结果。编写线程安全的代码是低依靠线程同步。
线程安全: 在多线程中使用时,不用自已作同步处理
线程不安全: 在多线程中使用时,必须作线程同步,否则会有未知后果程序员

进程和线程的区别?面试

如何启动线程,最有效终止线程的方法?sql

wait & sleep的区别?数据库

实现线程类有几种方法?为何要有两种(extend thread/implement runnable)设计模式

2. jdbc?
用jdbc连到db2要通过几步?创建链接,发送sql语句,处理结果
What are 4 drivers available in JDBC ?(高)安全

3. String 和 Stringbuffer的区别
String s1 = "Monday"; 
String s2 = "Monday"; 

String s1 = "Monday"; 
String s2 = new String("Monday"); 
的区别性能优化

4.exception throwing会致使程序终止吗?(低) 
Exception: 请给出 5 common example of exceptions
what is a "resource leak"?
Java设计有Finally blocks的主要缘由?多线程

若多个catch blocks都匹配抛出的异常,怎么处理?mvc

异常没有被捕获到的时候程序会发生什么?

5. 软件设计模式?列几个知道的及其实现方法

6。有关类的public、private和protected 
(1) 无public修饰的类,能够被其余类访问的条件是:a.两个类在同一文件中,b.两个 
类在同一文件夹中,c.两个类在同一软件包中。 
(2) protected:继承类和同一软件包的类可访问。 
(3) 若是构造方法为private,那么在其余类中不能建立该类的对象。

通常用什么方法去获取private的数据?

7.Javabean 有什么好处,
我理解Bean就是个容器
上面这个就是个最最简单的例子,用eclipse生成的
Bean对其中的成员变量做了很好的封装和保护
可使用set、get使对变量的操做作一些限定

javaBean有几个典型特征:
是一个public类
有一个不带参数的构造方法
经过getXXX获取属性,经过setXXX设置属性。

JSP 如何调用JAVAEAN
jsp:useBean id="tempname" class="com.****.****" scope="page"/>

8. java中xml的解析。举几个解析的方法:DOM(JAXP Crimson解析器) ,接着是SAX ,JDOM,DOM4j

用过哪一个?为何选这个,跟其余的优缺点比较

解析xml步骤:file, 读文件, root(element)。。。

9. SWT 和 swing的区别

10. 谈谈final, finally, finalize的区别。(基本,可判断使用java时间的长短)
  final—修饰符(关键字)若是一个类被声明为final,意味着它不能再派生出新的子类,不能做为父类被继承。所以一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,能够保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在之后的引用中只能读取,不可修改。被声明为final的方法也一样只能使用,不能重载

  finally—在异常处理时提供 finally 块来执行任何清除操做。若是抛出一个异常,那么相匹配的 catch 子句就会执行,而后控制就会进入 finally 块(若是有的话)。

  finalize—方法名。Java 技术容许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去以前作必要的清理工做。这个方法是由垃圾收集器在肯定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,所以全部的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其余清理工做。finalize() 方法是在垃圾收集器删除对象以前对这个对象调用的。

11. HashMap和Hashtable的区别。(中, 可判断使用java时间的长短。)

都属于Map接口的类,实现了将唯一键映射到特定的值上。

HashMap 类没有分类或者排序。它容许一个 null 键和多个 null 值。

Hashtable 相似于 HashMap,可是不容许 null 键和 null 值。它也比 HashMap 慢,由于它是同步的。

12. Collection 和 Collections的区别。(能够详问怎样实现排序-高)

Collections是个java.util下的类,它包含有各类有关集合操做的静态方法。

Collection是个java.util下的接口,它是各类集合结构的父接口。

13. Java内存管理

GC是垃圾收集器。Java 程序员不用担忧内存管理,由于垃圾收集器会自动进行管理。要请求垃圾收集,能够调用下面的方法之一:

System.gc()

Runtime.getRuntime().gc()

14. sleep() 和 wait() 有什么区别? (可判断我的的理解)

搞线程的最爱sleep()方法是使线程中止一段时间的方法。在sleep 时间间隔期满后,线程不必定当即恢复执行。这是由于在那个时刻,其它线程可能正在运行并且没有被调度为放弃执行,除非(a)“醒来”的线程具备更高的优先级(b)正在运行的线程由于其它缘由而阻塞。

wait()是线程交互时,若是线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。

15. Overload和Override的区别。Overloaded的方法是否能够改变返回值的类型?(理解)

方法的重写Overriding和重载Overloading是Java多态性的不一样表现。

重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。若是在子类中定义某方法与其父类有相同的名称和参数,咱们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。若是在一个类中定义了多个同名的方法,它们或有不一样的参数个数或有不一样的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是能够改变返回值的类型。

16. abstract class和interface有什么区别?

声明方法的存在而不去实现它的类被叫作抽象类(abstract class),它用于要建立一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的状况。不能建立abstract 类的实例。然而能够建立一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的全部抽象方法提供实现,不然它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类能够在类中实现这些方法。

接口(interface)是抽象类的变体。在接口中,全部方法都是抽象的。多继承性可经过实现这样的接口而得到。接口中的全部方法都是抽象的,没有一个有程序体。接口只能够定义static final成员变量。接口的实现与子类类似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)全部这种接口的方法。而后,它能够在实现了该接口的类的任何对象上调用接口的方法。因为有抽象类,它容许使用接口名做为引用变量的类型。一般的动态联编将生效。引用能够转换到接口类型或从接口类型转换,instanceof 运算符能够用来决定某对象的类是否实现了接口。

17. 启动一个线程是用run()仍是start()?(高)

启动一个线程是调用start()方法,使线程所表明的虚拟处理机处于可运行状态,这意味着它能够由JVM调度并执行。这并不意味着线程就会当即运行。run()方法能够产生必须退出的标志来中止一个线程。

18.实现一个Thread 有几种方法?以及区别。(中)

两种,继承thread或实现runable接口。区别在多继承上。

19.JDBC链接数据库的步骤。Statement有几种,怎么使用。Datasource怎么使用(判断使用java的熟练度,我的发挥)

20.若是用过EJB,能够问怎么写EJB,如何部署。相关知识能够有JNDI,RMI, SOCKET等。(高,我的能力,表达,理解)

21.用过STRUCTS,SPRING, hebnate的可问相关问题(你来整理几个:) 我这方面不是很熟。能够考验我的能力,表达,理解。 高)描述一下MVC模式的框架,以及说明一下struts的几个主要类分别完成mvc的那个部分。

22. 举出几个经常使用的设计模式并简要说明。例如

23. Util包相关问题。在作项目的过程当中,您是如何选择使用哪一种集合类的?

24. 您认为java须要进行性能优化么?是否举例说明进行java性能优化的经验。


面试官问我同步容器(如Vector)的全部操做必定是线程安全的吗?

详解面试中常考的 Java 反射机制

500+ 精选 Java 面试题大放送

相关文章
相关标签/搜索