SSH面试题
1)spring对于依赖关系是怎么处理的,比如a创建需要b,b创建需要c,c创建需要a,spring怎么搞定这个事
2)需求service object中声明了两个dao,但是spring配置却配置了3个dao,在启动的时候会出什么问题吗
3)你们项目为JVM分配了多少内存,为什么
4)你了解JVM内存管理吗
5)map的三种遍历方式,效率上区别在哪里
6)你配置过tomcat的虚拟目录吗
7)令牌机制
9)你们项目用LikedList吗
10)你了解hash是怎么实现的吗
11)一个游戏,可以用QQ登陆,可以用盛大账号登陆,这种部署方式是什么,使用什么接口,怎么实现的
------解决方案--------------------1)spring对于依赖关系是怎么处理的,比如a创建需要b,b创建需要c,c创建需要a,spring怎么搞定这个事
这个是ioc依赖注入,一般有三种方式构造方法注入,getset注入,注解注入,其他就只能通过工厂类获取了
2)需求service object中声明了两个dao,但是spring配置却配置了3个dao,在启动的时候会出什么问题吗
spring中配置了2个dao,你用和不用都不会出现任何问题,不会因为你配置了,程序中没人引用就报错的
3)你们项目为JVM分配了多少内存,为什么
jvm默认安装的内存很小,实际项目开发中至少要1g内存,因为在32位的JDK中JVM支持的最大内存值大概在2GB左右,在64位的JDK版本中,理论上没有限制
4)你了解JVM内存管理吗
了解为空不再被使用对象或者对象生命周期结束都被视为垃圾对象,被系统自动回收,免去手动管理内存的烦恼
5)map的三种遍历方式,效率上区别在哪里
一种是entrySet迭代,效率最好最灵活什么都能拿到,一种是keySet,根据key迭代出value,不灵活,一种是values得到Collection最普通
6)你配置过tomcat的虚拟目录吗
配置过很简单,直接在配置文件里copy粘贴配置,指定项目路径,就可以,不用将项目拷贝至webapp下
7)令牌机制
令牌简言之就是记录用户第一次提交时候的一个会话编号,此编号唯一,除非关闭网页否则一直是唯一,首次访问将它记录,每次重复访问时候去比对,相同即可认为重复操作,不同则替换,一次轮询下去,称为令牌
9)你们项目用LikedList吗
很少用到,基本淘汰,效率差又烂,线程不安全,几无任何优点,不明白为什么那么多人喜欢问,自己却从来不用!!
10)你了解hash是怎么实现的吗
通俗讲hash是一种算法,常用来定位用的,我们不可能查找元素还一个一个去找的,有了它可以快速准确定位,转换规则大致就是换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里,而当使用哈希表进行查询的时候,就是再次使用哈希函数将key转换为对应的数组下标,并定位到该空间获取value,如此一来,就可以充分利用到数组的定位性能进行数据定位。简言之,知道它可以快速唯一定位就可以
11)一个游戏,可以用QQ登陆,可以用盛大账号登陆,这种部署方式是什么,使用什么接口,怎么实现的
这个是oauth2.0 认证技术通过令牌不用用户密码就能获取授权信息,跟单点登录类似,没啥新鲜的,你自己都可以做一个,腾讯,新浪不是都有,你只要活得授权就能拿到客户信息,相当于你的网站默认用别人的数据免去注册烦恼,一键登录