论坛首页 招聘求职论坛

昨天面试时两道题

浏览 16420 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (3)
作者 正文
   发表时间:2009-08-14  
javatestoracle 写道
第一题用异常处理  3楼正解

据说程序catch一次异常所消耗的资源(CPU运行)比运行几千行代码消耗的资源更大,如此使用异常,是否欠妥.
0 请登录后投票
   发表时间: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”。
0 请登录后投票
   发表时间:2009-08-14  
第一题感觉用正则
第二题倾向OO,不提倡用switch
0 请登录后投票
   发表时间: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里进行相关条件的判断呢?
0 请登录后投票
   发表时间: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
}
0 请登录后投票
   发表时间:2009-08-14   最后修改:2009-08-14
或者自建创建写个Proxy类实现InvocationHandler创建个动态代理,在方法调用前插入一个切面,让代理来做这个逻辑判断
0 请登录后投票
   发表时间: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~~~
0 请登录后投票
   发表时间:2009-08-14  
楼上正确
第一题用正则比较麻烦。
第二题只有一段代码片段,应该就是考代码风格,我也想到多态去了,呵呵。
0 请登录后投票
   发表时间: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 会执行每一个判断。
0 请登录后投票
   发表时间: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 会执行每一个判断。

建议你先看看重构这本书。
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics