总结
来源:互联网 发布: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有什么区别。
格式的文本用来自动生成源代码)的通用工具。它是为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 认证是开源倡议的认证标识。
- 总结
- 总结
- 总结
- 总结
- 总结!
- 总结
- 总结.
- 总结。
- 总结
- 总结
- 总结
- 总结
- 总结
- 总结
- 总结
- 总结
- 总结
- 总结
- B/S和C/S的区别
- 浅谈Bootstrap标签页
- Android Service 小结
- 二叉检索树的C++实现
- 随机生成1024个数,用指针进行排序,并实现二分查找
- 总结
- POJ 3745 : Training little cats(矩阵快速幂加优化)
- 哈希表等概率情况下查找成功的平均查找长度
- Java中使用IO流实现大文件的分裂与合并
- 知识点:page visibility (页面可见性)
- AndroidStudio下载、配色以及初始化配置
- Android 掌握自定义LayoutManager(二) 实现流式布局
- java非访问修饰符
- 使用caffe框架利用faster-rcnn来训练自己的数据集