9面阿里Java岗,最终定级P6拿P7工资,分享学习经验

一面:

1. 离职原因;

2. Zookeeper在项目中的使用及原理;

3. Springcloud的一些组件介绍;

4. 分布式锁:

Redis实现方式:

redis:为什么使用setnx,或者说set 和setNx有什么区别;

setNx:系统在10:05 设置一个值,并给出5分钟的过期时间,系统刚刚set完之后redis集群崩溃,10:11分系统重启成功,那么redis中set的值是否还存在?

考察点:

1、redis 的持久化:刚set完是否能够被持久化到快照或者binlog日志中;

2、假设redis被持久化,且系统重启时间超过了redis设置的过期时间,那么key是否会被清理;

zookeeper实现方式:

5. 多线程的创建方式:

1、继承thread类;

2、实现runnable接口;

3、实现callable接口;

4、线程池方式进行创建及每个参数之间的逻辑关系;

6. 服务器CPU数量及线程池数量的关系;

1、服务器cpu数量(n);

2、是IO密集型(2n个线程)应用还是计算密集型(n+1个线程)应用;

7. Mysql的sql优化

优化方向:

1、 Mysql使用过程中走索引的语句:

2、 索引的优化:

3、 亿级的数据必须使用like进行查询,如何优化?

8. 如何做一个秒杀系统;

1、MQ做限流:保证只有1000个人可以访问系统;

2、使用redis做缓存;

3、redis往mysql中进行持久化

9. 自己认为自己的技术怎么样?

二面:

1. Mysql是集群还是单节点;最大的表中数据量大约是多少?3000w-4000w;

2. Mysql主从配置是DBA去做还是自己去做?mysql主从同步的机制的原理?mysql主从复制主要有几种模式?

3. Redis持久化方式:rdb、aof;redis中哪个版本开始可以对分布式使用;

4. Nginx的使用场景;

1、请求转发;

2、负载均衡;

5. Spark主要用来做什么的?

第三面至第八面所有面试题

1.ConcurrentHashMap底层原理

2.手写一个LRU

用LinkedHashMap

3.HashMap底层数据结构

4.为什么用红黑树不用普通的AVL树

5.为什么在8的时候链表变成树

6.为什么在6的时候从树退回链表

7.线程池7个参数,该怎么配置最好

8.说一下volatile

9.volatile的可见性和禁止指令重排序怎么实现的

可见性:缓存一致性协议

禁止指令重排序:JMM模型里有8个指令完成数据的读写,通过其中load和store指令相互组合成的4个内存屏障实现禁止指令重排序

10.CAS是什么

11.PriorityQueue底层是什么,初始容量是多少,扩容方式呢

最小堆,

11,若原始大小<64,则扩容为原来的2倍+2,不然就扩容为原来的1.5倍

12.HashMap的容量为什么要设置为2的次幂

13.你知道跳表吗,什么场景会用到

ConcurrentSkipListMap,用在多线程下需要自定义排序顺序时

14.CopyOnWriteArrayList知道吗,迭代器支持fail-fast吗

线程安全ArrayList,写时复制,迭代器是采用快照风格,不支持fail-fast

15.innodb的底层数据结构

16.为什么用B+树不用B树

17.为什么用B+树不用红黑树

18.coding:无序数组怎么寻找第k大的数,写一个二叉树层次遍历

19.不知道大小的数据流取其中100个数,怎样的取法能最随机

20.n个物品每个物品都有一定价值,分给2个人,怎么分两个人的价值差最小

21.假设百度每个页面能放100个网页,每个页面都有一个评分,怎样快速找到第8页的所有网页

第九面

面试他的是一位阿里P9,这位大佬只问了一道题是:LINUX的内核是什么?

这大佬最后定级的是阿里P6+,拿的是P7的工资,60W的年薪,这就是真实的P6+的年薪,这位大佬23岁,注意年龄是23岁!拿到了阿里60W的年薪

这位大佬最近分享了一份Java全栈知识点的面试题涉及:Java基础题、Java集合、异常&反射、IO&NIO、多线程、JVM、Linux、Mysql、Spring、Mybatis、Nginx、Redis、Dubbo、SpringBoot、Kafka 、SpringCloud、简历这些模板

Java基础题(32道题)

17.Locale类是什么?

18Java中final. finally. finalize的区别与用法

19.hashCode0和equals0的区别

20.深拷贝和浅拷贝的区别是什么?

21Java中操作字符串都有哪些类?它们之间有什么区别?

22.String str= "a"与String str=new String("a")- 样吗?

23.抽象类能使用final修饰吗?

24.static关键字5连问

25.重载(Overload) 和重写(Override) 的区别。重载的方法能否根据返回类型进行区分?

26Java的四种引用

27.Java中Comparator与Comparable有什么不同?

28. Java序列化,反序列化?

29.什么情况需要Java序列化?

30.序列化的实现?

31.如果某些数据不想序列化,如何处理?

32.Java泛型和类型擦除?

9面阿里Java岗,最终定级P6拿P7工资,分享学习经验_第1张图片

java集合(19道题)

面试指导脑图

9面阿里Java岗,最终定级P6拿P7工资,分享学习经验_第2张图片

1.Java集合框架的基础接口有哪些?

2.Collection和Collections 有什么区别?

3.List. Set. Map是否继承自Collection接口?

4.Collections.sort排序内部原理

5.List. Set. Map 之间的区别是什么?

6.HashMap和Hashtable有什么区别?

7.如何决定使用HashMap还是TreeMap?

8.说一下HashMap的实现原理?

9.说一下HashSet的实现原理?

10.ArrayList和LinkedList的区别是什么?

11.为何Map接口不继承Collection接口?

12.ArrayList和Vector有何异同点?

13.Array和ArrayList有何区别?

14.在Queue中poll0和remove0有什么区别?

15.LinkedHashMap有什么特点?

16.HashMap的底层实现原理? (高频问题)

17.HashMap并发安全的问题

18JDK1.8与JDK1.7的性能对比

19HashMap操作注意事项以及优化?

9面阿里Java岗,最终定级P6拿P7工资,分享学习经验_第3张图片

异常&反射(12道)

1.error和exception有什么区别?

2.说出5个常见的RuntimeException?

3.throw和throws的区别?

4.Java中异常分类

5.如何自定义异常

6Java中异常处理

7.什么是Java反射机制?

8.举例什么地方用到反射机制?

9.java反射机制的作用

10.Java反射机制类

11 .反射机制优缺点?

12.利用反射创建对象?

9面阿里Java岗,最终定级P6拿P7工资,分享学习经验_第4张图片

IO&NIO(22道)

6.阻塞10 (blocking 10)

7.非阻塞I/O (nonblocking 10)

8.I/O多路复用模型(10 multiplexing)

9.信号驱动I/O模型

10.异步/O(asynchronous 10)

11.NIO与10的区别?

12.NIO和I0适用场景

13.NIO核心组件

14.什么是channel

15.Java NIO中最常用的通道实现?

16.Buffer是什么?

17.核心Buffer实现有哪些?

18.buffen读写数据基本操作

19.Selector是什么?

20.通道可以监听哪几个事件?

21.为什么要用Selector?

22 Selector处理多Channe|图文说明

9面阿里Java岗,最终定级P6拿P7工资,分享学习经验_第5张图片

多线程(100道题)

1.什么是进程?

2.什么是线程?

3.线程的实现方式?

4.Theaed类中的start0和run0方法有什么区别?

5.线程NEW状态

6.线程RUNNABLE状态

7.线程的RUNNING状态

8.线程的BLOCKED状态

9.线程的TERMINATED状态

10.线程状态转化图


........................................
90.为什么使用线程池

91.线程池工作流程

92.创建线程池参数有哪些,作用?

93.向线程池提交任务

94.关闭线程池

95.线程池如何合理设置

96.Executor

97.Executor框架的主要成员

98.FixedThreadPool

99.SingleThreadExecutor

100.CachedThreadPool

9面阿里Java岗,最终定级P6拿P7工资,分享学习经验_第6张图片

JVM(50道题)

1JDK、JRE、 JVM关系?

2.启动程序如何查看加载了哪些类,以及加载顺序?

3. class字节码文件10个主要组成部分?

4.画一下jvm内存结构图?

5.程序计数器

6Java虚拟机栈

7.本地方法栈

8Java堆

9.方法区

10.运行时常量池?

11.什么时候抛出StackOverflowError?

12.Java7和Java8在内存模型上有什么区别?

13.程序员最关注的两个内存区域?

14.直接内存是什么?

15.除了哪个区域外,虚拟机内存其他运行时区域都会发生OutOfMemoryError?

16.什么情况下会出现堆内存溢出?

18.空间什么情况下会抛出OutOfMemoryError?

19.如何实现StrackOverflowError?

20.如何设置直接内存容量?

21.Java堆内存组成?

22.Edem : from : to默认比例是?

23.垃圾标记阶段?

24.引用计数法?

25.根搜索算法?

26JVM中三种常见的垃圾收集算法?

27标记-清除算法?

28.复制算法?

29.标记-整理算法?

30.分代收集算法?

31.垃圾收集器?

32.Stop The World?
34.PartNew收集器?

36.Parallel Scavenge?

37.Parallel Old收集器?

38.CMS收集器?

39.CMS垃圾回收的步骤?

41.CMS收集器优点?缺点?

42.G1收集器?

42. G1收集器是如何改进收集方式的?

43.虚拟机进程状况工具?

44.虚拟机统计信息工具?

45.jstat工具主要选项?

45.配置信息工具?

46.内存映像工具?

47虚拟机堆转存储快照分析工具?

48.堆栈跟踪工具?

49.除了命令行,还有什么可视化工具?

50.类加裁过程?

9面阿里Java岗,最终定级P6拿P7工资,分享学习经验_第7张图片

Linux(50道题)

...............................

34.源码安装通常的路子?

35.vim编辑器几种操作模式?基本操作?

36.查看设备还有多少磁盘空间?

37.默认进程信息显示?

38.实时监测进程

39.如何中断一个进程?

40.如何把一个进程放到后台运行?

41如何停止一个进程?

42.验证网络可连接命令是什么?什么原理?

43.查看某端口是否被占用?

44如何查找匹配的文件?基于文件属性?

45.如何查看当前主机名?如何修改?如何重启后生效?

46.如何写一条规则, 拒绝某个ip访问本机8080端口?

47.哪个文件包含了主机名和ip的映射关系?

48.如何用sed只打印第5行?删除第一行? 替换字符串?

49.打印文件第一行到第三行?

50.如何用awk查看第2行倒数第3个字段?

9面阿里Java岗,最终定级P6拿P7工资,分享学习经验_第8张图片

Mysql(50道题)

...............................

35.视图的优缺点?

36.主键和唯一索引区别?

37.如何随机获取一条记录?

38.Mysql中的数值类型?

39.查看当前表有哪些索引?

40.索引不生效的情况?

41.MWC?

42.sq|语句的执行流程?

43.如何获取select语句执行计划?

44.explain列有哪些?含义?

45.MySql最多创建多少列索引?

46.为什么最好建立一个主键?

47.字段为什么要求建议为not nul?

48.varchar(10)和int(10)代表什么含义

49.视图是什么?对比普通表优势?

50.count(* )在不同引擎的实现方式?

9面阿里Java岗,最终定级P6拿P7工资,分享学习经验_第9张图片

需要领取这套600+道面试题的朋友麻烦帮忙转发一下这篇文章+关注我,然后点我头像进入个人主页,点击右上角小信封给我发送【面试】二字免费获取!

Spring(50道题)

9面阿里Java岗,最终定级P6拿P7工资,分享学习经验_第10张图片

Mybatis(28道题)

9面阿里Java岗,最终定级P6拿P7工资,分享学习经验_第11张图片

Nginx(16道题)

1.什么是nginx?

2.nginx主要特征?

3.nginx常用命令?

4.工作模式及连接数上限?

5.nginx负载均衡几种算法?

6.nginx有几种进程模型?

7.如何定义错误提示页面?

8.如何精准匹配路径?

9.路径匹配优先级?

10.如何把请求转发给后端应用服务器?

11.如何根据文件类型设置过期时间?

12.禁止访问某个目录?

13.nginx负载均衡实现过程?

14.负载均衡配置?

15.设置超时时间?

16.开启压缩功能好处?坏处?

9面阿里Java岗,最终定级P6拿P7工资,分享学习经验_第12张图片

Redis(50道题)

34.Redis的Java客户端官方推荐?实际选择? ;

35.Redis事务?

36.Redis事务开始到结束的几个阶段?

37.Redis中key的过期操作?

38.Redis过期键删除策略?

39.Pipeline是什么?为什么要它?

40.如何获取当前最大内存?如何动态设置?

41.Redis内存溢出控制?

42.Redis内存溢出策略?

43.Redis高可用方案?

44.Redis集群方案?

45.Redis Cluster槽范围?

46.Redis锁实现思路?

47.什么是布隆过滤器?

48.什么是缓存穿透?处理问题?

49.什么是缓存预热?

50.什么是缓存雪崩?处理问题?

9面阿里Java岗,最终定级P6拿P7工资,分享学习经验_第13张图片

Dubbo(36道题)

SpringBoot(30道题)

Kafka(25道题)

SpringCloud(35道题)

9面阿里Java岗,最终定级P6拿P7工资,分享学习经验_第14张图片

你可能感兴趣的:(Java,面试,程序员,java,学习,面试,Java开发,Java程序员)