搜索工作 |
搜索工作 公司点评 查工资 看趋势
微信

使用微信服务,更方便

职友集>Java面试题 > 15 个必须知道的 Java 面试问题

15 个必须知道的 Java 面试问题

2015-04-18 06:30:01 阅读( 242 )

2058人 收藏本页

标签:Java面试题

Java核心】1) What is the purpose of serialization?
为了传输,将java对象串行化以后变成01串方便传输或者保存,可以很容易的反串行变回原来的java对象。其中@tranxx的一个什么注解可以让java忽略某个属性不做串行化,比如某个巨大的字符串,有效减小串行化后的数据量。


2) What is the difference between JDK and JRE?
JDK是有开发功能的,比如javac什么的,javap什么的;JRE就是一个runtimeenvironment,跑java字节码的


3) What is the difference between equals and ==?
==是比较引用,equals是Object类的一个方法,可以通过重写equals方法达到比较内容的目的


4) When will you use Comparator and Comparableinterfaces?
比较大小有的很容易,比如说2>1, “abc”>”aba”,这种可以通过自然特性比较的容易理解,但是如果比较两个对象的时候怎么比呢,比如说比较两个人,是比年龄?身高?还是体重?
所以可以通过实现Comparable来实现比较大小的功能,还是用人来说,就比较年龄,A的年龄比B大,就认为A>B
这样的好处有很多,比如说实现了Comparable的以后,就可以用Collections.sort方法来排序。
问题是并不是每次都以年龄比较的,如果下次要比较体重怎么办?那么就要写一个实现了Comparator的比较器来比较传入的两个对象的大小。所以用Collections.sort方法排序的时候传入一个List和一个Comparator


5) What is the wait/notify mechanism?
wait和notify的机制。。我没深入研究过,不过我想应该是通过共享锁的方法,比如说将某个对象设为锁(用那个synchronized关键字),某个线程占用了该锁以后,其它线程无法获得该锁就等着,知道那个占用线程释放锁,唤醒等待线程。
这个瞎掰的,按照对操作系统的的了解吹吹。。。


6) What is the difference between checked and uncheckedexceptions?
我不知道什么叫checked 和unchecked exception,我只知道有check exception 和runtimeexception,前者必须用try catch来处理的,后者不需要,比如数组越界之类和除以0这样的异常就是runtimeexception。


7) What is the difference between final, finally andfinalize?
这个太普通了,要写起来也太多了,只说一下finally的时候也可以没有catch,但是必须有try
finalize方法在对象被回收时调用,但是被调用的时候不代表一定马上就被回收,且他只会执行一次,比如说自己手动调用一次以后,等他被回收的时候也不会被执行了。

【Java企业版】
8) What is the difference between web server and appserver?
web server: 就是提供一个网站的,比如apache,IIS等,处理一个http请求,将静态网页或者图片什么的发回去
app server:可以执行程序的,比如说tomcat什么的。
这也是我瞎掰的。。。觉得自己说的不够清楚。。


9) Explain the Struts1/Struts2/MVC applicationarchitecture?
这个要写就太多了,就是模型-视图-控制三层架构,比如Struts2中,FilterAction对应着Control,Action返回的那些result对应着视图,strut2支持的视图层就多了,比如jsp,甚至是pdf等。。。模型就对应着后来的业务逻辑吧


10) What is the difference between forward andsendredirect?
sendredirect重新开一个request

【一般问题】
11) How does a 3 tier application differ from a 2 tierone?
三层模型和两层模型的区别?什么业务逻辑和展示层分离等等,有效分工,有利于后期维护等等。。。


12) How does the version control process works?
版本控制,目前有两大类吧,CVS,SVN等属于集中式的,Git属于分布式的,目前Git很火啊。
process就是check out > update > modify> check in, 如果发现冲突那么 merge > checkin.


13) What is the difference between JAR and WAR files?
jar和war都是zip格式压缩,war是web项目压缩的意思,里面有WEB-INF文件夹,下面有web.xml配置文件

【数据库】
14) What is a Left outer join?
左外连接,就是将左表对应于右表中没有关联的数据也列出来,比如
表 A
a b
c d
e f
表 B
b 1
d 2
c 3
A left outer join B的结果为:
a b 1
c d 2
e f
好久没有写SQL语句了,不记得是不是这样了。。
15) What is the difference between UNION and UNIONALL?
前者去除重复记录,后者不去除

来自IT公司面试手册

下一篇:java实现子线程全部结束主线程继续执行

上一篇:[java开发技术笔试题]JAVA基础 ,基本数据类型,类,static关键字

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题