前言: 每天花一点时间进行整理知识,对一些理论上的知识进行巩固加强
ps: 尽管java是写好过于理论,但相对的一些知识还是不能不知道
---------------------------------------------------分割线---------------------------------------------------------
一.maven中不同的子项目之间是怎么管理的?
1.在maven中同一创建一个parent项目,作为父项目同一管理pom文件
2.一般我们会将一个web项目分成3个大模块.
1).core项目:核心模块,里面管理了整个项目中用到的jar包/依赖
2).website项目:面向用户的前端模块
3).mgrsite项目:面向管理人员的后端模块
3.子项目之间的相互关联通关jar包以及pom文件的管理来实现
二.maven中项目的继承依赖包可以怎么管理
1.通过parent项目中的pom.xml文件进行统一管理,在pom.xml中<dependenices></dependenices>内的所有jar包子项目都可以使 用
2.parent项目中pom.xml文件中的 <dependsManagerment>来统一管理jar的版本,子项目在使用jar包时,不需要显示版本号,maven会一级级网上找dependManagerment,在使用该标签下的版本,避免了多个子项目之间的jar版本冲突问题
ps: 默认情况下<dependsManagerment>中jar包不会被子项目继承,若子项目需要使用,可以手动添加即可,版本不用写
三.你们p2p应用是自建资金池吗?
ps:自建资金池:把用户的资金交给p2p平台自己进行管理
1.如果是,那你们怎么保证客户的资金安全
1).使用资金存管:p2p与第三方机构合作,把资金存放在第三方机构账户
2).这种模式下,第三方机构没有义务对投资人的资金进行监管,p2p平台可以随时操作资金.这种模式无法保障投资人的利益,所以该模式是不安全的
2.如果不是,那你们是怎么做的.
1).使用资金托管:p2p与第三方机构(银行/大型企业),把资金托管给第三方合作机构
2).这种模式下,p2p平台自身不参与资金的流动和去向,全由第三方合作机构进行资金的管理,对资金的使用以及去向,这些资金,只能使用于指定标的投资人.p2p在这个模式下,承担了信息中介的角色,无法直接的接触到资金,极大的保障了资金的安全以及投资人的利益保障
四.乐观锁是什么?悲观锁是什么?
悲观锁:从字面上理解,一看就是挺悲观...悲观锁每次进行对数据库的访问都会悲观的认为别人会妨碍自己,所以每次操作时都会操作的数据进行上锁,别人若想操作该数据,就必须拿到锁才能进行操作. 一般使用于传统的关系型数据库,常见的例如:行锁,表锁...
乐观锁: 每次进行对数据库的操作,都乐观的认为别人不会对要操作的数据进行修改,所以在执行操作时,其他的人都可以对改数据进行操作,但是乐观锁在每次提交事务时,都会带上版本号,用来区分数据有没有被别人修改过. 但版本号不对时,就回进行事务的回滚,在根据情况来重新进行提交事务. 一般作用于 多读少写的应用
优缺点:乐观锁适用 写 比较少的情况,即时数据很少发生冲突,这样也可以省去了开锁的成本. 但如果经常发生冲突,此时应用层会不断的 retry(重试),这样反而降低了性能,此时使用悲观锁较合适
五. 请聊聊servlet中的监听器.
servlet中有八个监听器,但常用的只有三个..
1.ServletContextListener: 监听是否创建或销毁了一个上下文对象
contextInitialized(ServletContextEvent src);
contextDestroyed(ServletContextEvent src);
2.HttpSessionListener: 监听 web网页并发了多少用户
sessionCreated(HttpSessionEvent se);
sessionDestroyed(HttpSessionEvent se);
3.ServletRequestListener:监听每一次请求,以便建立日志记录
requestDestroyed(ServletRequestEvent sre);
requestInitialized(ServletRequestEvent sre);