还有一个问:wait(), notify() 是否一定要放在 sychrnozied 里? 
答:不是
问:反过来 sychrnozied 是否一定要有 wait(), notify() ?
答:不是

解决方案 »

  1.   

    wait(), notify() 好像是要放在同步里面吧?
      

  2.   

    还有一问System.gc() 显示调用回收,JVM是否会立即回收?为什么?
      

  3.   

    感觉阿里的同学们面试水平确实不怎么样,一般都问得太detail了。
    不太像大公司的作风啊.
      

  4.   

    不会立即回收。
    JAVA回收垃圾是看时间的。虚拟机会有个回收机制。你调用了回收,他不会立即回收,回收机制的优先性很低。也就是说如果系统很忙的话,他会等会回收
      

  5.   

    jvm这个垃圾回收吧,里面有个跟美国法院陪审团一样的东西,全凭高兴不高兴,高兴了他就判你可以回收,不高兴了就判你不可以回收
      

  6.   

    select * from table where id in (select id from table where rownum<100) and sid not in (select id from table where rownum<10)第一题我能想到的答案。。
    感觉好麻烦。应该有更好的答案
      

  7.   

    写一下,HashMap里插入数字一到十,然后再逐个取出来。HashMap插入数字?应该是插入键值对吧?
    还是说HashSet?LZ记错了?
      

  8.   

    感觉是lz没戏的!spring lz好像都不知道!
      

  9.   

    在一个技术封闭的公司呆久了,Server、IDE、DB grammar、platform、framework都是封闭的,出去了什么都不会,不得不说是个悲剧!
      

  10.   


    哥们!wait()方法会释放锁,那如果你没有获得锁的话,那还怎么释放锁呢!第二个是答对的,spring知识只是想考一下你知不知道这些原理,如果知道的话对程序设计是有帮助的,基础过关就行!
      

  11.   


    select * from (select id,name,rownum num from table where rownum<=100) t where t.num>=10
      

  12.   

    HashMap 无法在并发环境下使用,若要并发环境下可以使用线程安全且高效的 ConcurrentHashMap,由于采用分离锁的同步策略使得在多线程并发处理时比 Hashtable 性能高出一大截!如果仅能在 HashMap 上做处理,那可以采用读写锁将其所有的方法重新包装,但对于 entrySet 和 keySet 两个方法处理就没有办法了,直接忽略掉抛出 java.lang.UnsupportedOperationException 异常。
      

  13.   


    我不知道你打省略号是回答上还是没回答上 所以我就随便说说了..反正我说的大概就是我的第一反应吧写一条Oracle语句查询出第10到100条数据用rownum 先查询一百条数据 再根据该结果集的rownum(已查询)查询rownum大于10的数据 比如
    select s.rnum from (select rownum as rnum from table where rownum < 101) s where s.rnum > 10没验证过 错了的话请纠正..
    乐观锁和悲观锁是怎么回事?乐观锁用来限制多用户修改同一条数据的情况 属于业务验证的一种方式吧 悲观锁也一样 只不过悲观锁强调的是数据库记录的安全问:写一下,HashMap里插入数字一到十,然后再逐个取出来。
    如果没加限制条件的话 我会用一个LIST保存KEY 或者用TREEMAP 如果他想强调的是你对HASHCODE或者对HASH表的知识是否了解的话 那实现的方式我就不太清楚了(或者网上有现成答案吧)
      

  14.   

    Spring我就没办法了 另外第一题注意 rownum不能用大于比较 因为如果记录判断失效的话 rownum也不会增加 
      

  15.   

    问:Spring的IoC注入有哪两种方式?
    答:.. 
    依赖注入有三种吧?
      

  16.   

    IOC你就认为他是一个生产和管理bean的容器就行了,原来需要在调用类中new的东西,现在都是有这个IOC容器进行产生,同时,要是产生的是单利的bean,他还可以给管理bean的生命周期!
       spring的IOC有三种注入方式  第一是根据属性注入  也叫set方法注入;第二种是根据构造方法进行注入;第三种是根据注解进行注入,这种方式我认为比较好,方便,要是bean多的话,使用前两种方式会使得配置文件过于臃肿。
    Spring的优点:主要是根据它的IOC和AOP体现的。我感觉他就是把我们以前用到的工厂模式和代理模式进行了一个封装。IOC主要是解决了代码的耦合性问题,而AOP是面向切面编程的最好解释!
      

  17.   

    问:写一条Oracle语句查询出第10到100条数据。
    答:select * from (任何子查询) where rownum betweent 10 and 100问:高并发条件下,如何应对对同一条数据的读写?
    答:给对象加Synchronized上锁。
    问:但是这样导致性能太差怎么办,还有别的方法吗?
    答:给这条记录加上版本信息。
    问:乐观锁和悲观锁是怎么回事?
    答:http://www.hetaoblog.com/pessimistic-optimistic-locking-views/问:写一下,HashMap里插入数字一到十,然后再逐个取出来。
    答:map.put(key, value) [1 - 10]
    it = map.iterator()
    while(it.hasNext()){
    it.next();
    }问:HashMap在高并发条件下如何?如果你自己实现一个HashMap以适应超高并发,比如同时读写,你如何设计?
    答:这个真不知道,参考火龙果的答案。。问:Cookie如果想跨域怎么办?
    答:   2种
    1.服务器内共享,用cookie.setPath()
    2.跨域共享,用cookie.setDomain();Spring相关的就。。算了吧。
      

  18.   

    回答下spring的吧,答错请指正
    问:Spring的事务是怎么实现的? 
    答:AOP
    问:Spring的AOP有几种实现方式? 
    答:两种,1注解 2标签 
    问:Spring的事务级别有哪些? 
    答:REQUIRED,SUPPORTS什么的...
    问:Spring的IoC注入有哪两种方式? 
    答:...难道还是注解和标签?
      

  19.   

    wait(),notify()要放在sychrnozied中
      

  20.   

    第一题用集合查询也可以:
    select * from table1 where rownum<100 minus select * from table1 where rownum<10
      

  21.   

    乍一看还有点难度,仔细看看还马马虎虎,不过确实不是很简单。
    spring的主要功能无非就是IOC和AOP,分别用于控制反转和面向切面,都可以用配置文件方式和JAVA注释方式进行实现。
    spring的事务是利用AOP的方式实现的。
    至于事务的级别就是:读未提交、读已提交、可重复读、串行 4种。一般的DBMS都默认为读已提交。
    乐观锁和悲观锁的区别在于:乐观锁允许同时读取而悲观锁只能串行读取。
    ORACLE查询出第10到100条数据:
    select * from table
    where rowid not in
          (
             select rowid from table where rownum<=10
          )
      and rownum<=90回答的不全,请各位高人补全和指正!
      

  22.   

    先收藏此贴了
    java的垃圾回收器确实要cpu空闲了才能启动
      

  23.   

    Spring IOC 注入共有三种方式,其中两种是最常用的,分别是: 构造注入和setter/getter注入
      

  24.   

    Spring IOC有三种注入方式,分别是接口注入,getters和setters注入和构造注入。接口注入已经不被推荐使用,而构造注入从程序设计的角度来说是比较合理的,但是使用时不太方便,所以使用也不是很多。因此使用最多的就是getters和setters注入,也称为属性注入。
      

  25.   

    Spring IOC有三种注入方式,分别是接口注入,getters和setters注入和构造注入。Spring的事务是利用AOP的方式实现的。事务的级别是:读未提交、读已提交、可重复读、串行 4种。一般的DBMS都默认为读已提交。Spring的AOP有几种实现方式?  答:两种,1注解 2配置
      

  26.   

    1. rownum关键字+子查询
    2. 乐观vs悲观
        hiber的两种事务级别。对应于ora的四种事务的最后两种,提交读和可重复读其他的补充
      

  27.   

    Spring的事务是怎么实现的?
     这个问题概念不是很清晰..Spring的事务依赖于你Dao层所采用的的技术,如:Hibernate.ibatis,jdbc。。他的事务分为编程式事务和声明式事务...依赖于AOP 来实现

    Spring的AOP有几种实现方式?

    注解和配置 2 种...
    使用注解时需要在配置文件中开启自动代理的功能...  使用配置方式可实现纯POJO的AOP
    问:Spring的事务级别有哪些?

    好像事务级别跟spring没什么关系吧。。事务级别是数据库的,根框架有鸟关系
    所有的事务都有以下几个级别:
       Serializable REPEATABLE READ    READ COMMITTED   Read Uncommitted
    我猜他想问的,应该是spring的事务传播行为有那几种:
    PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
    PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。
    PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。
    PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。
    PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
    PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。 
    Spring的IoC注入有哪两种方式?
       严重BS这个面试官,连Spring的Ioc方式有几种都搞不清。。
    Spring的注入方式有
    setter方法注入
    构造器注入
    方法注入总结,此面试官对spring的掌握看来也不怎么的....
     
      

  28.   

    我也觉得太底层的东西了,如果是专门招J2EE程序员还差不多
      

  29.   

    写一条Oracle语句查询出第10到100条数据
    select * from (
        select tn.*,rownum rn
        from (select * from tablename) tn
        where rownum <= 100 )
    where rn >= 10
      

  30.   


    问:写一条Oracle语句查询出第10到100条数据。答:SELECT *
      FROM (SELECT a.*, ROWNUM rn
              FROM (SELECT *
                      FROM table_name) a
             WHERE ROWNUM <= 100)
     WHERE rn >= 10;
     
    问:乐观锁和悲观锁是怎么回事? 
    答:乐观所:乐观锁 大多是基于数据版本 (Version)记录机制实现。
    即为数据增加一个版本标识,在基于 数据库表的版本解决方案中,一般是通过为数据库表增加一个“version”字段来 实现。
    悲观锁:它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)
    修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定 状态
    问:写一下,HashMap里插入数字一到十,然后再逐个取出来。 答:package csdn;import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;public class TestMap {
    public static void main(String[] args) {
    String str;
    Map m = new HashMap();
    for(int i =1;i<=10;i++){
    str ="string"+i;
    m.put(new Integer(i), str);
    }
    for(Iterator it =m.entrySet().iterator();it.hasNext();){
    Map.Entry e  =(Map.Entry)it.next();
    System.out.println(e.getKey()+":"+e.getValue());
    }
    }
    }问:HashMap在高并发条件下如何?如果你自己实现一个HashMap以适应超高并发,比如同时读写,你如何设计?答:因为 HashMap是线程非安全的 所以要手动添加锁机制 
      

  31.   


    严格说起来有三种。
    注解,XML,和底层的API.
    第三种是为了对Spring 1.2向后兼容而保留下来的。
      

  32.   


    1:Spring 的事务实现并不是简简单单的 AOP 就够了,这涉及到事务上下文模式的应用,核心 API 就是一个 ThreadLocal 对象
    2:Spring 的 AOP 实现应该是 JDK 的动态代理和 Cglib 的动态代理吧?
    3:事务隔离级别是数据库层面的东西,但并不是数据库都支持这些隔离级别。事务传播行为上,我咋感觉你好像漏掉一个?
    4:我想问一下 setter 方法注入与方法注入有啥区别?
      

  33.   

    接上楼。如果我把 @Autowired 加到一个 private 的成员变量上,而这个成员变量没有 set/get 方法,那这种算什么注入呀?
      

  34.   


    不同意,这里问的是AOP的实现方式而不是指的AOP Proxy的实现方式。
      

  35.   

    个人理解spring的注入方式有:
    构造注入,
    方法注入,
    属性注入,
    集合注入@Autowired是属性注入
      

  36.   

    Spring的注入的三种方法是:
    属性注入、构造器注入、接口注入。
      

  37.   

    Spring的AOP有几种实现方式?
    答:我觉得应该是这样:spring在2.0以前使用的是自己的一套aop机制,实现有的“配置”和“实现接口并注册”两种方式。spring在2.0以后新增了eclipse项目组的一套aop机制(部分实现),叫aspectj,实现有“配置”和“注解”两种方式。
      

  38.   


    oracle 就用limit 10 100 就行了