锁定老帖子 主题:昨天面试时两道题
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (3)
|
|
---|---|
作者 | 正文 |
发表时间:2009-08-14
javatestoracle 写道 第一题用异常处理 3楼正解
据说程序catch一次异常所消耗的资源(CPU运行)比运行几千行代码消耗的资源更大,如此使用异常,是否欠妥. |
|
返回顶楼 | |
发表时间:2009-08-14
gccgg 写道 String regEx =genRegExByformat(format); Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(date); return m.find(); 弱弱的问一句:String regEx =genRegExByformat(format); 是如何实现?百度上查了下,没查到“genRegExByformat”。 |
|
返回顶楼 | |
发表时间:2009-08-14
第一题感觉用正则
第二题倾向OO,不提倡用switch |
|
返回顶楼 | |
发表时间:2009-08-14
最后修改:2009-08-14
mxswl 写道 第二题,有判断类型需求,很明显多态了.
interface IResult { int getResult(); } A extends xx implements IResult{ ... } B Extends xx implemnt...... IResult resultGentor=Factory.getObject(); return result=resultGentor.getResult(); 谢谢大家,第二题都说上面的是正解,但是程序是怎么由已知的布尔型进行最后的方法调用的呢? 是否仍然要在factory里进行相关条件的判断呢? |
|
返回顶楼 | |
发表时间:2009-08-14
最后修改:2009-08-14
YYBOB 写道 mxswl 写道 第二题,有判断类型需求,很明显多态了.
interface IResult { int getResult(); } A extends xx implements IResult{ ... } B Extends xx implemnt...... IResult resultGentor=Factory.getObject(); return result=resultGentor.getResult(); 谢谢大家,第二题都说上面的是正解,但是程序是怎么由已知的布尔型进行最后的方法调用的呢? 是否仍然要在factory里进行相关条件的判断呢? 创建个钩子 写个base的钩子类 A Extends Base implements IResult{ void result() { if(isExecuted) { ..... } } } abstract class Base{ protected boolean isExecuted=false; ...setter ...getter } |
|
返回顶楼 | |
发表时间:2009-08-14
最后修改:2009-08-14
或者自建创建写个Proxy类实现InvocationHandler创建个动态代理,在方法调用前插入一个切面,让代理来做这个逻辑判断
|
|
返回顶楼 | |
发表时间:2009-08-14
最后修改:2009-08-14
...
我是出题者 第一题 就是考DateFormat 第二题 就是考编码规范 不要那么多的if-else if-else if-else if {{{ }}}... 所以正解就是 if(isA){ return a(); } if(isB){ return b(); } if(isC){ return c(); } return DEFAULT_VALUE; 怎么那么多神经过敏的伪DP迷呢,搞那复杂? haha~~~ |
|
返回顶楼 | |
发表时间:2009-08-14
楼上正确
第一题用正则比较麻烦。 第二题只有一段代码片段,应该就是考代码风格,我也想到多态去了,呵呵。 |
|
返回顶楼 | |
发表时间:2009-08-14
最后修改:2009-08-14
dch1287 写道 ...
我是出题者 第一题 就是考DateFormat 第二题 就是考编码规范 不要那么多的if-else if-else if-else if {{{ }}}... 所以正解就是 if(isA){ return a(); } if(isB){ return b(); } if(isC){ return c(); } return DEFAULT_VALUE; 怎么那么多神经过敏的伪DP迷呢,搞那复杂? haha~~~ 哈哈,还这样子啊。 不过如果没有return的话,用if-else if-else if ,当有符合的判断就不会执行下面的判断了。if if if 会执行每一个判断。 |
|
返回顶楼 | |
发表时间:2009-08-14
最后修改:2009-08-14
containsoft 写道 dch1287 写道 ...
我是出题者 第一题 就是考DateFormat 第二题 就是考编码规范 不要那么多的if-else if-else if-else if {{{ }}}... 所以正解就是 if(isA){ return a(); } if(isB){ return b(); } if(isC){ return c(); } return DEFAULT_VALUE; 怎么那么多神经过敏的伪DP迷呢,搞那复杂? haha~~~ 哈哈,还这样子啊。 不过如果没有return的话,用if-else if-else if ,当有符合的判断就不会执行下面的判断了。if if if 会执行每一个判断。 建议你先看看重构这本书。 |
|
返回顶楼 | |