JAVA面试题

1:虚拟机机制

每个操作系统有不同的机制;

 

2:代码安全性检查

第一步:类加载器(classloader 把class文件加载到JVM)

第二步:字节码校验器 (try catch 的捕获,内存泄漏)

第三步:运行的解析器(解析class文件)

 

3:垃圾回收机制

本来是个系统的线程;finalize()就是专门用来实现回收机制的;

定义:当垃圾回收器确定不存在对该对象更多的引用时,由对象的垃圾回收期调用该方法。子类重写finalize()方法,以配置系统资源或执行其他资源。调用finalize()并不会马上执行,如果内存充足的情况下就不会马上执行。

其中new Demo就是垃圾,Demo demo=new Demo()不是垃圾

垃圾回收线程跟主线程运行时并列的

4:关于request,response,session,application

request and response:每个电脑访问一个网站的流程就是当你输入完网址后按回车就是一个request请求,所有操作都正确的话,网站服务器就会response回电脑;

session:如果长期的一个request and response就会形成一个会话,就是session。其中会话有session,cookie;

application:只要tomacat一直开着,数据就不会消失

内置对象就是在JSP里面,不用声明就可以使用 的对象;

在JSP页面里:

demo1.jsp

<%

  request.setAttribute("request","request data");

  session.setAttribute("session","session data");

  application.setAttribute("application","application data");

%><a href ="demo2.jsp"></a>

demo2.jsp

<%

  <%=request.getAttribute("request") %>

<%=session.getAttribute("session")%>

<%=application.getAttribute("application")%>

%>

request:每次请求都会生成一个新的request对象

结果:

session:session跟application的生命周期不是包含关系,而是交叉关系。每次打开浏览器就是新建一个sessionID,以前的session依然存在,但是会使用新生成的session,30分钟没有再次使用就会关闭。

 结果:

 

 

 application:可以实现跨机;例如:服务没有关掉的前提下,使用两个不同浏览器(相当如两台不同电脑),第二个浏览器进入该地址的时候,application data依然存在的,但是session data就不存在。重启服务不会影响到session。

  保持页面在demo2.jsp前提,重启服务,刷新页面。

结果:

 

posted @ 2016-12-09 22:39  IanLan  阅读(190)  评论(0)    收藏  举报