遇到的面试题

问题描述

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吧

时间: 2024-11-08 19:06:21

遇到的面试题的相关文章

一个面试题引发的血案

  今天去奥博的天(objectival)面试遇到了这样的 一道的机试题       题干大致如下:              有关税率的问题: 一般的商品要交的消费税,单除了 医药,书籍,食品之外 不交税,他的税率是10%, 还有的就是 进口税 ,进口税 税率是5%,  .              测试用例通过xml来存放数据,             要求 本面试题完全使用了面向对象的方式来实现. 来计算商品的税收,并且商品税收是进行舍入0.05的操作,如13.14舍入是13.15, 60

一些面试题,整理自网络,就不一一帖原址了

腾讯面试题:tcp三次握手的过程,accept发生在三次握手哪个阶段? 答accept发生在三次握手之后. 第一次握手:客户端发送syn包(syn=j)到服务器. 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个ASK包(ask=k). 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1). 三次握手完成后,客户端和服务器就建立了tcp连接.这时可以调用accept函数获得此连接.   const的含义及实现机制,比

教你如何迅速秒杀掉:99%的海量数据处理面试题

作者:July 出处:结构之法算法之道blog   前言    一般而言,标题含有"秒杀","99%","史上最全/最强"等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结.     毕竟受文章和理论之限,本文将摒弃绝大部分的细节,只谈方法/模式论,且注重用最通俗最直白的语言阐述相关问题.最后,

[经典面试题][谷歌]一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素

题目 一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n)时间. 思路一 寻找重复元素,很容易想到建立哈希表来完成,遍历一遍数组就可以将每个元素映射到哈希表中.如果哈希表中已经存在这个元素则说明这就是个重复元素.这种方法可以很方便的在O(n)时间内完成对重复元素的查找.可是题目要求在O(1)的空间.因此采用哈希表这种解法肯定在空间复杂度上是不符合要求的.题目中数组中所以数字都在[0, n-1]区间范围内,因此哈希表的大小为n

[经典面试题]在O(1)时间删除链表结点

[题目] 给定链表的头指针和一个结点指针,在O(1)时间删除该结点.链表结点的定义如下: struct ListNode {     int        value;     struct ListNode*  next; }; 函数的声明如下: void DeleteNode(ListNode* head,ListNode* node); [思路] 这是一道广为流传的Google面试题,能有效考察我们的编程基本功,还能考察我们的反应速度,更重要的是,还能考察我们对时间复杂度的理解. 在链表中

sql-进行遇到的一个SQL 面试题

问题描述 进行遇到的一个SQL 面试题 我现在有两张表 一个用户表:user (id name age) 一个产品表:product(id name)现在有一个需求 用户可以对产品添加任何属性: 如用户想添加产品的来源地 然后用户能够查询到该属性和原有的属性其他用户不能查到添加的属性; 请问这个表要怎么设计 可以添加任何字段和表结构; 解决方案 可以给表增加如下字段1,版本 :可以查询以前内容2,属性名称 :可以增加任意属性3,属性内容:3,用户权限:只限某个用户查询 解决方案二: 产品表:pr

[经典面试题]将字符串里的小写字母转换成大写的。 要求不通过比较

[题目] 将字符串里的小写字母转换成大写的. 要求不通过比较 --------腾讯校招 [思路] a~z的ascii码:97~122 也就是:1100001~1111010 A~Z的ascii码:65~90 也就是: 1000001~1011010 通过判断从低位数第五位是否是0,1而得到是小写字母还是大写字母 [代码] /********************************* * 日期:2014-11-21 * 作者:SJF0115 * 题目: 将字符串里的小写字母转换成大写的.

c++-一道C++面试题,不知道怎么考虑

问题描述 一道C++面试题,不知道怎么考虑 昨天去面试,有道题目不知道怎么考虑,哪位帮忙看下,指点一二? 一个超市有5个收银台,营业时间早8点晚8点,闲余时间是12:30-13:30,此时客人不用排队可以直接结账:繁忙时间16:30-19:00,此时每个收银台都是排满人的,假设买个队伍最多10人:求计算当天某个客人出现在2号收银台队伍里的第3个位置上的概率,写出过程和结果. 解决方案 12:30-13:30 结账 队伍0人 这时不可能出现在队伍第3人 概率为0 16:30-19:00 结账队伍1

【试练】某公司面试试题

该公司笔试题就1个,要求在10分钟内作完. 题目如下:用1.2.2.3.4.5这六个数字,写一个main函数,打印出所有不同的排列, 如:512234.412325等,要求:"4"不能在第三位,"3"与"5"不能相连.请问这题怎么做呢?     以前学过全排列的实现方法,但是记不太清,因为数据比较少,我用递归解决了: 答案组合很多,就不一一贴出了     代码: #include<stdio.h> #include<string

百度面试题

百度面试题,仅提供一些参考.   1 完成函数 size_t foo(unsigned int *a1, size_t al1, unsigned int* a2, size_t al2) 其中a1和a2都为无符号数组,al1和al2为数组的长度,数组的长度为偶数. 无符号数组由一对数字区间组成. 如下例: a1 为 0,1,3,6,10,20 a2 为 0,1,20,50,4,5 则 a1表示以下区间[0,1] [3,6] [10,20] a2表示以下区间[0,1] [20,50] [4,5]