Srpngmvc
1、SpringMVC的工作流程
流程 :
1、用户发送请求至前端控制器DispatcherServlet
2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4、DispatcherServlet调用HandlerAdapter处理器适配器
5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
6、Controller执行完成返回ModelAndView
7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9、ViewReslover解析后返回具体View
10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
11、DispatcherServlet响应用户
第一家公司面试2018-03-30(没答出来的)
1,wait()方法 和 sleep ()方法的区别
执行wait()方法 会释放 机锁,其他线程可以方法同一机锁的同步代码块
sleep()方法,则不会立即释放锁,需要线程休眠完锁才会被释放
详细:https://www.cnblogs.com/loren-Yang/p/7538482.html
2,java 中会存在内存泄漏吗
会,java虽然有垃圾回收机制(GC),但是有一些对象GC是无法回收的(答到这,没举例说明。)
比如有一些对象,创建了一个对象一直被引用,却没有被使用,GC是无法回收的。
详细:https://www.cnblogs.com/Berryxiong/p/6220890.html
3,打印昨天当前时刻。(写过,由于是网上复制的,没有认真看。在项目中对session设置只有七天的有效期用到了)
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, -1);
String date2Str = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(c.getTime());
System.out.println(date2Str);
4,sql语句中删除表 drop、truncate和delete的使用场景
drop,删除表结构和数据,就是不需要这个表了
delete,删除表的部分数据,用where子句加上条件
truncate,是删除表的所有数据
5,写出下面程序的运行结果
public class Fu {
static {
System.out.print(1);
}
public Fu() {
System.out.print(2);
}
}
public class Zi extends Fu {
static {
System.out.print("a");
}
public Zi() {
System.out.print("b");
}
}
public class test {
public static void main(String[] args) throws Exception {
test2();
}
public static void test2() {
Fu fu = new Zi();
fu = new Zi();
}
}
答案:1a2b2b
父类静态代码块 > 子类静态代码块 java虚拟机加载类时,就会执行该块代码。
父类构造函数 > 子类构造函数 (先有父亲,后有孩子)