题目1:Hashtable、HashMap、javabean之间的区别?Hashtable和javabean的效率哪个更高?
题目2:oracle、mysql中的group by的区别是什么?PS:以前只听说过Hashtable和HashMap之间的区别,这次的面试题目不知咋搞的多出来一个javabean。

解决方案 »

  1.   

    题目1:中和javabean中的区别,实在难以让人理解。
    题目2:如果从执行原理上讲,完全不知道。不过我知道Oracle的group by用法比较多有ROLLUP,CUBE等等
          好像mysql没有这些东西,mysql的group by好像只能使用max和min函数。
      

  2.   

    题目2现在已经解决:Mysql中语句如下:
    select 
          count(u.username),r.rname,r.rid,r.pid
    from 
          room r,user1 u
    where 
          r.pid=u.id 
    group by 
          r.rid,r.pid这里r.rname并没有出现在group by子句、聚合函数中,但是MYSQL中仍然能够执行、列出数据。
    当然在oracle中是不行的。上面的代码出处:http://blog.csdn.net/jackpk/archive/2008/11/07/3247242.aspx
      

  3.   

    果然MySQL可以这样运行下good luck楼主 
      

  4.   

    Hashtable、HashMap与javabean有啥可比性啊?不知道出题人是咋想的
      

  5.   

    Hashtable、HashMap与javabean?哪个公司的面试题啊,懂java不,鄙视下
      

  6.   

    楼主想太多,你可以说HashMap HashTable的区别,然后再说他们和javabean没有区别啊?这样同时考到你多个知识点和对突发事件的处理能力,遇到没见过的东东怎么去思考最重要,有个老师曾经这样告诉我的,觉得还是蛮有意思的。。你知道他们之间没关系,说明你了解什么是javabean啊!硬套关系,反而会让你不知所措。。呵呵
      

  7.   

    1、Hashtable和HashMap的区别好说,不外乎线程安全、是否允许null、容量扩展这些。和JavaBean的区别还真没遇到过,感觉上应该是JavaBean效率更高,但说不出道理。Map和JavaBean的效率比较,大概是这个意思:HashMap map = new HashMap();
    map.put("id", "1");
    map.put("name", "Tom");
    map.get("id");
    map.get("name");
    Emp emp = new Emp()
    emp.setId("1");
    emp.setName("Tom");
    emp.getId();
    emp.getName();哪个效率高?2、区别大概就是你说的了,select的字段可以在group by里没有,默认取第一行。mysql的grouop by不合标准,虽然可以这么用,但是一般还是尽量避免。
      

  8.   

    我想Map和JavaBean的区别,大概是JavaBean可以通过对setter和getter做限定,实现只读或者数据有效性验证,还可以提供除了setter和getter之外的其他方法。
    但是效率实在是想不出来怎么说明。
      

  9.   

    大概是这个吧:
    Map与JavaBean的区别,JavaBean的属性即getter/setter,需要事先定义(当然可以只定义getter/setter,不定义Field,我就经常用这个特性暗渡陈仓)。而Map的属性名就是名值对中的Key,但是map.123好像只认key="123"(String)而不认key=123(int)
      

  10.   

    我觉得可以这样说:
    1.Hashtable和HashMap    Hashtable线程安全 HashMap不是线程安全
    2. Hashtable、HashMap和Javabean   前两个要存取某个属性值,首先得计算hash值,然后才能根据地址存取属性值(当然还可能要处理地址冲突)  而javabean是直接根据地址存取属性的效率方面:从上面两来看,当然是javabean高于Hashtable、HashMap了
      

  11.   


    你个鸟人,怎么也说GOOD LUCK啊,我记得这上面有一个家伙是GOOD LUCK的专用户,二话不说,GOOD LUCK是必须的。哈哈
      

  12.   

    javabean效率高 他和HashMap差不多 
    因为HashTable线程安全 效率要低一点
      

  13.   

    题目1:map和javabean,从功能上来讲,还是有一点共性的。
    都用来存储键-值对。但是javaBean用来描述一个具体的业务对象,而map则更侧重于描述一个同类事物集合。他们保存值的方式也是不一样的。
    但是存取的效率的话,我认为map更高。只是直觉,等大鸟来分析。题目2:
    select 
          count(u.username),r.rname,r.rid,r.pid
    from 
          room r,user1 u
    where 
          r.pid=u.id 
    group by 
          r.rid,r.pid即使不将r.rname放如group中,执行的时候可能也自动加进去了。
    否则没有办法得到结果的。或者说得到的结果是不合逻辑的。
    所以我认为,仅仅是语法上的区别。功能上没有实质的区别。
      

  14.   


    呵呵,这位兄弟,在不知道这题目考察是考察啥玩意之前,最好还是不要自己妄下定论。
    因为我知道HashMap和Hashtable之间的区别,所以就写了它们的区别,至于javabean,我只能写何为javabean,它的3要素。至于效率我是压根我不知道。
    在这里要感谢11楼和12楼,尤其是12楼的回复,感觉很不错。请问11楼的shine333,你说的“不定义Field,我就经常用这个特性暗渡陈仓”是什么意思???
    不定义属性?
      

  15.   


    想必是只定义getXyz方法,而不定义xyz变量。将来在用的时候,如EL表达式里${obj.xyz }直接使用。
      

  16.   

    还没看到任何从理论上论证Map和JavaBean的区别,继续等高人解释……
      

  17.   

    java我还不怎么了解,留名学习,代顶!
      

  18.   


    你只定义getXyz方法,那里面的属性哪来的?
      

  19.   

    比如有单价和数量两个属性,那就可以这样:
    get总价() {
      return 单价 * 总价;
    }
      

  20.   

    比如,我经常做的事情:
    public class A {
      private int status; // getter/setter
      public boolean isEditable() {
        switch (status) {
          case CONST_1:
          case CONST_2:
          case CONST_5:
            return true;
          default:
            return false;
        }
      }
    }
    还有做报表的时候,那些城市合计、区域合计、全国合计的,我会利用以下特性public class X {
      private BigDecimal income = BigDecimal.ZERO; // getters/setters;
      private Integer cityId;
      private Integer regionId;
      public void setNextIncome(BigDecimal nextIncome) {
        this.income = this.income.add(nextIncome);
      }
    }来ORM对应的SQL
    SELECT sum(amount) AS nextIncome,
           cityId,
           regionId,
      FROM xxxx
     WHERE ....
     GROUP BY cityId, regionId
      

  21.   

    这样是不对的。你的单价和总价肯定还要定义的,然后在set方法中给它赋值。
    还有shine333兄,你的代码还是定义了属性的。还是有对应的getter、setter方法。
      

  22.   

    难道你没有发现A的属性除了status还多了一个(只读的)editable,X的属性多了一个(只写的)nextIncome
    注意属性property和字段field的区别
      

  23.   

    你的意思是
    1:在实际开发中,你不用写get和set方法;
    2:还是写了,但在这里贴代码的时候省略了是哪个意思?
      

  24.   

    按照问题1的提问思路来回答
    javabean只相当于一个固定了key的一个键值对
    比如setName相当于Map的set("name",xxx);
    效率可能Map高些,
    但可读性可维护性来说,javabean都是不二的选择。第2个问题直接说“对不起,我不知道”good luck
      

  25.   

    public class A {
      private int status;
      public int getStatus() {
        return this.status;
      }
      public void setStatus(int status) {
        this.status = status;
      }
      public boolean isEditable() {
        switch (status) {
          case CONST_1:
          case CONST_2:
          case CONST_5:
            return true;
          default:
            return false;
        }
      }
      public boolean isAppendable() {
        switch (status) {
          case CONST_1:
          case CONST_2:
          case CONST_3:
            return true;
          default:
            return false;
        }
      }
      public boolean isCancellable() {
        switch (status) {
          case CONST_4:
          case CONST_5:
          case CONST_6:
            return true;
          default:
            return false;
        }
      }
    }现在A有1个Field:status,和4个property:status, editable, appendable, cancellable
      

  26.   

    看了大家的回复,我学习了不少,
    对于javabean和map,
    我感觉如果本来就是不同的概念,但非要拿在一起比较我,也是可以的!
    比如要使用一个学生信息可以有两种方式
    1)使用javabean: 
       Student s = new Student();
       s.setName() s.getName()  姓名
       s.setSex() s.getSex()    性别
       s.setTeacher() s.getTeacher()   老师
    2)使用Map:
       Map m = new HashMap()
       m.put("name","张三");
       m.put("sex","1");
       m.put("teacher","王老师");上面两种都可以实现对一个学生信息的存取,使用起来都比较方便,以前在项目中这样用过很多次,不过还没真没考虑过他们之间来个比较。。
    感觉对效率而言,感觉应该是Hashtable<javabean<HashMap
    个人认为:首先线程案例一般是最慢的,HashMap是封装的高效集合类,应该比普通java类快些以上纯属个人理解,有不对地方请指正,谢谢
      

  27.   

    hibernate和javaBean可比吗?
      

  28.   

    因为map是一个集合类,javabean是一个实例,都可以用来保存数据
    按照存取效率来说的话,javabean的效率是比map高。
      

  29.   

    存取效率,map要比javabean多耗时几个数量级
      

  30.   

    我就只有一个疑问,map和table难道不是javabean?难道非要有getter和setter方法的才叫javabean?不知道出题的人到底想考什么java中的任何类都是一个javabean!
      

  31.   

    哎,这是郁闷,有人说Hashtable的效率高,有人说是javabean高,到底哪个高啊?
      

  32.   


    效率不是问题,
    主要是可读性。
    我觉得,
    回答面试问题可能被直接枪毙了。呵呵至少Hashtable是线程安全的,速度应该慢些吧。good luck
      

  33.   

    别比性能了,如果真的再遇到这个问题,从OOP的角度来说,JavaBean明显优于Map。
      

  34.   


    我一直也是这么认为的不过看大家的讨论的  我开始怀疑我对javabean的了解程度了    可怕....
      

  35.   

    顶上去,让大家看看新鲜事,是啊,我也没见过与javabean的区别的提问。