楼主3年码农经验,尝试一下Java高级开发的面试。广州某电商公司,面的是高级开发岗,被虐的死去活来,就像被qj了一百遍。
首先下午2点到达事发现场,找前台拿了申请表,让我惊呆了的是申请表下有一份笔试题,共3道编程题:
1.读取文件统计每个字符出现的次数并输出到文本。
2.输入一个1000以内的数字,以汉字的形式输出。如123,输出一百二十三。
3.计算二叉树深度。
惊呆了,这不是应届生的笔试题么,后来3点时手机短信面试提醒才醒起我约的是4点的面试,2点应该是安排应届生面试,被当成应届生了有木有。
没关系,楼主耐心的把题目填了。然后被带到会议室,说了一下自己的情况,然后先后有2个同学过来面试,问的确实挺深,记得的有下面这些。
1.类的加载机制,对象的生命周期。
2.jvm调优,垃圾回收算法。
3.分布式事务
4.redis的分布式锁
5.spring的循环注入
6.mysql的事务原理,索引原理
7.activemq点对点如何保证只有一个客户端收到消息,消息接收是推送的还是拉取的形式
8.redis主从如何同步,持久化原理,集群对数据的存储是怎样,一致性hash原理
9.synchronized和reentrantlock的区别
10.什么时候扣除库存,如何保证库存的正确性,如何防止超卖
11.如何处理由于网络原因导致的下单失败(事实上订单已经成功了)
12.有没有接触过dubbo等分布式框架
13.对soa的理解,如何服务化
14.线程之间的执行顺序问题,某个线程要等另一个线程执行完才能执行这种场景
15.redis集群对某资源的争用是如何处理的
16.rabbitmq/activemq/kafka 的区别,选哪个
17.封装的框架是否有开源
18.线程池的各个参数的作用
19.想不起来了。。。
大部分答不上来/忘记了。面试我的同是3年经验的,这些题目大家感觉怎么样