亚信安全一面10.26二面10.28(挂)
一面-10.26下午两点-全程30分钟(飞书面试)
0.自我介绍?学的语言是什么?(学校学的C++,自己学的java,用来找工作的语言是java)?为什么说java是用来找工作的语言?说一下什么是面向接口编程?
1.java中的ArrayList的底层是什么?
2.HashMap是怎么实现的?底层数据结构?红黑树是什么?有什么特点?你能说一下红黑树吗。(不懂)
3.volatile关键字的作用?100个订单,使用volatile能否解决消费问题?为什么?(不能保证原子性,消费是需要原子性的)需要使用锁或者AtomicXXX,java中有哪些锁?synchronized和ReentrantLock。
4.为什么线程类的stop方法被废弃掉了?改成中断和stop方法相比有什么优点?(改成了中断,只知道一句话线程是否终止不应该由别的线程来终止,应该自己根据中断判断是否要进行终止,至于为什么不知道呢)
5.微服务有哪些优点?拆分...微服务有什么缺点?(不知道)
6.如何启动一个线程?调用start方法。线程池的作用是什么?为什么要有线程池?创建线程很耗费性能,池技术一下子全部创建出来,后续直接从池子里拿,就可以减少不必要的性能开销。
7.线程池中10个线程,来了1w个任务,怎么办?先丢进去workQueue里排队,10个线程轮流消费,如果队列满了,就使用拒绝策略去进行拒绝。
8.聊项目,为什么要有权限检验?SpringSecurity的实现?如果不用SpringSecurity,你如何设计?使用Servlet提供的过滤器链或者是SpringMVC提供的拦截器,自己定义过滤器链或者拦截器链就行。
9.那你需要用到的权限信息如何处理,怎么鉴权?放到上下文中,设计一个ThreadLocal,把信息存到ThreadLocal,上下文中需要用到时直接从ThreadLocal中获取就行。
10.反问工作栈?你工作地怎么选择的?
二面-10.28下午4点-全程20分钟(飞书面试,2个面试官轮流问)
1.自我介绍?
2.介绍一下挑战杯项目?介绍一下另一个后台项目?项目中数据库表的设计?项目中用到了什么集合?
3.数组和链表底层实现上有什么区别?分别用在场景下
4.HashMap你平时怎么用的?为什么?用到k-v情况下,基本都用Map
5.MySQL进行索引优化你了解过吗?说一点。
6.你了解开源框架吗?了解过Spring/SpringMVC/SpringBoot。谈谈你对Spring中IOC的理解?也是说正转反转。
7.你了解过前端技术吗?了解过Vue,但是现在很久没用了,现在主要以学后端的为主。
x.反问部门?说还没分,校招是一起面试的,过了之后再分。
记不起来了,后续补充(好像没什么了,二面很短,主要介绍项目那里比较费时间,没问太多问题)
补充说一下:本来平台给了一次28号下午4点的面试,但是后面又让我预约29号的面试,我以为面试时间改了,下午4点多面试官打电话给我有没有时间参加面试,可能平台问题多给发了吧,然后立马换个地方就开始面。面完之后HR打电话给我确认已经面完了,并且把29号的面试取消掉了,并且告诉我亚信只有两面?(没有HR面吗?)
更新:11.2收到感谢信,挂