端午难得悠闲,复盘这段时间在:腾讯--道一云、步步高、蓝凌、蜜獾、创智和宇、中智、科创 等面试代表性问题

就po一张offer吧,其他的都差不多

offer.jpg

集合

参见帖子 [集合通关](http://www.gotkx.com/archives/%E9%9B%86%E5%90%88%E9%80%9A%E5%85%B3)

讲讲了解的设计模式

总结定调:设计模式都是多态的体现,一共23种设计模式
面试我主要结合Spring讲了工厂、单例、代理模式,也能手写单例饿汉、双重校验锁。

回来查找资料有如下补充:

  • 工厂设计模式 : Spring使用工厂模式通过BeanFactory、ApplicationContext 创建 bean 对象。
  • 代理设计模式 : Spring AOP 功能的实现。
  • 单例设计模式 : Spring 中的 Bean 默认都是单例的。
  • 模板方法模式 : Spring 中 jdbcTemplate、hibernateTemplate 等以 Template 结尾的对数据库操作的类,它们就使用到了模板模式。
  • 包装器设计模式 : 我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据客户的需求能够动态切换不同的数据源。
  • 观察者模式: Spring 事件驱动模型就是观察者模式很经典的一个应用。
  • 适配器模式 :Spring AOP 的增强或通知(Advice)使用到了适配器模式、spring MVC 中也是用到了适配器模式适配Controller。

并发和多线程

并发包有了解吗
线程通讯和JAVA内存模型
volatile关键字在cpu层面实现了什么
abc三个线程,怎么如何设置b线程优先执行c,其他线程无优先级关系
用过线程池吗?线程池构造方法参数意义
不同的情况应如何设置最大连接线程数和核心线程数
手写生产者消费者多线程实现

中间件(我的简历写的就是这三个):

Nginx:

如何实现负载均衡:
负载均衡算法:
Lua脚本了解吗:

ES:

数学原理清楚吗:
讲下代码里面的运用:
场景题:如何给不同权限的用户,展示不同的搜索结果

RabbitMQ:

常用的模式:
死信队列如何处理:
如何实现多线程消费:

非关系型数据库:

MongoDB:

和传统关系型数据库有什么优势?在项目里面用它干啥

缓存:

Redis:

为什么这么快,底层原理了解吗?
项目用途:
分布式锁了解吗?
集群搭建过吗?何做数据同步备份?

架构级别:

对SpinrgCloud的认知和使用:
后台接口如何保证幂等性:
分布式事务处理:
权限处理:
系统并发控制,限流熔断

数据库:

数据库事务特性

一致性、原子性、持久性、隔离性

数据库的一致性是怎么实现

BinLog

MVCC了解吗?

事务并发控制

数据库是基于什么树结构,有何特点?

B+树

数据库索引了解吗,通常如何使用的?

​ 联合索引、主键索引

索引的原则

最左原则

如何实现数据库优化,聊聊实际遇到的问题

慢查询

Mysql分库和读写分离有实操吗,使用了什么工具实现,Mysql是开源的,其他版本的Mysql了解吗
Oracle和Mysql 漫谈下区别

巴拉巴拉

漫谈下数据库优化

巴拉巴拉

场景题:
  • 一张一百万记录量的表,某个字段假设为0和1,分别占用50万记录,是否应该对该字段建立索引,依据是什么?
  • 一张一百万记录量的表,在对某个字段Sum求和,太慢了,怎么优化?
  • 联合索引三个字段,a_b_c,能命中的组合情况是?

网络:

TCP/IP了解吗,讲一下?
网络IO Socket编程了解吗?

Linux:

根目录下的几个文件夹分别存放什么类型的文件?
两种方式查看Java进程的日志?docker如何查看日志
文件描述符了解吗?
一个日志文件10g,如何快速查看呢?
直接使用 Java -jar 启动jar包有什么问题

前端:

NodeJs了解否?用途
Vue生命周期了解吗?
前端脚手架都用过什么?漫谈一下

无聊问题:好久没用,已经忘完,也不打算补习(认真脸)

  • CSS类选择器怎么修改第一个该类的样式,并且修改内容
  • 正则表达式替换xxx变成yyy
  • 一个表格在前端怎么新增行/列,CSS/Jquery 的实现

撒花结尾:

面的越多,就发现自己的知识体系越浅薄,虽然拿了若干offer,并不满意,
老夫一定会进大厂的!