问题描述
1.假设场景是一个登录操作,点击登录开始访问后台,请输出后台从接收请求到返回结果给前端的耗时。后台仅用了sevlet并没有用到任何框架。2.try{System.out.println(1);try{System.out.println(2);return;}catch(Exceptione){System.out.println(3);}finally{System.out.println(4);}System.out.println(5);}catch(Exceptione){System.out.println(6);}finally{System.out.println(7);}输出嘚是什么。3.在Spring事务管理的A方法内部执行调用另外一个方法B时,对B进行异常捕获,在B发生异常后,什么原因发现A居然也回滚了,解释原理。4.IOC里面嘚Bean是交给spring去管理的,请问如何知道spring对某个类已经初始化完成了5.有一个class类里面有4个方法ABCD都加上线程安全,启动2个线程去同时访问A,可以访问吗?一个访问A,一个去访问B可以同时访问吗?6.select*fromtbaleftjointb2bona.id=b.idanda.name=b.name与select*fromtbaleftjointb2bona.id=b.idwherea.name=b.name返回结果一样吗,有什么区别7.有一个事物管理的程序是插入表操作,你对此表做了触发器,如果发生了回滚,请问触发器是否依然触发了。
解决方案
解决方案二:
卒
解决方案三:
没有遇到的问题
解决方案四:
都是操作性很强的题目
解决方案五:
坐等大牛出来解答,非常强烈期待正解
解决方案六:
好冷清哦!都回答下,能回答一个是一个,不会的,就顶一下,这是散分贴了。其实我已经回来后跟同学讨论过,已经有了一些参考答案了
解决方案七:
引用5楼tangyu477的回复:
好冷清哦!都回答下,能回答一个是一个,不会的,就顶一下,这是散分贴了。其实我已经回来后跟同学讨论过,已经有了一些参考答案了
求公布答案哦
解决方案八:
学习中...
解决方案九:
124570.0看起来不像正确答案啊
解决方案十:
1.包含网络耗时吗?还是仅仅只是后台处理的耗时?2.1,2,4,7
解决方案十一:
3.事物应该是针对线程级的吧,如果我设计事物的话!当然我仅仅只是猜测.
解决方案十二:
4.SprinfIOC初始化Bean,如果这个类实现了Spring提供的初始化接口就可以知道实例化完成了;其实就是简单的事件模型机制.
解决方案十三:
第二题12457第五题不能同时访问A可以一个访问A一个访问B第六题两个语句输出的不一样。第一条语句是用a.id=b.idanda.name=b.name作为条件去a表中查询,如果有的话就输出,如果没有的话在a表中补null,最后的结果是a表所有字段都输出出来了,之后有的字段是null第二条语句是用a.id=b.id作为条件去a表中查询,如果有的话就输出,如果没有的话a表补null,最后用a.name=b.name作为条件再一次进行筛选,将符合条件的字段输出出来。不知道说的对不对,大家指导一下。
解决方案十四:
引用12楼dqlfhuahang8231的回复:
第二题12457第五题不能同时访问A可以一个访问A一个访问B第六题两个语句输出的不一样。第一条语句是用a.id=b.idanda.name=b.name作为条件去a表中查询,如果有的话就输出,如果没有的话在a表中补null,最后的结果是a表所有字段都输出出来了,之后有的字段是null第二条语句是用a.id=b.id作为条件去a表中查询,如果有的话就输出,如果没有的话a表补null,最后用a.name=b.name作为条件再一次进行筛选,将符合条件的字段输出出来。不知道说的对不对,大家指导一下。
第二题没有5漏看了一个return
解决方案十五:
1.这个要使用工具分析跟踪才能知道确认问题2.输出1,2,4,73.a也捕获异常了.spring的事务管理是按照异常来判断是否回滚....4.spring有接口可以查询bean是否注册....也可以调用测试,看是否抛出异常来判断..5.同时访问A,不可以访问/一个访问A,一个去访问B可以同时访问6.返回结果好像一样..7.默认来说,通常数据库触发器也会回滚..不同的数据库也许有不同的实现..
解决方案:
6,不一样,第一句把a表里的数据全搜出来,第二句有where只搜出一部分
解决方案:
引用3楼defonds的回复:
都是操作性很强的题目
版主来回一个~~~
解决方案:
引用8楼csuoo的回复:
124570.0看起来不像正确答案啊
呵呵你需要加强学习了!
解决方案:
引用9楼littlebrain4solving的回复:
1.包含网络耗时吗?还是仅仅只是后台处理的耗时?2.1,2,4,7
网络耗时不算了。从后台接收到数据到返回給客户这段时间的输出!
解决方案:
引用18楼tangyu477的回复:
Quote: 引用9楼littlebrain4solving的回复:
1.包含网络耗时吗?还是仅仅只是后台处理的耗时?2.1,2,4,7网络耗时不算了。从后台接收到数据到返回給客户这段时间的输出!
不算网络耗时的话,那就在doPost/doGet前后获取当前时间毫秒级进行加减不就完了!
解决方案:
5.同时访问A需要排队,这里加了线程同步机制;一个访问A、一个访问B应该在有交叉对象访问的时候进行同步等待吧;因为锁是锁内存的对象而不是锁方法;只要在方法体中的内存对象将会被锁住。当然仅仅只是我的猜测;求答案.....
解决方案:
引用12楼dqlfhuahang8231的回复:
第二题12457第五题不能同时访问A可以一个访问A一个访问B第六题两个语句输出的不一样。第一条语句是用a.id=b.idanda.name=b.name作为条件去a表中查询,如果有的话就输出,如果没有的话在a表中补null,最后的结果是a表所有字段都输出出来了,之后有的字段是null第二条语句是用a.id=b.id作为条件去a表中查询,如果有的话就输出,如果没有的话a表补null,最后用a.name=b.name作为条件再一次进行筛选,将符合条件的字段输出出来。不知道说的对不对,大家指导一下。
5.有一个class类里面有4个方法ABCD都加上线程安全,启动2个线程去同时访问A,可以访问吗?一个访问A,一个去访问B可以同时访问吗?有个细节漏下了C增加了一个static问:同时访问A,C,是否可以同时访问?
解决方案:
引用19楼littlebrain4solving的回复:
Quote: 引用18楼tangyu477的回复:
Quote: 引用9楼littlebrain4solving的回复:
1.包含网络耗时吗?还是仅仅只是后台处理的耗时?2.1,2,4,7网络耗时不算了。从后台接收到数据到返回給客户这段时间的输出!
不算网络耗时的话,那就在doPost/doGet前后获取当前时间毫秒级进行加减不就完了!
不能这样去回答,其实你从他后面问的问题,就应该知道,他最主要的不是答案,而且原理和实现方式,为什么要这么做。你这个回答肯定不是他想要的。
解决方案:
引用22楼tangyu477的回复:
Quote: 引用19楼littlebrain4solving的回复:
Quote: 引用18楼tangyu477的回复:
Quote: 引用9楼littlebrain4solving的回复:
1.包含网络耗时吗?还是仅仅只是后台处理的耗时?2.1,2,4,7网络耗时不算了。从后台接收到数据到返回給客户这段时间的输出!
不算网络耗时的话,那就在doPost/doGet前后获取当前时间毫秒级进行加减不就完了!
不能这样去回答,其实你从他后面问的问题,就应该知道,他最主要的不是答案,而且原理和实现方式,为什么要这么做。你这个回答肯定不是他想要的。
这里涵盖了一个技术概念(监控守卫者),说白了他需要你用设计模式来进行思考,达到职责分离的目的!如果我来做的话,我会用JAVA代理AOP统一进行实现这一功能,因为目前的需求仅仅只是在登录需要,如果以后每个请求都需要的话呢!
解决方案:
引用23楼littlebrain4solving的回复:
Quote: 引用22楼tangyu477的回复:
Quote: 引用19楼littlebrain4solving的回复:
Quote: 引用18楼tangyu477的回复:
Quote: 引用9楼littlebrain4solving的回复:
1.包含网络耗时吗?还是仅仅只是后台处理的耗时?2.1,2,4,7网络耗时不算了。从后台接收到数据到返回給客户这段时间的输出!
不算网络耗时的话,那就在doPost/doGet前后获取当前时间毫秒级进行加减不就完了!
不能这样去回答,其实你从他后面问的问题,就应该知道,他最主要的不是答案,而且原理和实现方式,为什么要这么做。你这个回答肯定不是他想要的。
这里涵盖了一个技术概念(监控守卫者),说白了他需要你用设计模式来进行思考,达到职责分离的目的!如果我来做的话,我会用JAVA代理AOP统一进行实现这一功能,因为目前的需求仅仅只是在登录需要,如果以后每个请求都需要的话呢!
嗯这个问题的答案差不多出来了。servlet里面用到了类似aop动态代理的是什么呢他想要的应该就是那个我回答的和你差不多,就想着用动态代理来模拟SPRING的AOP处理。却忘记了原本就有的简单处理方式。
解决方案:
引用12楼dqlfhuahang8231的回复:
第二题12457第五题不能同时访问A可以一个访问A一个访问B第六题两个语句输出的不一样。第一条语句是用a.id=b.idanda.name=b.name作为条件去a表中查询,如果有的话就输出,如果没有的话在a表中补null,最后的结果是a表所有字段都输出出来了,之后有的字段是null第二条语句是用a.id=b.id作为条件去a表中查询,如果有的话就输出,如果没有的话a表补null,最后用a.name=b.name作为条件再一次进行筛选,将符合条件的字段输出出来。不知道说的对不对,大家指导一下。
第五题,能回答一下为什么吗?他最主要的是想知道你怎么想的
解决方案:
求解。。。直接写return;是什么意思啊。。。
解决方案:
1,问的是代理模式,AOPcglib代理模式答出来就可以。2:1,2,4,73:同个方法中用的是同一个事物,当B出现异常是抛个调用的上层,结果从事物起点A开始回滚。4:配置bean在容器启动时候就初始化,出现异常则表明没有初始化,启动完成后加载spring配置文件,调用某个bean看出错不,2是在调用时候初始化,出现异常则没有初始化完成,3在容5:都可以访问A,只不过谁先进去了另外一个就等待释放锁。不同的线程访问不用的方法是可以的。线程访问和静态没有关系,只是和锁互斥有关,除非次方法不是线程安全的,则会引发同步问题。6:and和where的区别是,and先过滤数据再来leftjoin,where是先leftjoin然后where7:一般回滚是没有提交及没有持久化,不会触发触发器回答的不好活错误,欢迎纠正。
解决方案:
引用14楼attilax的回复:
1.这个要使用工具分析跟踪才能知道确认问题2.输出1,2,4,73.a也捕获异常了.spring的事务管理是按照异常来判断是否回滚....4.spring有接口可以查询bean是否注册....也可以调用测试,看是否抛出异常来判断..5.同时访问A,不可以访问/一个访问A,一个去访问B可以同时访问6.返回结果好像一样..7.默认来说,通常数据库触发器也会回滚..不同的数据库也许有不同的实现..
项目中应该spring用的比较多吧。问题5有个细节我漏下了5.有一个class类里面有4个方法ABCD都加上线程安全,启动2个线程去同时访问A,可以访问吗?一个访问A,一个去访问B可以同时访问吗?有个细节漏下了C增加了一个static问:同时访问A,C,是否可以同时访问?
解决方案:
学习
解决方案:
引用27楼z_yes163的回复:
1,问的是代理模式,AOPcglib代理模式答出来就可以。2:1,2,4,73:同个方法中用的是同一个事物,当B出现异常是抛个调用的上层,结果从事物起点A开始回滚。4:配置bean在容器启动时候就初始化,出现异常则表明没有初始化,启动完成后加载spring配置文件,调用某个bean看出错不,2是在调用时候初始化,出现异常则没有初始化完成,3在容5:都可以访问A,只不过谁先进去了另外一个就等待释放锁。不同的线程访问不用的方法是可以的。线程访问和静态没有关系,只是和锁互斥有关,除非次方法不是线程安全的,则会引发同步问题。6:and和where的区别是,and先过滤数据再来leftjoin,where是先leftjoin然后where7:一般回滚是没有提交及没有持久化,不会触发触发器回答的不好活错误,欢迎纠正。
第一题,servlet里用类似AOP技术的是什么?能想起来吗,他想要的答案应该是那个,虽然你这样也可以搞定,但问题有点复杂化了,虽然我和你的回答是一样。
解决方案:
引用30楼tangyu477的回复:
Quote: 引用27楼z_yes163的回复:
1,问的是代理模式,AOPcglib代理模式答出来就可以。2:1,2,4,73:同个方法中用的是同一个事物,当B出现异常是抛个调用的上层,结果从事物起点A开始回滚。4:配置bean在容器启动时候就初始化,出现异常则表明没有初始化,启动完成后加载spring配置文件,调用某个bean看出错不,2是在调用时候初始化,出现异常则没有初始化完成,3在容5:都可以访问A,只不过谁先进去了另外一个就等待释放锁。不同的线程访问不用的方法是可以的。线程访问和静态没有关系,只是和锁互斥有关,除非次方法不是线程安全的,则会引发同步问题。6:and和where的区别是,and先过滤数据再来leftjoin,where是先leftjoin然后where7:一般回滚是没有提交及没有持久化,不会触发触发器回答的不好活错误,欢迎纠正。第一题,servlet里用类似AOP技术的是什么?能想起来吗,他想要的答案应该是那个,虽然你这样也可以搞定,但问题有点复杂化了,虽然我和你的回答是一样。
servletaop这是容器监听程序,这个要去看容器源码,注册监听端口的那段程序,一般在容器启动时候就完成了,servlet是依赖容器生存的。
解决方案:
引用
1,问的是代理模式,AOPcglib代理模式答出来就可以。2:1,2,4,73:同个方法中用的是同一个事物,当B出现异常是抛个调用的上层,结果从事物起点A开始回滚。4:配置bean在容器启动时候就初始化,出现异常则表明没有初始化,启动完成后加载spring配置文件,调用某个bean看出错不,2是在调用时候初始化,出现异常则没有初始化完成,3在容5:都可以访问A,只不过谁先进去了另外一个就等待释放锁。不同的线程访问不用的方法是可以的。线程访问和静态没有关系,只是和锁互斥有关,除非次方法不是线程安全的,则会引发同步问题。6:and和where的区别是,and先过滤数据再来leftjoin,where是先leftjoin然后where7:一般回滚是没有提交及没有持久化,不会触发触发器
受益匪浅啊
解决方案:
问题1,我想到的竟然是filter,有时间再看看代理模式。
解决方案:
1,不知2,12473,事务具有穿透性,参看事务传播A具有事务,B也具有事务,设置事务的方式的存在事务就获取,则整个过程是A事务在起作用4,容器启动的适合初始化bean,1、可以在默认的bean的构造函数中打印数据查查,2,通过获取bean查看5,都不能,Java中每个对象都有一个内置锁ABD的锁称为对象锁,C静态方法上加的锁就是类锁,就是说把这个类都锁了你连new对象都不行了6,返回结果一样,参看笛卡尔积,前一个指定左连接的方式,后一个不指定(我也是只是猜测,查询效率不一样前一个快,后一个慢)7,没有触发
解决方案:
引用34楼kky2010_110的回复:
1,不知2,12473,事务具有穿透性,参看事务传播A具有事务,B也具有事务,设置事务的方式的存在事务就获取,则整个过程是A事务在起作用4,容器启动的适合初始化bean,1、可以在默认的bean的构造函数中打印数据查查,2,通过获取bean查看5,都不能,Java中每个对象都有一个内置锁ABD的锁称为对象锁,C静态方法上加的锁就是类锁,就是说把这个类都锁了你连new对象都不行了6,返回结果一样,参看笛卡尔积,前一个指定左连接的方式,后一个不指定(我也是只是猜测,查询效率不一样前一个快,后一个慢)7,没有触发
第六个结果我看了看其他人的答案我觉得我返回结果不一样,可以去试一试哦
解决方案:
解决方案:
引用33楼gagewang1的回复:
问题1,我想到的竟然是filter,有时间再看看代理模式。
为什么不呢。代理只是更原始或者说更底层的方式,而他想要的应该就是filter
解决方案:
引用35楼kky2010_110的回复:
Quote: 引用34楼kky2010_110的回复:
1,不知2,12473,事务具有穿透性,参看事务传播A具有事务,B也具有事务,设置事务的方式的存在事务就获取,则整个过程是A事务在起作用4,容器启动的适合初始化bean,1、可以在默认的bean的构造函数中打印数据查查,2,通过获取bean查看5,都不能,Java中每个对象都有一个内置锁ABD的锁称为对象锁,C静态方法上加的锁就是类锁,就是说把这个类都锁了你连new对象都不行了6,返回结果一样,参看笛卡尔积,前一个指定左连接的方式,后一个不指定(我也是只是猜测,查询效率不一样前一个快,后一个慢)7,没有触发第六个结果我看了看其他人的答案我觉得我返回结果不一样,可以去试一试哦
你可以测测,结果的确是回出现不一样的。
解决方案:
围观!!!
解决方案:
刚开始学java基础但是我知道第二题是1247执行try中的语句输出1,继续执行内层try输出2然后执行到return。但finally还要执行然后执行内层finally的代码,输出4接着是外层finally,输出7结束、
解决方案:
应该是1247吧