最近想换工作了,好久么有面试了,感觉有点生了,想看看现在都是什么趋势,百度出来的题目都没什么压力,感觉都太简单了,想求点困难点的面试题,那是SSH神马的就算了,不是看不起,是真心搞那些东西搞的少,而且自己不想当一个纯码农,忘各位路过的大侠给我出点题目,最好是J2SE范围内的,编程题或者是基础都好。基础题希望是比较深的题目,在下好先熟悉熟悉,J2EE方面的也求教,EJB就算了。真心不熟

解决方案 »

  1.   

    here:http://ifeve.com/category/ask/and here:http://ifeve.com/concurrency-practice-1/
      

  2.   

    哈哈 我最近也在关注ifeve
      

  3.   

    1.谈谈JVM的工作原理
    2.高并发高访问的解决方案
    3.海量数据入库如何优化
    4.in和exists哪个执行效率高
    5.谈谈悲观锁和乐观锁
      

  4.   

    OK,这个海量数据入库我很想了解下,不知道有啥方案?采取batch算不算一种?
      

  5.   


    NIO,问框架具体时间,多线程并发等,无非是对着吹。
      

  6.   

    我来回答下
    1.jvm大概工作原理就是通过将字节码解释成二进制机器码进行工作,然后再背后有一个GC来维持对垃圾内存的回收工作,jvm整合了整个系统可以资源,并且提供相应的接口进行访问,但是通过JNI调用除外。
    2.高并发,垂直扩展可以通过加CPU,提升单CPU核心数,垂直扩展可以考虑集群,程序方面可以考虑使用无锁并发框架和使用线程池等优化手段。
    4.在pg中,in和exists的性能其实已经相差无几了,但是综合来看还是exists性能略高。
    5 悲观锁,系统认为在访问某个资源的时候一定会有其他线程来修改这个资源,所以必须对这个资源在防卫的过程中全程加锁,其他线程无法访问改资源。乐观锁则是系统认为在访问资源之前这个资源没有被其他线程在写这个资源,所以会先尝试对其进行修改,但是一旦自己修改的值和内存中的值不匹配的时候就会认为是其他线程进行修改了,所以本次修改失败,然后获取锁进行操作或者再进行上面的操作,这就是CAS。