面了两家公司,被秒了问题如下
1.在一个64位的操作系统上,一个指针占多大存储
2.lucene是先分词还是先创建索引
3.dubbo是长连接,那么dubbo和谁是长连接?是和tomcat长连接还是和zookeeper是长连接?
4.List arrayList = new ArrayList(),这个arrayList占多大空间
5.往mysql里面insert一条数据快还是update一条数据快?为什么?

解决方案 »

  1.   

    1,2不会
    3的话能确定的是跟zookeeper是长连接,跟tomcat不清楚(按自身猜测记得没有连接,是直接开端口,然后端口tcp直连)
    4的话简单点,没记错的话初始化长度是10,扩容因子是0.75,扩容倍数是1.5,也就是当长度超过自身的0.75时,会自动扩容,扩容的长度是当前长度的1.5倍
    5这个纯属推测(瞎猜),我觉得应该是insert快,update需要先去查到记录,然后再进行更新,而插入不需要
      

  2.   

    3dubbo跟dubbo长连接
    4.1.8的实现貌似在add的时候才会初始化大小,new的时候给个默认空数组
    5.这个应该是有很多可能性的
      

  3.   


    回去看了一下,上面4说错了一点,扩容是超过自身长度才会扩,0.75是map里面用到的
      

  4.   

    3dubbo跟dubbo长连接
    4.1.8的实现貌似在add的时候才会初始化大小,new的时候给个默认空数组
    5.这个应该是有很多可能性的
    老哥第四点说的没错,大佬就是大佬
      

  5.   

    3dubbo跟dubbo长连接
    4.1.8的实现貌似在add的时候才会初始化大小,new的时候给个默认空数组
    5.这个应该是有很多可能性的
    老哥第四点说的没错,大佬就是大佬
    非也,我翻的源码
      

  6.   

    3dubbo跟dubbo长连接
    4.1.8的实现貌似在add的时候才会初始化大小,new的时候给个默认空数组
    5.这个应该是有很多可能性的
    老哥第四点说的没错,大佬就是大佬
    非也,我翻的源码
    - -我也是马上跑回去翻的源码,就怕误人
      

  7.   

    1,2不会
    3dubbo和tomcat
    4不会
    5应该是insert快,update需要先查到数据,然后加锁,写,再释放锁
      

  8.   

    我查了一下,似乎还涉及sql日志的生成,update生成的日志要比insert要多
      

  9.   

    那必须的啊, 一个sql操作是很复杂的,我只是简要说明
      

  10.   

    ArrayList扩容一倍,
    map的才有负载因子
      

  11.   

    就只知道第一个  34位系统占4bit 64位占8bit
      

  12.   

    可以忽悠,直接说不会就挂了。第一题,考官有问题啊!64位系统上,64位编译器编出来的一个指针8字节,但一般装vc用win32架构,依旧是4字节。和构建的目标abi有关系。不严谨。
    正确的问法,是为x64.架构生成的c代码中,一个指针多少字节。
    第二题,没玩过。想一想,如果是支持全文检索的库,都是要分词后索引的,不知对不对。第三题,对大部分中间件,长连接应该是和后台绑定的,而不是前端。第四题,不严谨,这个玩意说不准,语言和编译器版本,都有关吧。第五题,没什么意义。和场景有关。如果一个表里都是索引,且条目非常多,那insert时会配平好多树,如果update只改了一个字段,显然是会更快。