跳至主要內容
消息队列面试

消息队列面试夺命连环问

为什么使用消息队列?

解耦

看这么个场景。A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负责人几乎崩溃......

img
img

钝悟...大约 34 分钟分布式分布式通信MQMQ综合Java中间件MQ面试
Mysql 面试

Mysql 面试

基础

EXISTS 和 IN 有什么区别?

  • EXISTS - 先对外表进行循环查询,再将查询结果放入 EXISTS 的子查询中进行条件比较,确定外层查询数据是否保留;
  • IN - 先查询内表,将内表的查询结果作为条件,提供给外表查询语句进行比较;

索引是个前提,其实选择与否还是要看表的大小。你可以将选择的标准理解为小表驱动大表。在这种方式下效率是最高的。

比如下面这样:


钝悟...大约 53 分钟数据库关系型数据库Mysql数据库关系型数据库Mysql面试
系统架构面试

系统架构面试

如何设计一个秒杀系统?

秒杀系统的挑战

秒杀的核心问题就是极高并发处理,由于系统要在瞬时承受平时数十倍甚至上百倍的流量,这往往超出系统上限,因此处理秒杀的核心思路是限流和缓存

秒杀系统的解决思路

  • 系统上有拦截流量:尽可能在上游拦截和限制请求,限制流入后端的量,保证后端系统正常。 因为无论多少人参与秒杀,实际成交往往是有限的,而且远小于参加秒杀的人数,因此可以通过前端系统进行拦截,限制最终流入系统的请求数量,来保证系统正常进行。
  • 充分利用缓存:这是一个典型的读多写少的应用场景(一趟火车其实只有 2000 张票,200w 个人来买,最多 2000 个人下单成功,其他人都是查询库存,写比例只有 0.1%,读比例占 99.9%),非常适合使用缓存。

钝悟...大约 3 分钟设计架构综合架构面试
Redis 面试

Redis 面试

Redis 简介

什么是 Redis

【问题】

  • 什么是 Redis?
  • Redis 有什么功能和特性?

【解答】

什么是 Redis:

Redis 是一个开源的“内存”数据库。由于,Redis 的读写操作都是在内存中完成,因此其读写速度非常快

  • 高性能 - 由于,Redis 的读写操作都是在内存中完成,因此性能极高。
  • 高并发 - Redis 单机 QPS 能达到 10w+,将近是 Mysql 的 10 倍。

钝悟...大约 36 分钟数据库KV数据库Redis数据库KV数据库Redis面试
Elasticsearch 面试总结

Elasticsearch 面试总结

集群部署

ES 部署情况:

5 节点(配置:8 核 64 G 1T),总计 320 G,5 T。

约 10+ 索引,5 分片,每日新增数据量约为 2G,4000w 条。记录保存 30 天。

性能优化

filesystem cache

你往 es 里写的数据,实际上都写到磁盘文件里去了,查询的时候,操作系统会将磁盘文件里的数据自动缓存到 filesystem cache 里面去。


钝悟...大约 40 分钟数据库搜索引擎数据库Elasticsearch数据库搜索引擎数据库Elasticsearch面试
Java 面试总结

Java 面试总结

基础

工具类

String

String 类能被继承吗?

String,StringBuffer,StringBuilder 的区别。

String 类不能被继承。因为其被 final 修饰,所以无法被继承。

StringBuffer,StringBuilder 拼接字符串,使用 append 比 String 效率高。因为 String 会隐式 new String 对象。

StringBuffer 主要方法都用 synchronized 修饰,是线程安全的;而 StringBuilder 不是。


钝悟...大约 41 分钟JavaJavaSEJavaJavaSE面试
计算机网络面试总结

计算机网络面试总结

如果你不是从事于通信领域,面试时问及计算机网络的知识,一般也就限定在:HTTP(含 HTTPS、Cookie、Session)、TCP、UDP、Socket 这些

综合

计算机网络如何分层?

❓ 问题:计算机网络如何分层?各层的作用是什么?各层的主要协议、设备分别是什么?

这是学习计算机网络知识宏观层面必须要了解的核心点。知道了这些,对于网络的体系结构就基本上了解了。


钝悟...大约 10 分钟网络网络综合网络面试
Spring 面试

Spring 面试

综合篇

不同版本的 Spring Framework 有哪些主要功能?

Version Feature
Spring 2.5 发布于 2007 年。这是第一个支持注解的版本。
Spring 3.0 发布于 2009 年。它完全利用了 Java5 中的改进,并为 JEE6 提供了支持。
Spring 4.0 发布于 2013 年。这是第一个完全支持 JAVA8 的版本。

钝悟...大约 21 分钟Java框架SpringSpring综合Java框架Spring面试
分布式面试总结

分布式面试总结

分布式缓存

Redis 有什么数据类型?分别用于什么场景

数据类型 可以存储的值 操作
STRING 字符串、整数或者浮点数 对整个字符串或者字符串的其中一部分执行操作
对整数和浮点数执行自增或者自减操作
LIST 列表 从两端压入或者弹出元素
读取单个或者多个元素
进行修剪,只保留一个范围内的元素
SET 无序集合 添加、获取、移除单个元素
检查一个元素是否存在于集合中
计算交集、并集、差集
从集合里面随机获取元素
HASH 包含键值对的无序散列表 添加、获取、移除单个键值对
获取所有键值对
检查某个键是否存在
ZSET 有序集合 添加、获取、删除元素
根据分值范围或者成员来获取元素
计算一个键的排名

钝悟...大约 27 分钟分布式分布式综合分布式分布式综合面试