阿里最全面试116题:阿里天猫、蚂蚁金服、阿里巴巴面试题含答案

55次阅读

共计 4488 个字符,预计需要花费 12 分钟才能阅读完成。

【阿里天猫、蚂蚁、钉钉面试题目】

junit 用法,before,beforeClass,after, afterClass 的执行顺序
分布式锁
nginx 的请求转发算法,如何配置根据权重转发
用 hashmap 实现 redis 有什么问题(死锁,死循环,可用 ConcurrentHashmap)
线程的状态
线程的阻塞的方式
sleep 和 wait 的区别
hashmap 的底层实现
一万个人抢 100 个红包,如何实现(不用队列),如何保证 2 个人不能抢到同一个红包,可用分布式锁
java 内存模型,垃圾回收机制,不可达算法
两个 Integer 的引用对象传给一个 swap 方法在方法内部交换引用,返回后,两个引用的值是否会发现变化
aop 的底层实现,动态代理是如何动态,假如有 100 个对象,如何动态的为这 100 个对象代理
是否用过 maven install。maven test。git(make install 是安装本地 jar 包)
tomcat 的各种配置,如何配置 docBase
spring 的 bean 配置的几种方式
web.xml 的配置
spring 的监听器。
zookeeper 的实现机制,有缓存,如何存储注册服务的
IO 会阻塞吗?readLine 是不是阻塞的
用过 spring 的线程池还是 java 的线程池?
字符串的格式化方法(20,21 这两个问题问的太低级了)
时间的格式化方法
定时器用什么做的
线程如何退出结束
java 有哪些锁?乐观锁 悲观锁 synchronized 可重入锁 读写锁, 用过 reentrantlock 吗?reentrantlock 与 synmchronized 的区别
ThreadLocal 的使用场景
java 的内存模型,垃圾回收机制
为什么线程执行要调用 start 而不是直接 run(直接 run,跟普通方法没什么区别,先调 start,run 才会作为一个线程方法运行)
qmq 消息的实现机制 (qmq 是去哪儿网自己封装的消息队列)
遍历 hashmap 的三种方式
jvm 的一些命令
memcache 和 redis 的区别
mysql 的行级锁加在哪个位置
ConcurrentHashmap 的锁是如何加的?是不是分段越多越好
myisam 和 innodb 的区别(innodb 是行级锁,myisam 是表级锁)
mysql 其他的性能优化方式
linux 系统日志在哪里看
如何查看网络进程
统计一个整数的二进制表示中 bit 为 1 的个数
jvm 内存模型,java 内存模型

【阿里巴巴面试题目】欢迎大家加入 Java 进阶高级架构:702895903

如何把 java 内存的数据全部 dump 出来
如何手动触发全量回收垃圾,如何立即触发垃圾回收
hashmap 如果只有一个写其他全读会出什么问题
git rebase
mongodb 和 hbase 的区别
如何解决并发问题
volatile 的用途
java 线程池(好像之前我的理解有问题)
mysql 的 binlog
代理模式
mysql 是如何实现事务的
读写分离何时强制要读主库,读哪个从库是通过什么方式决定的,从库的同步 mysql 用的什么方式
mysql 的存储引擎
mysql 的默认隔离级别,其他隔离级别
将一个链表反转(用三个指针,但是每次只发转一个)
spring Aop 的实现原理,具体说说
何时会内存泄漏,内存泄漏会抛哪些异常
是否用过 Autowire 注解
spring 的注入 bean 的方式
sql 语句各种条件的执行顺序,如 select,where,order by,group by
select xx from xx where xx and xx order by xx limit xx;如何优化这个(看 explain)
四则元算写代码
统计 100G 的 ip 文件中出现 ip 次数最多的 100 个 ip
zookeeper 的事物,结点,服务提供方挂了如何告知消费方
5 台服务器如何选出 leader(选举算法)
适配器和代理模式的区别
读写锁
static 加锁
事务隔离级别
门面模式,类图 (外观模式)
mybatis 如何映射表结构
二叉树遍历
主从复制
mysql 引擎区别
静态内部类加载到了哪个区?方法区
class 文件编译后加载到了哪
web 的 http 请求如何整体响应时间变长导致处理的请求数变少,该如何处理?用队列,当处理不了那么多 http 请求时将请求放到队列

中慢慢处理,web 如何实现队列

线程安全的单例模式
快速排序性能考虑
volatile 关键字用法
求表的 size,或做数据统计可用什么存储引擎
读多写少可用什么引擎
假如要统计多个表应该用什么引擎
concurrenhashmap 求 size 是如何加锁的,如果刚求完一段后这段发生了变化该如何处理
1000 个苹果放 10 个篮子,怎么放,能让我拿到所有可能的个数
可重入的读写锁,可重入是如何实现的?
是否用过 NIO
java 的 concurrent 包用过没
sting s=new string(“abc”) 分别在堆栈上新建了哪些对象
java 虚拟机的区域分配,各区分别存什么
分布式事务(JTA)
threadlocal 使用时注意的问题(ThreadLocal 和 Synchonized 都用于解决多线程并发访问。但是 ThreadLocal 与 synchronized 有本质的区别。synchronized 是利用锁的机制,使变量或代码块在某一时该只能被一个线程访问。而 ThreadLocal 为每一个线程都提供了变量的副本,使得每个线程在某一时间访问到的并不是同一个对象,这样就隔离了多个线程对数据的数据共享。而 Synchronized 却正好相反,它用于在多个线程间通信时能够获得数据共享)
java 有哪些容器 (集合,tomcat 也是一种容器)
二分查找算法
myisam 的优点,和 innodb 的区别
redis 能存哪些类型
http 协议格式,get 和 post 的区别
可重入锁中对应的 wait 和 notify
redis 能把内存空间交换进磁盘中吗 (这个应该是可以的,但是那个面试官非跟我说不可以)
java 线程池中基于缓存和基于定长的两种线程池,当请求太多时分别是如何处理的?定长的事用的队列,如果队列也满了呢?交换进磁盘?基于缓存的线程池解决方法呢?
synchronized 加在方法上用的什么锁
可重入锁中的 lock 和 trylock 的区别
innodb 对一行数据的读会枷锁吗?不枷锁,读实际读的是副本
redis 做缓存是分布式存的?不同的服务器上存的数据是否重复?guava cache 呢?是否重复?不同的机器存的数据不同
用 awk 统计一个 ip 文件中 top10
对表做统计时可直接看 schema info 信息,即查看表的系统信息
mysql 目前用的版本
公司经验丰富的人给了什么帮助?(一般 boss 面会问这些)
自己相对于一样的应届生有什么优势
自己的好的总结习惯给自己今后的工作带了什么帮助,举例为证
原子类,线程安全的对象,异常的处理方式
4 亿个 int 数,如何找出重复的数(用 hash 方法,建一个 2 的 32 次方个 bit 的 hash 数组,每取一个 int 数,可 hash 下 2 的 32 次方找到它在 hash 数组中的位置,然后将 bit 置 1 表示已存在)
4 亿个 url,找出其中重复的(考虑内存不够,通过 hash 算法,将 url 分配到 1000 个文件中,不同的文件间肯定就不会重复了,再分别找出重复的)

有 1 万个数组,每个数组有 1000 个整数,每个数组都是降序的,从中找出最大的 N 个数,N<1000

LinkedHashmap 的底层实现
类序列化时类的版本号的用途,如果没有指定一个版本号,系统是怎么处理的?如果加了字段会怎么样?
Override 和 Overload 的区别,分别用在什么场景
java 的反射是如何实现的

【阿里巴巴面试题目含答案】
1,mysql 的三大引擎是啥?
mysql 常用的引擎有 InnoDB,MyISAM,Memory,默认是 InnoDB
InnoDB:磁盘表,支持事务,支持行级锁,B+Tree 索引
ps: 优点:具有良好的 ACID 特性。适用于高并发,更新操作比较多的表。需要使用事务的表。对自动灾难恢复有要求的表。
缺点:读写效率相对 MYISAM 比较差。占用的磁盘空间比较大。
mysql 的 4 大特性 + 4 种隔离级别:
MyISAM:磁盘表,不支持事务,支持表级锁,B+Tree 索引
ps: 优点:占用空间小,处理速度快(相对 InnoDB 来说)
缺点:不支持事务的完整性和并发性
MEMORY(Heap):内存表,不支持事务,表级锁,Hash 索引,不支持 Blob,Text 大类型
ps: 优点:速度要求快的,临时数据
缺点:丢失以后,对项目整体没有或者负面影响不大的时候。
2,redis 的 hash 算法用的是啥?
redis 应该是使用一致性 hash 算法 —MurmurHash3 算法,具有低碰撞率优点,google 改进的版本 cityhash 也是 redis 中用到的哈希算法。
现有的主流的大数据系统都是用的 MurmurHash 本身或者改进
3,nosql 为啥比 sql 快?
Nosql 是非关系型数据库,因为不需要满足关系数据库数据一致性等复杂特性所以速度快;
sql 是关系型数据库,功能强大,但是效率上有瓶颈
4,什么是索引为啥 nosql 没索引?nosql 有索引滴
索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。
聚簇索引:有主键时,根据主键创建聚簇索引;没有主键时,会用一个唯一且不为空的索引列做为主键,成为此表的聚簇索引;如果以上两个都不满足那 innodb 自己创建一个虚拟的聚集索引
非聚簇索引:非聚簇索引都是辅助索引,像复合索引、前缀索引、唯一索引
5,B+ 树和 B 树区别?
B 树的非叶子节点存储实际记录的指针,而 B + 树的叶子节点存储实际记录的指针
B+ 树的叶子节点通过指针连起来了, 适合扫描区间和顺序查找。
BATJ 面试题目
欢迎大家加入 Java 高级架构 / 互联网:570210627
1,应该怎么封装简历才有 BATJ 面试机会?
2,HashMap 底层执行原理,
3,hashtable 和 ConcurrentHashMap 如何实现线程安全?
4,jvm 的内存布局,垃圾回收机制
5,类加载机制里的,双亲委派模型
6,阐述事务的隔离级别和传播属性
7,高并发下,如何做到安全的修改同一行数据?
8,A 服务调用 B 服务多接口,响应时间最短方案;
9,A 系统给 B 系统转 100 块钱,如何实现?
10,动态代理的几种实现方式及优缺点
11,多线程下读概率远远大于写概率,如何解决并发问题?
12,按线程池内部机制,当提交新任务时,有哪些异常要考虑?
13,@Transaction 注解一般写在什么位置? 如何控制其回滚?
14,说说 Spring 的 IOC 容器初始化流程?
15,说说 springboot 启动机制
16,Redis 高性能的原因大概可以讲一些?
17,你是怎么控制缓存的更新?(被动方式 / 主动方式 / 增量 / 全量)?
18,浅析 Http 和 https 的三次握手有什么区别。
19,谈谈 Session/cookie 机制,如何实现会话跟踪?
20,什么是一致性 hash?
21,MQ 有可能发生重复消费,如何避免,如何做到幂等?
22,如何做限流策略,令牌桶和漏斗算法的使用场景?

正文完
 0