很久没来预览了,那时刚好没事预览一则,不晓得已经开始预备复试的爸爸妈妈有没错失啊?的确是没,即使AgF四还没来,去年快快乐乐过节,下月组织工作来两个丰收!
1、SpringMVC的组织工作业务流程?
(1) 使用者推送允诺至后端驱动器DispatcherServlet
(2) DispatcherServlet接到允诺初始化HandlerMappingCPU映射器。
(3) CPU映射器依照允诺url找出具体内容的CPU,聚合CPU第一类及CPU圣夫龙(假如有则聚合)通通回到给DispatcherServlet。
(4) DispatcherServlet透过HandlerAdapterCPU转接器初始化CPU
(5) 继续执行CPU(Controller,也叫后端驱动器)。
(6) Controller继续执行顺利完成回到ModelAndView
(7) HandlerAdapter将controller继续执行结论ModelAndView回到给DispatcherServlet
(8) DispatcherServlet将ModelAndView传予ViewReslover快照解释器
(9) ViewReslover导出后回到具体内容View
(10) DispatcherServlet对View进行渲染快照(即将模型数据填充至快照中)
(11) DispatcherServlet响应使用者
2、垃圾回收的优点和原理。并考虑2 种回收机制。
答:Java 语言中两个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java 程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java 中的第一类不再有“作用域”的概念,只有第一类的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为两个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没使用的第一类进行清楚和回收,程序员不能实时的初始化垃圾回收器对某个第一类或所有第一类进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。
3、jsp 有哪些动作?作用分别是什么?
答:JSP 共有以下6 种基本动作:
jsp:include:在页面被允诺的时候引入两个文件;
jsp:useBean:寻找或者实例化两个JavaBean。;
jsp:setProperty:设置JavaBean 的属性。;
jsp:getProperty:输出某个JavaBean 的属性;
jsp:forward:把允诺转到两个新的页面;
jsp:plugin:依照浏览器类型为Java 插件聚合OBJECT 或EMBED 标记。
4、如何用Java实现阻塞队列?
首先,我们要明确阻塞队列的定义:
等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。 阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。
阻塞队列的两个简单实现:
“`
public class BlockingQueue {
private List queue = new LinkedList();
private int limit = 10;
public BlockingQueue(int limit){
this.limit = limit;
}
public synchronized void enqueue(Object item)throws InterruptedException {
while(this.queue.size() == this.limit) {
wait();
}
if(this.queue.size() == 0) {
notifyAll();
}
this.queue.add(item);
}
public synchronized Object dequeue() throws InterruptedException{
while(this.queue.size() == 0){
wait();
}
if(this.queue.size() == this.limit){
notifyAll();
}
return this.queue.remove(0);
}
}
“`
在enqueue和dequeue方法内部,只有队列的大小等于上限(limit)或者下限(0)时,才初始化notifyAll方法。假如队列的大小既不等于上限,也不等于下限,任何线程初始化enqueue或者dequeue方法时,都不会阻塞,都能够正常的往队列中添加或者移除元素。