3.14号刷阿里巴巴面经

1、自我介绍,讲讲求职意向和擅长的技能

2、Tomcat的基本架构是什么?

3、JVM调优,工作中怎么用,GC算法和回收策略有哪些

标记清除算法

标记整理算法

复制算法

分代收集算法

 

 

4、Java中线程池是如何实现的? 创建线程池的几个核心构造参数是什么?

Java中的线程池都是通过threadpoolexecutor实现的。通过调节参数来实现不同功能的线程池

  • crocepoolsize核心线程池大小
  • maximumPoolSize 最大线程池数量
  • KeepAlivetime 超过核心线程数目的线程能存活的最大时间
  • 阻塞等待队列
  • 新建线程工厂
  • 拒绝策略

一开始时,每进来一个请求都会建立一个新的线程(即使当前线程池有空闲的线程),当创建的线程池数目等于核心线程数目时候,如果所有线程都处于工作状态,再有请求进来,将请求放置于阻塞队列中,有空闲线程就会取出来进行处理,如果阻塞队列塞满,就会增长线程数目,但是不能超过max,如果超过max就会进行拒绝策略,过了KeepAlietime超过核心线程池数目的线程就会被销毁。

5、Volatile和Synchronize的区别?

  • 工作原理:Volatile告诉JVM寄存器中该变量的值是不可靠的,需要到内存中读取。Synchronize锁定该变量,只有当前线程可以访问,其他线程访问会阻塞。
  • 判断是否阻塞:多个变量访问被Volatile修饰的资源时,是不会被阻塞的。但是多个线程访问Synchronize修饰的资源会被阻塞
  • 修饰的对象不同:Synchronize可以修饰变量,方法,类级别,但是Volatile只能修饰变量
  • 保证线程安全的几个性质:Volatile只保证了可见性 Synchronize保证的是原子性 还有可见性。
  • 判断是否可以优化:Synchronize标记的变量可以被编译器优化(锁优化),Volatile通过内存屏障实现的 不可以被优化。  

6、GC的机制是什么?垃圾回收器的基本原理是还说呢么?是否可以立即回收内存?怎么样主动的通知JVM进行垃圾回收?

通过System.gc();主动让虚拟机进行垃圾回收

GC机制是JVM自动垃圾回收的一种机制  主要是防止内存泄漏 还有即使更好的利用内存空间。

7、类加载器双亲委派模型机制?

双亲委派机制是一个类加载器接收一个类加载请求时候,查看自身是否有 父类加载器,如果有父类加载器的话,就请求父类加载器加载该类。然后一直递归下去。当父类加载器无法加载的时候就然后子类进行加载。避免类的重复加载。

8、集合的种类和区别,HashMap底层如何实现(JDK1.8有所改动),HashMap和ConcurrentHashMap的区别?

hashMap1.8底层是用红黑树+链表+桶数组  当数目大于6时候使用红黑树,减少查询时候的复杂度。小于6时候使用链表实现。

ConcurrentHashMap 1.8版本不再使用segment锁  而是直接锁同元素 ,从1.7的头插法改变为尾插法,然后结构体的next指针用Volatile修饰保证在多线程操作下不会成环。

9、Spring IOC如何管理Bean之间的依赖关系,怎么样避免循环依赖?

10、SpringBean创建过程中的设计模式?

最主要的是使用了单例模式

但是作用域是分为四组:单列  会话  连接

二面

 

1、自我介绍、

2、InnoDB支持的四种事务隔离级别名称是什么? 之间的区别是什么?

3、聊一聊事务的特性

4、什么是MySQL隔离级别?

5、如何理解BTree机制?

6、谈一谈对慢查询的分析?MySQL常用的优化方法有哪些?

7、谈一谈悲观锁和乐观锁以及SQL的实现

8、简述三次握手和四次握手的过程?

9、B+树索引和Hash索引的区别?

 

三面

 

1、自我介绍

2、MySQL的锁并发?

3、高并发场景下如何防止死锁,保证数据的一致性?

4、集群和负载均衡的算法与实现?

5、简述分库与分表设计?

6、分库分表带来的分布式困境与对应之策有哪些?

7、加锁的机制是什么?

8、Redis和Setnx命令使如何实现分布式锁的?使用Redis怎么进行异步队列?会有什么缺点?

 

 

 

注释:面经的题目是从微信公众号找来,但是答案是自己总结的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值