面试

来源:互联网 发布:电吉他内录软件 编辑:程序博客网 时间:2024/05/23 00:04

本文全部为作者的记忆,略有偏差请指出,不欢迎喷子,有种你tm来打我?
j2EE
xml解析 sax dom
sax 一行一行解析,dom全部加载~(xPath什么鬼?也就是一个小语言)
————————————————————我是分割线————————————————————————
框架
struts2 核心是preparedandExcuteFilter 还有ognl 也就是值栈
拦截器的调用源码上有个invoke方法,返回值是调用其本身
递归调用拦截器,判断是否有下一个,request进入的时候是123,返回的时候是321
模型驱动 属性驱动
与SpringMVC的区别,
spring大法好,struts2退灭保,
springmvc在参数上写啥就能要到啥,不跟你墨迹啊,注解开发,spring集成的更容易,自家人一家亲啊,配置文件随便写写就好咯。
struts2还得用ActionSupport去拿request,配置文件和注解都写一堆,别让我手写,CV大法好!写个重定向要死要活,瞅瞅人家springmvc分分钟return字符串就搞定了,更别说上传下载了,说多了都是泪,
mvc是方法级别的,struts2是类级别的,分分钟完爆啊
————————————————————我是分割线————————————————————————
spring
ioc di 自家人嘛 ,看的方面不同而已咯,丫就一大工厂嘛,jvm的活计被spring抢了创建饭碗那就是ioc咯,丫就一大工厂嘛,自家可怜的小变量被spring怪蜀黍给搞出来了那就是di
aop 事务控制和打印日志,切入点,切面,执行的那个excute的表达式,谁告我是几个*,
注:此问题可以引申到jdk的动态代理
proxy.getNewInstence(接口,classloader,new handle(){
public ... invoke(){
//......
}
});


定时器!Q打头z结尾那玩意儿!定时任务嘛,七个参数有俩互斥的,就酱
————————————————————我是分割线————————————————————————
hibernate与mybatis区别
hibernate完全ORM框架,封装死死的,完全调用对象,小白爽翻咯,用久了苦逼的问题多得是 ,我就想知道超过千万级,关联表在五张一张,你怕不怕?hibernate.cfg.xml主配置,每个model还tm得自己写个映射文件,累不累?sql这货拼出来的玩意儿很难优化,性能反正就那德行了,给hibernate调优的大神跪了
二级缓存,随便找个缓存jar丢到工程里,比如ehcache,主配置文件丢一个,哪里想用再声明一下,
1级缓存是session级别的,2级缓存是sessionFactory级别的
mybatis不完全ORM
写个接口,generator写一个,咔咔的xml就给你生成了,分分钟解决基础性的问题。随便自由发挥sql调用,麻麻再也不用担心我这死乞白赖的对着hibernate了


servlet 四大域对象 page request session application,随便说说
转发是自家玩的,request好使,可惜只能在自家服务器内,问能不能转发到百度,首先你得混入百度
重定向是找外人帮忙,request不好使了,爱找谁找谁,无所谓~
————————————————————我是分割线————————————————————————
集合体系
collection 单列集合
list 存入与取出的顺序一致 可以重复元素
vector线程安全 数组结构,
ArrayList 数组结构,初始长度20(我也忘了多少了),每次添加元素前会check一下底层object[]长度够不够,不够就new一个原数组长度1.5倍的数组,原来的东西导入新的数组,查找速度嗷嗷的
LinkedList 链表结构,每个元素都会有前一个元素和后一个元素的标记,增删嗖嗖的
再问你就跟他扯queue,队列懂不?先进先出,
set 存入与取出的顺序不一致(有例外) 不可以重复元素
TreeSet 二叉树结构,也就是红黑树嘛,在构造方法可以传个compator匿名实现类,作为判断的条件
hashSet hash表结构,hash在Java中计算其实可以算是计算出来的值还得加个17还是31记不准了,不同的分配的内存地址不同,相同的即链表结构往后排
LinkedHashSet 存入和取出顺序一样,分分钟解决唯一有序的需求~
————————————————————我是分割线————————————————————————
双列集合
map
hashMap
TreeMap
linkedhashMap
数据结构不重复了,絮叨!
hashMap与hashTable区别
hashMap可以放null值null键 线程不安全 父接口是map
hashTable在put中做判断,你敢放null的玩意儿丢你一脸异常,线程安全 父接口是distionory
这个世界上本来没有Set 当Map阉割了没了value,就有了map,源码就这么写的,别问我为什么,我还想静静呢
其实从某种角度来说
List和set都是可以看作map的阉割版,List可以看作key是数字且从0开始自增的map,get(index),可以这么理解咯
————————————————————我是分割线————————————————————————
gc也就是垃圾回收机制,程序猿是无权调用的,只能推荐那哥们动动,人家想静静你也没脾气
三大类加载器 bootstrapClassLoader,extClassLoader,appClassLoader 查找本身之前是需要先请求父级查找的,父子顺序就是前面的顺序,bootstrap是c++写的,别调用了,那玩意儿就是个null,Java这种语言永远配不上高大上的c++(玩笑话,非引战).
jvm运行一个hello world程序需要好几个线程呢
main咱就不废话了
final...记不住 反正是垃圾回收机制的线程,
提供跨平台性的线程有一根,我tm也不记得叫啥了
还有一个运行jvm的线程,你猜我记得名字不?
————————————————————我是分割线————————————————————————
设计模式,单例 懒汉饿汉,然并卵
适配器,省的实现定义了一百多个方法的接口,也给abstract类中没有抽象方法提供了有力的例子证明
责任链,拦截器,过滤器就这玩意儿
工厂,xml解析器,
包装,bufferInputStream就是,自己查api去,谁鸟你
————————————————————我是分割线————————————————————————
IO
输入流输出流
字节流最多用的
字节流 也就传输中文用用
缓冲流 包装一下 又是一条好汉
还有各种的给行加行号的
内存数组的,完全内存中转换的
————————————————————我是分割线————————————————————————
面向对象
重写重载
重写是子类重写父类的方法 方法名 参数一致
重载是同类不同参数 方法名一致的
三大特征 封装 继承 多态
接口
只有方法名返回值以及参数 默认public 可以继承接口 可以多实现
抽象类
可以写抽象方法和普通方法,不能被new,
————————————————————我是分割线————————————————————————
多线程
创建 thread类 runnable接口 threadpoolExcuter类
前俩实现run()方法,后一个直接调用,
池的概念是预创建好,以后要用直接取出来,不用了也不是销毁,是放回去,理解为一个set就好
wait sleep
wait不用参数,需要notify唤醒,释放执行权
sleep需要参数long时间,不释放执行权,典型占着茅坑不拉屎

0 0
原创粉丝点击