阿里巴巴java高级工程师面试题

1. java中 hashcode相同, equal一定相同嘛

    答: 不一定,因为hashcode,equal方法可以重写

          

2 . 理解spring么,它的AOP实现是基于什么原理,bean的初始化过程是那些(涉及具体的源代码),在bean factory初始化前 ,运行中,初始化后想做些事情。该怎么做? 
     答: spring的AOP基于cglib,对代码做混淆。 bean初始化的时候,首先读取XML配置文件,解析完成Bean的组装,由BeanFactory组装生成Bean, 可以指定是单例或者new instance, 具体可以参看我以前的博文

      http://blog.csdn.net/nanjingjiangbiao/article/details/7173098

 

3 struts1和strus2的区别,strust2关于 ThredLocal是什么,strus2初始化部分的原理是什么。 
    答: 1是基于sevlert的MVC,2是基于filter。1中Action,Form分离, 2中合并在Action中。 1中Action是单例,非线程安全。 2中Action每个http request thread一个new instance.

         ThreadLocal是线程变量, 将该变量副本存入当前线程的栈中,从语法级实现线程隔离。


4. 多线程用过么?

     答: 不如问线程如何同步或者协同。 Java的异步包中提供, 同步阀。 线程之间通信, 一般可以通过共享变量做到。 如果大型的话, 可以用消费者生产者模式。 线程池, Java的异步包也提供API, 只需要将线程包装成FutureTask就可。


5关于jvm,它是什么样的结构?,他的Gc算法是什么,什么情况下会 out of memory? 

      答: 基于栈的编译器实现。 GC算法一般来说是回溯引用树,然后找到没有引用的节点,将其移入old gen, 这是 young GC, 在old gen已经全满的情况, 执行full gc。 out of memory发生在没有空间开辟内存, 不光出现在heap中, 方法区中也会。

6.连接池原理,连接池commit 后连接是否关闭。 

         答: JDBC协议本身定义了 con pool, WebApp初期化之后, 代码底层, 在当前JVM上创立一个ObjectMap, 每个Object中包装了对数据库的tcp连接,帐号密码等。

                 con pool一开始是空的, 当有新con 要求的时候, 才会在conn pool中增加object。 conn pool中的conn不会被关闭, 但过一段时间会进入休眠状态, 即钝化。

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值