15 个必须知道的 Java 面试问题(2年工作经验)

源:http://www.oschina.net/question/12_17815
评:

【Java核心】
1) What is the purpose of serialization?
2) What is the difference between JDK and JRE?
3) What is the difference between equals and ==?
4) When will you use Comparator and Comparable interfaces?
5) What is the wait/notify mechanism?
6) What is the difference between checked and unchecked exceptions?
7) What is the difference between final, finally and finalize?

【Java企业版】
8) What is the difference between web server and app server?
9) Explain the Struts1/Struts2/MVC application architecture?
10) What is the difference between forward and sendredirect?

【一般问题】
11) How does a 3 tier application differ from a 2 tier one?
12) How does the version control process works?
13) What is the difference between JAR and WAR files?

【数据库】
14) What is a Left outer join?

15) What is the difference between UNION and UNION ALL?




【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就是一个runtime environment,跑java字节码的
 
3) What is the difference between equals and ==?
==是比较引用,equals是Object类的一个方法,可以通过重写equals方法达到比较内容的目的
 
4) When will you use Comparator and Comparable interfaces?
比较大小有的很容易,比如说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 unchecked exceptions?
我不知道什么叫checked 和unchecked exception,我只知道有check exception 和runtime exception,前者必须用try catch来处理的,后者不需要,比如数组越界之类和除以0这样的异常就是runtime exception。
 
7) What is the difference between final, finally and finalize?
这个太普通了,要写起来也太多了,只说一下finally的时候也可以没有catch,但是必须有try
finalize方法在对象被回收时调用,但是被调用的时候不代表一定马上就被回收,且他只会执行一次,比如说自己手动调用一次以后,等他被回收的时候也不会被执行了。

【Java企业版】
8) What is the difference between web server and app server?
web server: 就是提供一个网站的,比如apache,IIS等,处理一个http 请求,将静态网页或者图片什么的发回去
app server:可以执行程序的,比如说tomcat什么的。
这也是我瞎掰的。。。觉得自己说的不够清楚。。
 
9) Explain the Struts1/Struts2/MVC application architecture?
这个要写就太多了,就是模型-视图-控制三层架构,比如Struts2中,FilterAction对应着Control,Action返回的那些result对应着视图,strut2支持的视图层就多了,比如jsp,甚至是pdf等。。。模型就对应着后来的业务逻辑吧
 
10) What is the difference between forward and sendredirect?
sendredirect重新开一个request

【一般问题】
11) How does a 3 tier application differ from a 2 tier one?
三层模型和两层模型的区别?什么业务逻辑和展示层分离等等,有效分工,有利于后期维护等等。。。
 
12) How does the version control process works?
版本控制,目前有两大类吧,CVS,SVN等属于集中式的,Git属于分布式的,目前Git很火啊。
process就是check out > update > modify > check in, 如果发现冲突那么 merge > check in.
 
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 UNION ALL?
前者去除重复记录,后者不去除
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 如果你有2Java经验并准备面试,你可能会面临一些关于项目经验问题。对于没有项目经验或只有学习项目经验的求职者来说,证明自己在Java方面的能力可能会有困难。但是,你可以通过以下几种方式来准备项目经验方面的问题。 首先,你可以在开源社区或其他学习项目中积累经验。虽然这些项目可能不是真实的商业项目,但你可以通过参与其中并贡献代码来展示你的技能和对Java的理解。在面试中,你可以详细介绍你在这些项目中的贡献和所学到的经验。 其次,你可以自己创建一个小型的Java项目来展示你的能力。这个项目可以是一个简单的Web应用程序或一个解决实际问题的工具。在面试中,你可以详细介绍你在项目中的角色、技术选择、解决的问题以及所学到的经验。 此外,你还可以参与一些开源项目或社区项目,这样你就可以与其他有经验的开发人员合作,并从他们那里学到更多。在面试中,你可以谈论你在这些项目中的贡献和所学到的技能。 最后,你可以通过学习和准备一些常见的Java面试题来提高自己的准备水平。这些面试题涵盖了Java的各个方面,包括Redis、Spring、集合、MQ、MySQL、线程、JVM等。通过熟悉这些面试题并准备相应的答案,你可以在面试中展示你对Java的理解和实践能力。 总之,虽然你可能没有真实的商业项目经验,但你可以通过参与开源项目、创建自己的项目、参与社区项目以及准备常见的Java面试题来展示你的Java能力和实践经验。这些准备将帮助你在面试中更好地回答关于项目经验问题。 #### 引用[.reference_title] - *1* *3* [如何为Java面试准备项目经验](https://blog.csdn.net/sxeric/article/details/125076925)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [JAVA面试常见问题记录(2-5经验)](https://blog.csdn.net/m0_63270506/article/details/124295807)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值