2020年最新阿里云java面试题,主要业务架构和技术架构两部分。业务架构一般不会深究,但要面试官听明白,并且一般面试官会顺着问是如何根据这些业务去设计技术架构的。
1、多个线程同时读写,读线程的数量远远大于写线程,你认为应该如何解决并发的问题?你会选择加什么样的锁?
2、JAVA的AQS是否了了解,它是干嘛的?
3、除了synchronized关键字之外,你是怎么来保障线程安全的?
4、什么时候需要加volatile关键字?它能保证线程安全吗?
5、线程池内的线程如果全部忙,提交一个新的任务,会发生什什么?队列6、全部塞满了之后,还是忙,再提交会发生什么?
7、Tomcat本身的参数你⼀一般会怎么调整?
8、synchronized关键字锁住的是什么东西?在字节码中是怎么表示的?在内存中的对象上表现为什么?
9、wait/notify/notifyAll方法需不需要被包含在synchronized块中?这是为什么?
10、ExecutorService你一般是怎么用的?是每个service放一个还是一个项目里面放一个?有什么好处?
11、你有没有⽤用过Spring的AOP?是用来干嘛的?大概会怎么使用?
12、如果⼀一个接口有2个不同的实现,那么怎么来Autowire一个指定的实现?
spring
13、Spring的声明式事务@Transaction注解一般写在什么位置?抛出了14、异常会自动回滚吗?有没有办法控制不触发回滚?
15、如果想在某个Bean生成并装配完毕后执行自己的逻辑,可以什么方式实现?
16、SpringBoot没有放到web容器里为什么能跑HTTP服务?
17、SpringBoot中如果你想使用自定义的配置文件而不仅仅是application.properties,应该怎么弄?
18、SpringMVC中RequestMapping可以指定GET,POST方法么?怎么指定?
19、SpringMVC如果希望把输出的Object(例如XXResult或者XXResponse)这种包装为JSON输出,应该怎么处理?
20、怎样拦截SpringMVC的异常,然后做自定义的处理,比如打日志或者包装成JSON
MySQL
21、如果有很多数据插入MYSQL你会选择什么方式?
22、如果查询很慢,你会想到的第一个方式是什么?索引是干嘛的?
23、如果建了一个单列索引,查询的时候查出2列,会用到这个单列索引吗?
24、如果建了一个包含多个列的索引,查询的时候只用了第一列,能不能用上这个索引?查三列呢?
25、接上题,如果where条件后面带有一个i+5<100会使用到这个索引吗?
26、怎么看是否用到了了某个索引?
27、like%aaa%会使用索引吗?likeaaa%呢?
28、drop、truncate、delete的区别?
29、平时你们是怎么监控数据库的?慢SQL是怎么排查的?
30、你们数据库是否支持emoji表情,如果不支持,如何操作?
31、你们的数据库单表数据量是多少?一般多大的时候开始出现查询性能急剧下降?
32、查询死掉了,想要找出执行的查询进程用什么命令?找出来之后一般你会干嘛?
33、读写分离是怎么做的?你认为中间件会怎么来操作?这样操作跟事务有什么关系?
34、分库分表有没有做过?线上的迁移过程是怎么样的?如何确定数据是正确的?
JVM性能优化
35、你知道哪些或者你们线上使用什么GC策略?它有什么优势,适用于什么场景?
36、Java类加载器包括几种?它们之间的父子关系是怎么样的?双亲委派机制是什么意思?有什么好处?
37、如何自定义一个类加载器?你使用过哪些或者你在什么场景下需要一个自定义的类加载器吗?
38、堆内存设置的参数是什么?
39、PermSpace中保存什么数据?会引起OutOfMemory吗?
40、做gc时,一个对象在内存各个Space中被移动的顺序是什么?
41、你有没有遇到过OutOfMemory问题?你是怎么来处理这个问题的?42、处理过程中有哪些收获?
43、1.8之后PermSpace有哪些变动?metaSpace大小默认是无限的么?还是你们会通过什么方式来指定大小?
44、Jstack是干什么的?Jstat呢?如果线上程序周期性地出现卡顿,你怀疑可能是gc导致的,你会怎么来排查这个问题?线程日志一般你会看其中的什么部分?
45、StackOverFlow异常有没有遇到过?一般你猜测会在什么情况下被触发?如何指定一个线程的堆栈大小?一般你们写多少?
以上就是天津卓众教育java培训机构的小编针对“2020年最新阿里云java面试题”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。