首页 > 编程语言 >15 个必须知道的 Java 面试问题(2年工作经验)

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

时间:2023-04-20 18:09:00浏览次数:41  
标签:web What 15 server 面试 between Java difference


【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?



前者去除重复记录,后者不去除

标签:web,What,15,server,面试,between,Java,difference
From: https://blog.51cto.com/u_16080829/6210086

相关文章

  • java CountDownLatch 实例
    一个线程等待CountDownLatch使用其await()等待其他线程完成(使用减值为0来判断是否完成)。是一个线程等待多个线程(1-N)的锁工具。以下为实例代码: packagecom.common;importjava.util.concurrent.CountDownLatch;importjava.util.concurrent.Executor;importjava.util.concurr......
  • 关于Java中对象的向上转型和向下转型
    什么是多态?同一个类调用同一个方法会产生不同的影响/结果这就是多态publicclassPet{ publicvoideat(){ System.out.println("Peteat...") }}classDogextendsPet{ publicvoideat(){ System.out.pringln("Dogeat...") } publicvoidrun(){ System.ou......
  • PAT Basic 1115. 裁判机
    PATBasic1115.裁判机1.题目描述:有一种数字游戏的规则如下:首先由裁判给定两个不同的正整数,然后参加游戏的几个人轮流给出正整数。要求给出的数字必须是前面已经出现的某两个正整数之差,且不能等于之前的任何一个数。游戏一直持续若干轮,中间有写重复或写错的人就出局。本题要......
  • 有理想的程序员必须知道的15件事
     评:作为程序员,要取得非凡成就需要记住的15件事。1.走一条不一样的路在有利于自己的市场中竞争,如果你满足于“泯然众人矣”,那恐怕就得跟那些低工资国家的程序员们同场竞技了。2.了解自己的公司以我在医院、咨询公司、物流企业以及大技术公司工作的经验来看,这一点所言不虚。不同公......
  • day 07 7.1 前端基础之JavaScript基础【一】
    前端基础之JavaScript基础【一】【1】、JavaScript的历史1992年底,美国国家超级电脑应用中心(NCSA)开始开发一个独立的浏览器,叫做Mosaic。这是人类历史上第一个浏览器,从此网页可以在图形界面的窗口浏览。但是该浏览器还没有面向大众的普通用户。1994年10月,NCSA的一个主要......
  • day 08 8.2 前端基础之JavaScript基础【三】
    前端基础之JavaScript基础【三】【1】、jQuery介绍jQuery是什么jQuery是一个快速、简洁的JavaScript框架。jQuery设计的宗旨是“writeLess,DoMore”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件......
  • day 08 8.1 前端基础之JavaScript基础【二】
    前端基础之JavaScript基础【二】【1】、json序列化和反序列化JSON:JavaScript对象表示法,是一种轻量级的数据交换格式。易于人阅读和编写。//json是一种数据格式,语法一般是{}或者[]包含起来//内部成员以英文逗号隔开,最后一个成员不能使用逗号!//可以是键值对,也可以是列......
  • 每日八股文之Java
    1、如何利用Redis实现一个分布式锁?为什么要实现分布式锁、实现分布式锁的方式理论+实操:158、缓存-分布式锁-分布式锁原理与使用哔哩哔哩bilibili实现分布式锁的方式:方案一:SETNX+EXPIRE方案二:SETNX+value值是(系统时间+过期时间)方案三:使用Lua脚本(包含SETNX+EXPIRE......
  • 关于Java中方法重载和方法重写
    方法重写是子类继承父类(默认继承Object类)后覆盖父类的方法需要保证同名同参同返回值且访问权限范围不能缩小(public>protected>default>private)publicclassFather{ publicintmethod(){ return-1; }}classSonextendsFather{ //访问范围不能小返回值方法......
  • 24道Python面试练习题
    1.简述函数式编程答:在函数式编程中,函数是基本单位,变量只是一个名称,而不是一个存储单元。除了匿名函数外,Python还使用fliter(),map(),reduce(),apply()函数来支持函数式编程。2.什么是匿名函数,匿名函数有什么局限性答:匿名函数,也就是lambda函数,通常用在函数体比较简单的函数上。......