总结

来源:互联网 发布:nginx lua redis 限流 编辑:程序博客网 时间:2024/06/10 12:10

这几天遇到的面试题,我没回答上或者回答不够好,回来做做总结。 


1. tomcat运行时的顺序是怎样的?

转载地址:http://shuhucy.iteye.com/blog/1900231

Tomcat启动时类加载顺序 
第一阶段: 
JVM启动相关 
1.$JAVA_HOME/jre/lib/ext/*.jar  
2.环境变量CLASSPATH中的*.jar和*.class 

第二阶段: 
TOMCAT启动相关 
1.$CATALINA_HOME/common/classes/*.class  
2.$CATALINA_HOME/commons/endorsed/*.jar   
3.$CATALINA_HOME/commons/i18n/*.jar   
4.$CATALINA_HOME/common/lib/*.jar文件。   
注意:JDBC驱动之类的jar文件可以放在这里,这样就可以避免在server.xml配置好数据源却出现找不到JDBC Driver的情况  
5.$CATALINA_HOME/server/classes/*.class   
6.$CATALINA_HOME/server/lib/*.jar   
7.$CATALINA_BASE/shared/classes/*.class   
8.$CATALINA_BASE/shared/lib/*.jar 

第三阶段: 
CONTEXT(WEB应用)启动相关   
1.各自具体的webapp:   /WEB-INF/classes/*.class   
2.各自具体的webapp   /WEB-INF/lib/*.jar   

Tomcat运行时类载入或查找顺序 

1、Tomcat自定义载入器(一般为WebappClassLoader)本地缓存及ClassLoader缓存 
2、Bootstrap class loader载入(在其安全目录内) 
3、Extension class loader载入(在其安全目录内,比如这里为:$JAVA_HOME/jre/lib/ext/*.jar ) 
4、System class loader    (在其安全目录内,比如这里为:CLASSPATH/)
 
注意:以上要优先主要是基于安全,避免类似自定义java.lang.Object优先于JDK的java.lang.Object被加载 
5、/WEB-INF/classes/*.class    
6、/WEB-INF/lib/*.jar    
7、$CATALINA_HOME/common/classes     
8、$CATALINA_HOME/common/endorsed/*.jar     
9、$CATALINA_HOME/common/i18n/*.jar     
10、$CATALINA_HOME/common/lib/*.jar     
11、$CATALINA_BASE/shared/classes     
12、$CATALINA_BASE/shared/lib/*.jar 


2  spring怎么整合Tomcat?

http://aijuans.iteye.com/blog/1847071   这里讲的很好,就不贴过来了。


3   jdk1.6、1.7和1.8有什么区别。

http://blog.csdn.net/sysmedia/article/details/53608681 看这里。


4  mysql操作100w条数据会有什么问题?
???

5 freemarker由模版对象转换成值的前后,会做哪些处理? 
???
(以下问文档择录)
FreeMarker 是一款模板引擎: 即一种基于模板、用来生成输出文本(任何来自于HTML
格式的文本用来自动生成源代码)的通用工具。它是为Java程序员提供的一个开发包, 或者
说是一个类库。 它不是面向最终用户的,而是为程序员提供的一款可以嵌入他们所开发产品
的应用程序。
FreeMarker 实际上是被设计用来生成HTML页面,尤其是通过实现了基于MVC(Model
View Controller
,模型-视图-控制器)模式的Java Servlet 应用程序。 使用MVC模式的动态页面
的设计构思使得你可以将前端设计师
(编写HTML页面的人员)从程序员中分离出来。 那么,
所有人各司其职,发挥其最擅长的一面。 网页设计师可以改写页面的显示效果而不受程序员
编译代码的影响,因为应用程序的逻辑
(这里是Java程序)和页面设计(这里是FreeMarker
)已经被分开了。 页面模板代码不会受到复杂程序代码的影响。 这种分离的思想即便对一
个程序员和页面设计师是同一个人的项目来说也都是非常有用的,因为分离使得代码保持简
洁而且易于维护。
尽管
FreeMarker 也拥有一些编程能力,但是它却不像PHP那样,是的一种全面的编程
语言。 反而,
Java 程序准备的数据来进行显示(比如SQL数据库查询)FreeMarker仅仅是使
用模板生成文本页面来呈现已经准备好的数据而已。
FreeMarker 不是 Web 开发的应用程序框架。它是一个适用于 Web 应用程序框架中的组
件,但是
FreeMarker 引擎本身并不知道HTTP协议或Java Servlet的存在。 它仅仅来生成文
本内容。 既然是这样,它也非常适用于非
Web 应用程序的开发环境。 只是要注意的是, 我
们使用
FreeMarker 作为视图层的组件,是为了给诸如Struts这样的Model 2 应用框架提供现
成的解决方案。
FreeMarker 本身是免费的, 它基于BSD规则的许可协议。它也是OSI 认证的开源软件。
OSI 认证是开源倡议的认证标识。


6.  http请求头有那些字段
http://nicegege.iteye.com/blog/1927124


0 0
原创粉丝点击