中高级 JAVA 面试 (以通俗易懂的学习方式,搞定面试)

  • ​​​​​​简述string对象,StringBuffer、StringBuilder区分(初、中级)

这是个经常被问及的问题,划重点(无论初级、中级、高级)必考题,很有可能就是上来就问这个:

string是final的,内部用char数组存储数据,拼接效率比较低;实际上是通过建立一个StringBuffer,让后台调用append(),最后再将StringBuffer toSting(),每次操作Sting 都会重新建立新的对象来保存新的值.这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的。

StringBuffer也是final,线程安全的。采用一个char数组来保存需要append的字符串,当char数组长度不够时,会动态扩展。

StringBuilder,线程不安全

概括区别1:运行速度StringBuilder>StringBuffer>string

概括区别2:属性

String 是字符串常量,StringBuffer 字符串变量(线程安全),StringBuilder 字符串变量(非线程安全)

  • web请求与响应

废话不多说,先上图,整个服务请求的结构一清二楚。这也是一个面试者会经常问及的一个问题,不需要回答很仔细,回答以下5条基本能达到面试官要求,会继续问下一个问题

中高级 JAVA 面试 (以通俗易懂的学习方式,搞定面试)

1.(开始)客户发送请求

2.前段控制器接受请求(获取到请求地址)

3.通过HandlerMapping,返回对应的handler(告诉控制器要在哪个handler中处理)

4.请求HandlerAdatper执行(Controller,Service,DAO,数据库交互等一系列处理),并返回ModelAndView

5.(结束)页面渲染