浦发银行软件开发岗面试经验分享(社招)
2、String和StringBuilder的区别?final、拼接效率
面试官:还有吗?--没看过StringBuilder源码
3、TreeSet底层?红黑树复杂度?(八股文)
3.1、HashSet 底层?HashMapa 的复杂度?Hash冲突解决方案?(八股文)
3.2、如果key是String,那它的hash值是怎么得到的?
面试官:我是问你String的hashCode是怎么计算的?
思考了片刻,老实交代:我没看过这个源码,但它应该是和ASCII码有关
4、平时怎么调试?Debug打断点
5、还有吗?线上出问题如何定位或调试?分析日志文件
6、10000个数找最大的100个?秒给小顶堆、TopK思路
7、小顶堆思路的时间复杂度?o(N)?因为要遍历
8、面试官:那如果是找1000个呢?应该还是o(N)吧...
9、那维护堆的代价呢,你再计算一遍?我猜o(NlogN),应该是错的,胡乱分析一通
10、平时写项目遇到死循环怎么解决?郁闷了好久...实在想不出来,随后说,死锁这种情
况可以吗?
控制台输入jps+jstack指令
11、那像for、while这种死循环你怎么定位?
12、手头有offer吗?来深圳没什么问题吧?我待会儿把你的简历给我leader看一下
13、反问:您如何定位死循环?
高途
1.单例模式
2.ArrayList和LinkedList的区别
3.创建线程的几种方式
4.线程池的几个核心参数和执行流程
5.线程池是怎么控制核心线程数和最大线程数的(答得不太好,瞎扯了队列)
6.JUC包下了解什么工具(我答了concurrentHashMap),接着问了concurrentHashMap的
分段锁和使用场景
7.Atomic和CAS
8.Spring中使用的设计模式(我只答出了工厂BeanFactory和代理AOP)
9.Spring中的事务的隔离级别和传播特性(传播特性没答全)
10.SQL题,三张表:部门、员工、工资,查询某个部门2019年年薪超过12万的员工
11.手撕代码,二叉树的前序遍历
12.JVM -Xss参数表示什么(不知道)
13.死锁产生的条件,怎么解决死锁(只知道粗粒度锁和设置锁优先级)
14.场景题:在一个服务中调用另一个服务的接口保证数据一致性,例如:提交订单不会提
交两次(分布式锁?其他不清楚了)
15.场景题:高并发场景下数据库压力很大,怎么解决?(使用索引,使用缓存,分库分表?
当然还存在IO瓶颈)
后来面试官又提出了MQ 消息队列也行。