Fork me on GitHub

面试手札

tomcat
context.xml在/conf下和/conf/catalina/{hostName}下和再下一级的/${webappName}.xml
JDK
volatile在汇编中插入内存屏蔽指令是的读直接读主内存、写的话,立刻刷新主内存,读写原子性。
线程池拒绝策略有:1、抛异常2、丢弃3、丢弃队列中待最久的任务4、交给调用者线程处理
并发集合:linkedhashmap按插入有序,或最近使用、concurrentskiplisthashmap有序
class.forName加载、并初始化,classLoader.loadClass加载
自旋锁:占用CPU时间,不引起线程状态变化、适用竞争不激烈的情况
公平锁/非公平锁:unsafe类
ClassPath:查找user classes, 可以每个应用定义不同,查找tool.jar、lib目录
加载器:启动类加载器(rt.jar)->扩展类加载器(ext/)->应用类加载器(根据classpath)
数据库
事务隔离级别:Read uncommitted、Read committed(Oracle)避免脏读、Repeatable read(Mysql)、Serializable避免幻读
spirng
事务传播:required加入事务(如果已经有),requiredNew创建新事务
ioc
作用域:singleton、prototype、request、session、global-session
<bean id="xxx" class="yyyy">
    <constructor-arg ref="zzz"/>
    <constructor-arg value="aaa"/>
</bean>
<bean id="xxx" class="yyyy">
    <property name="zzzz" ref="aaaa" />
</bean>
另外还有静态工厂和实例工厂
AOP
before、afterReturning、afterThrowing、after、 around
匹配表达式
java.lang.String    匹配String类型;  
java.*.String       匹配java包下的任何“一级子包”下的String类型;  
如匹配java.lang.String,但不匹配java.lang.ss.String  
java..*            匹配java包及任何子包下的任何类型;  
                  如匹配java.lang.String、java.lang.annotation.Annotation  
java.lang.*ing      匹配任何java.lang包下的以ing结尾的类型;  
java.lang.Number+  匹配java.lang包下的任何Number的自类型;  
                   如匹配java.lang.Integer,也匹配java.math.BigInteger
<aop:config>
     <aop:pointcut id="yyy" expression="execution(public * com.invicme.apps.aop.advisor.ArithmeticCalculateImpl.*(..))"/>
     <aop:advisor advice-ref="xxxx" pointcut-ref="yyy" />
</aop:config>
<aop:config>
    <aop:aspect ref="xxx">
        <aop:before pointcut="execution(** com.invicme.apps.aop.advisor.perform(..))" method="yyy"/>
    </aop:aspect>
</aop:config>
DispatcheServlet
FrameworkServelet.doGet->processRequest->DispatcheServlet.doSerivice->doDispatch->getHandler、getHadndlerAdapter->前拦截器链->调用handler得到ModelAndView->后拦截器链
 
Mybatis
#和$的局别,#是加引号,有效防止sql注入
JVM
GC root:方法运行时,方法引用的对象,类静态变量引用的对象,类中常用引用的对象,native方法中引用的对象
活动的thread引用的变量,系统类(比如java.util.*)
分析内存快照:jmap导出,jhat、Visual VM、MAT查看
设计模式
责任链模式:要么自己处理,要么给下一个处理
模板方法模式:定义模板方法,具体方法,钩子方法。应用:HTTPServlet,service为模板方法
订阅、发布模式:事件注册,通知
posted @ 2017-06-16 14:40  grass_草  阅读(250)  评论(0编辑  收藏  举报