
面经
文章平均质量分 87
M偶遇在沙漠
学习Java后端开发
展开
-
我不信有 Java 程序员没犯过这 10 个 SQL 错误
Java 程序员编程时需要混合面向对象思维和一般命令式编程的方法,能否完美的将两者结合起来完全得依靠编程人员的水准: 技能(任何人都能容易学会命令式编程) 模式(有些人用“模式-模式”,举个例子,模式可以应用到任何地方,而且都可以归为某一类模式) 心境(首先,要写个好的面向对象程序是比命令式程序难的多,你得花费一些功夫) 但当 Java 程序员写 SQL 语句时,一切都不一样了。SQL 是说明性语言而非面向对象或是命令式编程语言。在 SQL 中要写个查询语句是很简单的。原创 2022-05-24 16:25:53 · 624 阅读 · 0 评论 -
肝了 15000 字性能调优系列专题(JVM、MySQL、Nginx and Tomcat),看不完先收藏
前言性能调优,无疑是个庞大的话题,也是很多项目中非常重要的一环,性能调优难做是众所周知的,毕竟性能调优涵盖的面实在是太多了,在这里我就大概的讲一下企业中最常用的四种调优——JVM 调优、MySQL 调优、Nginx 调优以及 Tomcat 调优,一家之言,有什么说的不对的还请多包涵补充。篇幅所限,有些东西是肯定写不到的,所以本文只是挑了一些重要部分来剖析,如果需要完整详细的掌握性能调优,可以来领取系统整理话不多说,坐稳扶好,发车喽!一、Jvm 性能调优1、JVM 类加载机制详解原创 2022-05-24 16:22:10 · 361 阅读 · 0 评论 -
分布式存储中间件(1):10000 字把 Redis 扒个干净
前言关于分布式系列专题,整体是打算写分布式消息中间件、分布式储存中间件和分布式框架的。分布式消息中间件选择了两个最常用的,之前已经写了,感兴趣的朋友可以看看。这篇文章是写分布式存储中间件种的 Redis,关于 Redis 想必没有任何一个程序员会感到陌生吧,其实网上写 Redis 的文章已经很多了,甚至可以说是泛滥,但总感觉太碎片化了,所以还是想系统的写一下 Redis,当然了,篇幅所限,这篇文章肯定也是写不尽 Redis 的,但是我会尽力把重要的东西都拎出来系统的讲一下,让不了解的朋友看完后对..原创 2022-05-24 15:41:13 · 498 阅读 · 0 评论 -
面试 37 次,16 个 offer 上岸,总结了一些面试心得
前言春招刚过,眼看着马上又要秋招了,所以打算总结一下自己的收获,顺便给大伙输出一些东西,希望对还没上岸的兄弟在秋招取得一个好的结果有一些帮助。不敢说多权威,只是权当给大家一个参考。本文大概分为春招结果、面试指导思想以及面试经验,最后我会放一下我在字节跟腾讯的面试过程,给大家参考一下。春招面试了这么多家公司的准备工作,面试题,以及一些公司的招聘信息和各公司面试偏重点我都有整理好,算是自己的一个小癖好吧,现在我已经上岸了,可以无偿分享给大家,直接点击下方链接领取就好了,祝大家都能早日拿到自己原创 2022-05-24 15:06:20 · 154 阅读 · 0 评论 -
用 10 个真实案列带你掌握 MySQL 调优
前言在应用开发的早期,数据量少,开发人员开发功能时更重视功能上的实现,随着生产数据的增长,很多 SQL 语句开始暴露出性能问题,对生产的影响也越来越大,有时可能这些有问题的 SQL 就是整个系统性能的瓶颈。SQL 优化一般步骤1、通过慢查日志等定位那些执行效率较低的 SQL 语句2、explain 分析 SQL 的执行计划需要重点关注 type、rows、filtered、extra。type 由上至下,效率越来越高 ALL 全表扫描 index 索引全扫描原创 2022-05-24 14:55:15 · 299 阅读 · 0 评论 -
MySQL 不能没有字符串函数,就像西方不能失去耶路撒冷
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特.原创 2022-05-24 14:52:01 · 254 阅读 · 0 评论 -
一条 SQL 语句执行得很慢的原因盘点
前言说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入 URL 回车之后,究竟发生了什么”一样,看看你能说出多少了。所以一篇文章肯定是讲不完的,我这篇文章,更多的是在分析“为什么”,例如可能你知道系统会选错索引,但是可能不并不清楚系统选择索引的原理。如果想搞清楚后者,我在里面有详细的论述。好了,说回正题!之前腾讯面试的实话,也问到这个问题了,不过答的很不好,之前没去想过相关原因,导致一时之间扯不出来。所以今天,我带大家原创 2022-05-24 14:41:28 · 716 阅读 · 0 评论 -
大战 618,决胜双十一 高并发秒杀系统解密—后端 java 程序员力荐
那些场景属于秒杀业务? 商品抢购 群红包 优惠卷领取 抢火车票 在线 预约 …… 小蝌蚪跑步比赛 起点线的故事=============================================================================关于锁的那些事=================================================================原创 2022-05-24 13:43:16 · 151 阅读 · 0 评论 -
Redis 的五种数据结构分析
Redis 本身是一个 Map,其中所有的数据都是采用 key:value 的形式存储这里的数据类型主要是指存储的,也即是 value 的数据类型,key 的数据类型永远都是 Stringredis 中 value 使用的数据结构有: String:字符串类型 List:列表类型 Hash:哈希表类型 Set:无序集合类型 sorted set:有序集合类型 下面我们来一个一个分别来了解一下:一、String:字符串类型redis 是使用 C原创 2022-05-23 19:51:12 · 1298 阅读 · 0 评论 -
Kafka 面试连环炮, 看看你能撑到哪一步?
今天我们就来安排一期关于 Kafka 的核心面试题连环炮, 从「基础知识」、「进阶提升」、「架构调优」三个方向梳理面试题,希望在金三银四的关键节点可以帮助到大家。这篇文章干货很多,希望你可以耐心读完。02kafka 进阶提升10问谈谈你对 kafka 的集群架构是如何理解的?01Kafka 整体架构图一个典型的 Kafka 集群中包含若干 Producer,若干 Broker「Kafka支持水平扩展,一般 Broker 数量越多,集群吞吐率越高」,若干 ...原创 2022-05-23 19:29:00 · 437 阅读 · 0 评论 -
Spring Cloud Ribbon 中的 7 种负载均衡策略
负载均衡通器常有两种实现手段,一种是服务端负载均衡器,另一种是客户端负载均衡器,而我们今天的主角 Ribbon 就属于后者——客户端负载均衡器。服务端负载均衡器的问题是,它提供了更强的流量控制权,但无法满足不同的消费者希望使用不同负载均衡策略的需求,而使用不同负载均衡策略的场景确实是存在的,所以客户端负载均衡就提供了这种灵活性。 然而客户端负载均衡也有其缺点,如果配置不当,可能会导致服务提供者出现热点,或者压根就拿不到任何服务的情况,所以我们本文就来了解一下这 7 种内置负载均衡策略的具体规则。原创 2022-05-23 16:30:03 · 3586 阅读 · 0 评论 -
曾经是“杀手级”桌面语言,Java桌面开发为何走向衰落?
Java 不适合编写桌面应用,这是事实还是偏见?本文作者以个人视角对 Java 桌面发展历程做了回顾,内容来自他在上世纪九十年代后期担任 Java 开发者时的所见所感,主要讲述曾经的“杀手级”桌面语言 Java 是为何从 21 世纪开始颓势尽显、步入衰落的。值得一提的是,作者如今在做一款开发者友好型 Java 桌面部署工具(jDeploy),其实他还是希望 Java 可以重拾风采,再度变得对桌面开发具有吸引力。我的大学时代正好赶上 2000 年之前的最后那几年,当时 Java 是计算科学专业里的官..原创 2022-05-23 16:21:23 · 882 阅读 · 1 评论 -
大数据基础处理框架
Apache HadoopApache Hadoop 是一种专用于批处理的处理框架。Hadoop 是首个在开源社区获得极大关注的大数据框架。基于谷歌有关海量数据处理所发表的多篇论文与经验的 Hadoop 重新实现了相关算法和组件堆栈,让大规模批处理技术变得更易用。新版 Hadoop 包含多个组件,即多个层,通过配合使用可处理批数据。| 组件名称 | 说明 || --- | --- || HDFS | HDFS 是一种分布式文件系统层,可对集群节点间的存储和复制进行协调。HDF原创 2022-05-23 16:10:10 · 391 阅读 · 0 评论 -
java 培训 JVM 面试题分享
一、JVM 基础知识1)Java 是如何实现跨平台的?注意:跨平台的是 Java 程序,而不是 JVM。JVM 是用 C/C++ 开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 JVM答: 我们编写的 Java 源码,编译后会生成一种 .class 文件,称为字节码文件。Java 虚拟机(JVM)就是负责将字节码文件翻译成特定平台下的机器码然后运行,也就是说,只要在不同平台上安装对应的 JVM,就可以运行字节码文件,运行我们编写的 Java 程序。而这个过程,我们编写的原创 2022-05-23 15:02:34 · 244 阅读 · 0 评论 -
面试官:Redis中的缓冲区了解吗
Redis 大家肯定不陌生,但在使用层面看不到的地方,就容易被忽略。今天想和大家分享的内容是Redis 各个缓冲区的作用、溢出的后果及优化方向。在开始正文前,想多叨叨几句。不管是 Redis 还是其他中间件,底层很多原理都是相似的,设计思想都是通用的。大家以后如果在学什么新框架/组件,可以尽量和已经学过的知识点进行联想,这样会更容易理解点的,不至于说死记硬背。比如现在说到的缓冲区,它的目的是什么呢?无它,为了性能。要么缓存数据,提高响应速度。比如 MySQL 中有个.原创 2022-05-23 14:54:12 · 313 阅读 · 0 评论 -
【漏洞分析】jdk9+Spring 及其衍生框架
一. 漏洞利用条件jdk9+Spring 及其衍生框架使用 tomcat 部署 spring 项目使用了 POJO 参数绑定Spring Framework 5.3.X < 5.3.18 、2.X < 5.2.20 或者其他版本二. 漏洞分析通过 API Introspector. getBeanInfo 可以获取到 POJO 的基类 Object.class 的属性 class,进一步可以获取到 Class.class 的其他属性,其中就包括了 classloa原创 2022-05-23 14:38:43 · 364 阅读 · 0 评论 -
面试必备:聊聊分布式锁的多种实现
前言今天跟大家探讨一下分布式锁的设计与实现。希望对大家有帮助,如果有不正确的地方,欢迎指出,一起学习,一起进步哈~ 分布式锁概述 数据库分布式锁 Redis分布式锁 Zookeeper分布式锁 三种分布式锁对比 1. 分布式锁概述我们的系统都是分布式部署的,日常开发中,秒杀下单、抢购商品等等业务场景,为了防⽌库存超卖,都需要用到分布式锁。分布式锁其实就是,控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或同一个系统的不同..原创 2022-05-22 16:48:22 · 112 阅读 · 0 评论 -
28 天面试突击:JVM+Redis
首先我们来先看看虚拟内存与物理内存,虚拟内存和物理内存的关系印证了一句名言,「操作系统中的任何问题都可以通过一个抽象的中间层来解决」,虚拟内存正是如此。没有虚拟内存,进程直接就可能修改其它进程的内存数据,虚拟内存的出现对内存使用做好了隔离,每个进程拥有独立的、连续的、统一的虚拟地址空间(好一个错觉)。像极了一个恋爱中的男人,拥有了她,仿佛拥有了全世界。应用程序看到的都是虚拟内存,通过 MMU 进行虚拟内存到物理内存的映射,我们知道 linux 内存是按 4k 对齐,4k = 2^12原创 2022-05-22 16:32:08 · 122 阅读 · 0 评论 -
深入理解 Java 虚拟机之类加载机制篇,秋招 java 后端面试
? 图中,虽然加载、验证、准备、初始化和卸载这 5 个阶段的顺序是确定的,但是类的加载过程并不是一定会按照这些顺序执行的,这些阶段都是互相交叉地混合式进行的,通常会在一个阶段执行的过程中调用、激活另外一个阶段;解析阶段在某些情况下可以在初始化阶段进行时,再进行解析,为了能够满足 Java 语言的运行时绑定(动态绑定)? Java 虚拟机规范并没有强制确定类加载过程的第一个阶段是加载,这主要取决于虚拟机的具体实现。但对于初始化阶段,虚拟机规范明确规定了面临这以下 5 种情况时,必须对类进行“...原创 2022-05-22 15:56:33 · 107 阅读 · 0 评论 -
2022年最新版 Java 后端最全面试攻略,全面对标 BATJ
前言小编分享的这份 Java 后端开发面试总结包含了 JavaOOP、Java 集合容器、Java 异常、并发编程、Java 反射、Java 序列化、JVM、Redis、Spring MVC、MyBatis、MySQL 数据库、消息中间件 MQ、Dubbo、Linux、ZooKeeper、 分布式 &数据结构与算法等 25 个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份 PDF 拿下众多大厂的 offer,今天在这里总结分享给到大家!小编这篇分享篇幅可能有点长,观看原创 2022-05-22 14:59:41 · 361 阅读 · 0 评论 -
36 天突击腾讯终拿 Offer, Redis、高并发
项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果? redis 和 memcached 有什么区别?redis 的线程模型是什么?为什么 redis 单线程却能支撑高并发? redis 都有哪些数据类型?分别在哪些场景下使用比较合适? redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现? 如何保证 redis 的高并发和高可用?redis 的主从复制原理能介绍一下么?redis 的哨兵原理能介绍一下么? r..原创 2022-05-20 17:19:21 · 153 阅读 · 0 评论 -
Java 集合容器篇面试题- 王者笔记
2. SetHashSet(无序,唯一):基于 HashMap 实现的,底层采用 HashMap 来保存元素LinkedHashSet: LinkedHashSet 继承与 HashSet,并且其内部是通过 LinkedHashMap 来实现的。有点类似于我们之前说的 LinkedHashMap 其内部是基于 Hashmap 实现一样,不过还是有一点点区别的。TreeSet(有序,唯一): 红黑树(自平衡的排序二叉树。)3.MapHashMap: JDK1.8 之前 HashMa原创 2022-05-20 17:10:23 · 179 阅读 · 0 评论 -
Java 面试必备:阿里首发面试通关宝典震撼开源
什么是守护线程? join ()方法的作用是什么? 如何通过 JDBC 访问数据库? JDBC 处理事务采用什么方法? Class.forName 的作用是什么? Statement、PreparedStatement 和 CallableStatement 有什么区别? getString ()方法与 getObject ()方法有什么区别? 使用 JDBC 时需要注意哪些问题? 什么是 JDO? JDBC 与 ..原创 2022-05-20 17:15:32 · 382 阅读 · 0 评论 -
redis 的五种数据类型
2、Redis 是一个 key-value 存储系统,它支持存储的 value 类型相对更多,包括 string、list、set、zset(sorted set --有序集合)和 hash。这些数据结构都支持 push/pop、add/remove 及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis 支持各种不同方式的排序。为了保证效率,数据都是缓存在内存中,Redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了 master-sl原创 2022-05-20 16:30:36 · 1199 阅读 · 0 评论 -
pring Cloud Gateway整合OAuth2思路分享
两种思路通常微服务的认证和授权思路有两种: 所有的认证授权都由一个独立的用户认证授权服务器负责,它只负责发放Token,然后网关只负责转发请求到各个微服务模块,由微服务各个模块自行对Token进行校验处理。 另一种是网关不但承担了流量转发作用,还承担认证授权流程,当前请求的认证信息由网关中继给下游服务器。 第一种非常简单,而且我在多个微服务项目中都是这样设计的。如果你从来没有设计过,我其实建议按这个思路去做,你只需要搞一个负责管理用户、角色权限的服务器,其它的微服务模块都作为资源服务原创 2022-05-20 16:24:04 · 275 阅读 · 0 评论 -
java 内存模型之 volatile 核心原理与应用
在阅读本文前,请思考以下的面试题? volatile 是什么? volatile 的特性 volatile 是如何保证可见性的? volatile 是如何保证有序性的? volatile 可以保证原子性吗? 使用 volatile 变量的条件是什么? volatile 和 synchronized 的区别 volatile 和 atomic 原子类的区别是什么? 这一章主要是讲解 volatile 的原理,在开始本文前,原创 2022-05-19 15:46:31 · 361 阅读 · 0 评论 -
实战 SpringCloud 通用请求字段拦截处理,成功入职腾讯
一面:阿里巴巴面试答案文末可以领取!1. 触发新生代 GC,如果存活对象总量大于 survivor 区容量,咋办2. 如果任务很多,线程池的阻塞队列会撑爆内存的哪个区域3. 栈在堆上吗4. GC root 有哪些5. 实例变量可以是 GC root 吗6. 了解哪些 GC 算法,介绍一下7. 给个场景,问怎么设置 JVM 参数8. 问了很多 SQL 调优,各种语句能不能命中索引,能命中哪些,怎么优化9. MySQL 的一张表里有三个原创 2022-05-19 15:27:06 · 162 阅读 · 0 评论 -
Mysql 知识(mysql 八股文)汇总
问:mysql 整体架构是怎么样的?mysql 整体架构大概可以分为:网络连接层、服务层、存储引擎层和系统文件层。关于 mysql 官方的架构图如下,虽然经历多个版本迭代,但整体架构还是差不多,mysql 官方地址如下:https://docs.oracle.com/cd/E19078-01/mysql/mysql-refman-5.1/storage-engines.html#figure-storage-engine-architecture:1)网络连接层Connectors 组原创 2022-05-18 17:05:55 · 564 阅读 · 0 评论 -
Netty 权威指南:Linux 网络 -I-O- 模型简介,分享我在 Java 开发中走的一些弯路
最常用的 I/O 模型就是阻塞 I/O 模型,缺省情形下,所有文件操作都是阻塞的。我们以套接字接口为例来讲解此模型:在进程空间中调用 recvfrom,其系统调用直到数据包到达且被复制到应用进程的缓冲区中或者发生错误时才返回,在此期间一直会等待,进程在从调用 recvfrom 开始到它返回的整段时间内都是被阻塞的,因此被称为阻塞 I/O 模型,如图 1-1 所示。(2)非阻塞 I/O 模型:recvfrom 从应用层到内核的时候,如果该缓冲区没有数据的话,就直接返回一个EWOULDB原创 2022-05-18 16:59:09 · 145 阅读 · 0 评论 -
Java后端开发三年的程序员被JVM难住,果然JVM面试是有套路的
前言JVM是面试中必问的部分,本文通过思维导图以面向面试的角度整理JVM中不可不知的知识。1、JVM基本概念1.1、JVM是什么JVM 的全称是 「Java Virtual Machine」,也就是我们耳熟能详的 Java 虚拟机。JVM具备着计算机的基本运算方式,它主要负责把 Java 程序生成的字节码文件,解释成具体系统平台上的机器指令,让其在各个平台运行。JVM是运行在操作系统上的,它与硬件没有直接的交互。当然,严格来说JVM也是虚拟机规范,有很多不同的实现,Sun/Oracle原创 2022-05-18 16:48:26 · 322 阅读 · 0 评论 -
Java后端开发三年,你不得不了解的JVM
AVA程序员,三年是个坎,如果过了三年你还没有去研究JVM的话,那么你这个程序员只能是板砖的工具了。下面来个JVM的解析可好?JVM是Java Virtual Machine(Java虚拟机)的缩写,也就是指的JVM虚拟机,属于是一种虚构出来的计算机,在我们实际的电脑上来进行模拟各种计算机的功能的这么个东西。因为有了JVM的存在,搞JAVA的不再需要去关心什么时候去释放内存,也不会像C++程序员那样为了一点点内存而惆怅,对就是你,JVM虚拟机帮你把这些东西都完成了,那么我们来说说JAVA的JVM吧!原创 2022-05-18 16:27:19 · 135 阅读 · 0 评论 -
科普,想成为厉害的 Java 后端程序员,你需要懂这 13 个知识点
站在运筹帷幄的角度来看,一名厉害的 Java 后端程序员都需要懂得哪些知识呢?我想,这也是很多读者迫切想知道的一个问题,因为如果不站在一个宏观的角度的话,所有学过的知识点都是零散的,就感觉像一只迷路的小鹿,跌跌撞撞的,总感觉欠点火候,对吧?怎么把知识点串联起来,形成知识图谱或者知识体系,就显得非常重要了。接下来,我根据这些年磨破滚打的一些经验,给大家简单科普一下,如果有漏掉的内容,希望读者朋友们在留言区指出来。1)MVC 框架:MVC 模式是软件工程中的一种软件架构模式,可以把软件系统分为三个基本部原创 2022-05-18 15:54:55 · 450 阅读 · 0 评论 -
二面阿里被踢,幸得内推,闭关60天斩获Java后端开发岗Offer
菜鸟5面(4面技术+项目+hr面)阿里二面就凉凉了,后面因为内推最终投的菜鸟。不得不说,投菜鸟真的需要非常好的心态。。。嗯。。。每一面至少间隔一礼拜以上。。。因为篇幅原因这里只能把问题陈列出来,需要答案的小伙伴也可以戳我拿一面(技术面)Java内存模型full gc怎么触发gc算法高吞吐量的话用哪种gc算法ConcurrentHashMap和HashMapJDK8的stream的操作volatile原理volatile的底层如何实现,怎么就能保住可见性了?有参与过原创 2022-05-18 14:05:10 · 114 阅读 · 0 评论 -
如何看待2022年秋招Java后端开发岗一片红海?
其实两年前校招的时候就往字节投了一次简历,结果很明显凉了,随后这个理想就被暂时放下了,但是这个种子一直埋在心里这两年除了工作以外,也会坚持写博客,也因此结识了很多优秀的小伙伴,从他们身上我学到了特别多东西,把这次面试分享出来,也是希望可以帮助到更多的人。一面(远程视频面)自我介绍项目介绍Redis介绍了解redis源码吗了解redis集群吗Hashmap的原理hashmap容量为什么是2的幂次hashset的源码object类你知道的方法hashcode和原创 2022-05-18 14:00:47 · 164 阅读 · 0 评论 -
2022 年最新版阿里、腾讯、美团 300 道 Java 初级
怎么打出线程栈信息。 请解释如下 jvm 参数的含义: -server -Xms512m -Xmx512m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m - XX:MaxTenuringThreshold=20XX:CMSInitiatingOccupancyFraction=80 - XX:+UseCMSInitiatingOccupancyOnly。 开源框架知识======..原创 2022-05-18 13:45:14 · 258 阅读 · 0 评论 -
应届生,找java后端开发要什么水平才算合格?
1.最低什么程度就可以出去碰碰运气?我这里并不是教大家投机取巧,而是为不了解求职的小白朋友提供一个参考。理论上当然是基础越牢固越好,你最好把科班的“四大课”都啃了。就我自己找工作的经验,基本上学习视频中ssm框架往后教的就用不太到了,什么redis,ActiveMQ负载均衡等等,都用不太到(但我不敢打包票)。而且你一个零基础的,学了能咋滴?工作一两年的人都没怎么搞透的技术,你还能用它写出花?最多学会几个单词罢了。总之,如果你没有朋友内推,没有过人天赋,我默认你和我一样,学得再好几个月刚出来也就外包水原创 2022-05-18 13:44:14 · 1751 阅读 · 1 评论 -
Java 工程师的进阶之路 -Kafka 篇(二)
3. Kafka 的副本机制复制功能是 Kafka 架构的核心功能,在 Kafka 文档里面 Kafka 把自己描述为 一个分布式的、可分区的、可复制的提交日志服务。复制之所以这么关键,是因为消息的持久存储非常重要,这能够保证在主节点宕机后依旧能够保证 Kafka 高可用。副本机制也可以称为备份机制(Replication),通常指分布式系统在多台网络交互的机器上保存有相同的数据备份/拷贝。Kafka 使用主题来组织数据,每个主题又被分为若干个分区,分区会部署在一到多个 broker 上,每原创 2022-05-17 16:56:51 · 254 阅读 · 0 评论 -
2021 年九月最新 Java 面试必背八股文,338 道最新大厂架构面试题
多线程、锁 线程池使用的是哪种 线程池参数怎么配置 线程池各个参数的作用 线程池的参数配置要注意什么 线程池的工作流程 JDK 中的并发类知道哪些 AQS 的底层原理 介绍下悲观锁和乐观锁 使用过哪些锁 synchronized 和 Lock 的区别、使用场景 synchronized 原理 synchronized 作用于静态方法、普通方法、this、Lock.class 的区别原创 2022-05-17 16:19:24 · 425 阅读 · 0 评论 -
全面了解 JVM 原理与深度调优
什么是 jvmjvm 是 java 虚拟机 运行在用户态、通过应用程序实现 java 代码跨平台、与平台无关、实际上是"一次编译,到处执行"1.从微观来说编译出来的是字节码!去到哪个平台都能用,只要有那个平台的 JDK 就可以运行!字码好比是一个人,平台好比为国家,JDK 好比这个国家的语言!只要这个人(字节码)有了这个国家的语言(JDK)就可以在这个国家(平台)生活下去。2.JDK 是整个 Java 的核心,包括了 Java 运行环境(Java Runtime Envirnment),一堆 Jav原创 2022-05-15 14:45:22 · 186 阅读 · 0 评论 -
其实 Zookeeper 的选举机制也不难理解,今日头条 Java 后端面试
Redis 什么是 Redis? Redis 的数据类型? 使用 Redis 有哪些好处? Redis 相比 Memcached 有哪些优势? Memcache 与 Redis 的区别都有哪些? Redis 是单进程单线程的? 一个字符串类型的值能存储最大容量是多少? Redis 的持久化机制是什么?各自的优缺点? Redis 常见性能问题和解决方案: redis 过期键的删除策略? Redis 的回收原创 2022-05-15 14:24:52 · 157 阅读 · 0 评论