2019 最新 阿里天猫、蚂蚁、钉钉ava 面试题汇总,附答案

 

Java面试前须要作足各方面的准备工做,确定都会浏览大量的面试题,本人也不例外,这是一些最新面试题,分享给你们。java

Java基础

面向对象的特征:继承、封装和多态mysql

int 和 Integer 有什么区别;linux

Integer的值缓存范围nginx

说说反射的用途及实现git

Http 请求的 GET 和 POST 方式的区别web

MVC设计思想面试

什么是Java序列化和反序列化;redis

如何实现Java序列化;算法

重载和重写的区别spring

进程和线程

线程和进程的概念

并行和并发的概念

建立线程的方式及实现

进程间通讯的方式

说说 CountDownLatch、CyclicBarrier 原理和区别

说说 Semaphore 原理

说说 Exchanger 原理

ThreadLocal 原理分析;

ThreadLocal为何会出现OOM,出现的深层次原理

讲讲线程池的实现原理

线程池的几种实现方式

线程的生命周期;状态是如何转移的

锁机制

什么是线程安全?如何保证线程安全?

重入锁的概念;重入锁为何能够防止死锁?

产生死锁的四个条件

如何检查死锁

volatile 实现原理

synchronized 实现原理(对象监视器)

synchronized 与 lock 的区别

AQS 同步队列

CAS 无锁的概念;乐观锁和悲观锁

常见的原子操做类

什么是 ABA 问题;出现 ABA 问题 JDK 是如何解决的

乐观锁的业务场景及实现方式

Java 8 并发包下常见的并发类

偏向锁、轻量级锁、重量级锁、自旋锁的概念

数据库

DDL、DML、DCL 分别指什么

explain 命令

脏读、幻读、不可重复读

事务的隔离级别

数据库的几大范式

说说分库与分表设计

分库与分表带来的分布式困境与对应之策

说说 SQL 优化之道

InnoDB 与 MyISAM 区别、优缺点、使用场景

B+树索引、全文索引、哈希索引,的区别

什么是自适应哈希索引(AHI)

为何要用 B+tree 做为 MySql 索引的数据结构

汇集索引与非汇集索引的区别

limit 20000 加载很慢怎么解决

常见的几种分布式 ID 的设计方案

JVM

JVM 运行时内存区域划分

常见的 GC 回收算法及其含义

常见的 JVM 性能监控和故障处理工具类

JVM 性能调优

类加载器、双亲委派模型

类加载的过程

强引用、软引用、弱引用、虚引用

Java 内存模型 JMM

如下是阿里天猫、蚂蚁、钉钉面试题目

不会作别着急:文末有答案以及视频讲解,架构师资料

1. junit用法,before,beforeClass,after, afterClass的执行顺序

2. 分布式锁

3. nginx的请求转发算法,如何配置根据权重转发

4. 用hashmap实现redis有什么问题(死锁,死循环,可用ConcurrentHashmap)

5. 线程的状态

5. 线程的阻塞的方式

6. sleep和wait的区别

7. hashmap的底层实现

8. 一万我的抢100个红包,如何实现(不用队列),如何保证2我的不能抢到同一个红包,可用分布式锁

9. java内存模型,垃圾回收机制,不可达算法

10. 两个Integer的引用对象传给一个swap方法在方法内部交换引用,返回后,两个引用的值是否会发现变化

11. aop的底层实现,动态代理是如何动态,假若有100个对象,如何动态的为这100个对象代理

12. 是否用过maven install。 maven test。git(make install是安装本地jar包)

13. tomcat的各类配置,如何配置docBase

14. spring的bean配置的几种方式

15. web.xml的配置

16. spring的监听器。

17. zookeeper的实现机制,有缓存,如何存储注册服务的

18. IO会阻塞吗?readLine是否是阻塞的

19. 用过spring的线程池仍是java的线程池?

20. 字符串的格式化方法 (20,21这两个问题问的过低级了)

21. 时间的格式化方法

22. 定时器用什么作的

23. 线程如何退出结束

24. java有哪些锁?乐观锁 悲观锁 synchronized 可重入锁 读写锁,用过reentrantlock吗?reentrantlock与synmchronized的区别

25. ThreadLocal的使用场景

26. java的内存模型,垃圾回收机制

27. 为何线程执行要调用start而不是直接run(直接run,跟普通方法没什么区别,先调start,run才会做为一个线程方法运行)

28. qmq消息的实现机制(qmq是去哪儿网本身封装的消息队列)

29. 遍历hashmap的三种方式

30. jvm的一些命令

31. memcache和redis的区别

32. mysql的行级锁加在哪一个位置

33. ConcurrentHashmap的锁是如何加的?是否是分段越多越好

34. myisam和innodb的区别(innodb是行级锁,myisam是表级锁)

35. mysql其余的性能优化方式

36. linux系统日志在哪里看

37. 如何查看网络进程

38. 统计一个整数的二进制表示中bit为1的个数

39. jvm内存模型,java内存模型

【阿里巴巴面试题目】

40. 如何把java内存的数据所有dump出来

41. 如何手动触发全量回收垃圾,如何当即触发垃圾回收

42. hashmap若是只有一个写其余全读会出什么问题

43. git rebase

44. mongodb和hbase的区别

45. 如何解决并发问题

46. volatile的用途

47. java线程池(好像以前个人理解有问题)

48. mysql的binlog

49. 代理模式

50. mysql是如何实现事务的

51. 读写分离什么时候强制要读主库,读哪一个从库是经过什么方式决定的,从库的同步mysql用的什么方式

52. mysql的存储引擎

53. mysql的默认隔离级别,其余隔离级别

54. 将一个链表反转(用三个指针,可是每次只发转一个)

55. spring Aop的实现原理,具体说说

56. 什么时候会内存泄漏,内存泄漏会抛哪些异常

57. 是否用过Autowire注解

58. spring的注入bean的方式

59. sql语句各类条件的执行顺序,如select, where, order by, group by

60. select xx from xx where xx and xx order by xx limit xx; 如何优化这个(看explain)

61. 四则元算写代码

62. 统计100G的ip文件中出现ip次数最多的100个ip

63. zookeeper的事物,结点,服务提供方挂了如何告知消费方

64. 5台服务器如何选出leader(选举算法)

65. 适配器和代理模式的区别

66. 读写锁

67. static加锁

68. 事务隔离级别

69. 门面模式,类图(外观模式)

70. mybatis如何映射表结构

71. 二叉树遍历

72. 主从复制

73. mysql引擎区别

74. 静态内部类加载到了哪一个区?方法区

75. class文件编译后加载到了哪

76. web的http请求如何总体响应时间变长致使处理的请求数变少,该如何处理?用队列,当处理不了那么多http请求时将请求放到队列

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

77. 线程安全的单例模式

78. 快速排序性能考虑

79. volatile关键字用法

80. 求表的size,或作数据统计可用什么存储引擎

81. 读多写少可用什么引擎

82. 假如要统计多个表应该用什么引擎

83. concurrenhashmap求size是如何加锁的,若是刚求完一段后这段发生了变化该如何处理

84. 1000个苹果放10个篮子,怎么放,能让我拿到全部可能的个数

85. 可重入的读写锁,可重入是如何实现的?

86. 是否用过NIO

87. java的concurrent包用过没

88. sting s=new string("abc")分别在堆栈上新建了哪些对象

89. java虚拟机的区域分配,各区分别存什么

90. 分布式事务(JTA)

91. threadlocal使用时注意的问题(ThreadLocal和Synchonized都用于解决多线程并发访问。可是ThreadLocal与synchronized有本质的区别。synchronized是利用锁的机制,使变量或代码块在某一时该只能被一个线程访问。而ThreadLocal为每个线程都提供了变量的副本,使得每一个线程在某一时间访问到的并非同一个对象,这样就隔离了多个线程对数据的数据共享。而Synchronized却正好相反,它用于在多个线程间通讯时可以得到数据共享)

92. java有哪些容器(集合,tomcat也是一种容器)

93. 二分查找算法

94. myisam的优势,和innodb的区别

95. redis能存哪些类型

96. http协议格式,get和post的区别

97. 可重入锁中对应的wait和notify

98. redis能把内存空间交换进磁盘中吗(这个应该是能够的,可是那个面试官非跟我说不能够)

99. java线程池中基于缓存和基于定长的两种线程池,当请求太多时分别是如何处理的?定长的事用的队列,若是队列也满了呢?交换进磁盘?基于缓存的线程池解决方法呢?

100. synchronized加在方法上用的什么锁

101. 可重入锁中的lock和trylock的区别

102. innodb对一行数据的读会枷锁吗?不枷锁,读实际读的是副本

103. redis作缓存是分布式存的?不一样的服务器上存的数据是否重复?guava cache呢?是否重复?不一样的机器存的数据不一样

104. 用awk统计一个ip文件中top10

105. 对表作统计时可直接看schema info信息,即查看表的系统信息

106. mysql目前用的版本

107. 公司经验丰富的人给了什么帮助?(通常boss面会问这些)

108. 本身相对于同样的应届生有什么优点

109. 本身的好的总结习惯给本身从此的工做带了什么帮助,举例为证

110. 原子类,线程安全的对象,异常的处理方式

111. 4亿个int数,如何找出重复的数(用hash方法,建一个2的32次方个bit的hash数组,每取一个int数,可hash下2的32次方找到它在hash数组中的位置,而后将bit置1表示已存在)

112. 4亿个url,找出其中重复的(考虑内存不够,经过hash算法,将url分配到1000个文件中,不一样的文件间确定就不会重复了,再分别找出重复的)

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

113. LinkedHashmap的底层实现

114. 类序列化时类的版本号的用途,若是没有指定一个版本号,系统是怎么处理的?若是加了字段会怎么样?

115. Override和Overload的区别,分别用在什么场景

116. 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+树的叶子节点经过指针连起来了, 适合扫描区间和顺序查找。

BAT面试题目

加QQ群:793042903获取往期Java高级架构资料、源码、笔记、视频、BATJ面试视频资料、如下列举22个视频资料。

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,如何作限流策略,令牌桶和漏斗算法的使用场景?

架构精讲视频以及文档

须要Java架构学习资料视频请加QQ群793042903群内提供免费的学习指导 架构资料 以及解答 不懂得问题均可以在本群提出来 以后还会有职业生涯规划以及面试指导

相关文章
相关标签/搜索