![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java核心能力
文章平均质量分 94
11来了
目前在读研究生研二,会持续分享后端系列完整内容以及面试分析!
展开
-
面试高频:HTTPS 通信流程
面试高频:HTTPS 通信流程HTTPS 的加密流程接下来说一下 HTTPS 协议是如何进行通信的:HTTPS 通信使用的 对称加密 + 非对称加密 两者结合的算法HTTPS 通信时,会先使用 非对称加密 让通信双方都拿到一个 对称密钥 ,之后双方通过这个 对称密钥 进行加密通信,通信过程使用的就是 对称加密原创 2024-04-21 21:00:21 · 949 阅读 · 0 评论 -
【Java核心能力】美团优选后端一面:Java 八股文相关内容
欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送!在我后台回复 「资料」 可领取编程高频电子书!在我后台回复「面试」可领取硬核面试笔记!原创 2024-04-13 10:56:47 · 846 阅读 · 0 评论 -
【Java核心能力】编程功底-设计模式之策略模式
欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送!在我后台回复 「资料」 可领取编程高频电子书!在我后台回复「面试」可领取硬核面试笔记!原创 2024-04-10 19:41:00 · 691 阅读 · 0 评论 -
【Java核心能力】美团优选后端一面:网络 & 操作系统
虚拟内存是现代系统提供的对主存储器的抽象,是用于内存管理的一种技术虚拟内存的作用就是为每个进程提供了一个大的、统一的、私有的地址空间,让每个进程认为自己在独享内存虚拟内存的意义是定义了一块连续的虚拟地址空间,并且将内存空间扩展到了磁盘空间,也就是说一块连续的虚拟内存在进程看来是连续的,但是其实是多个物理内存碎片,并且还有一部分暂存在磁盘上,如果需要用到磁盘上的数据的话,需要进行数据交换。原创 2024-04-10 19:40:54 · 898 阅读 · 0 评论 -
【Java核心能力】RocketMQ 消息存储模型实现原理
commitlog存储消息实体,所有消息都顺序写入 commitlog是为了提升消费者的消费性能,消费者通过 consumequeue 可以快速定位到需要消费的数据在 commitlog 中的位置indexfile提供了根据 key 快速查找到对应消息的功能,原理就是对 key 建立索引,将相同 key 的消息串联在一起。原创 2024-04-07 09:00:00 · 1014 阅读 · 0 评论 -
【Java核心能力】高频面试:了解零拷贝吗?Netty 中哪里用到了零拷贝?什么是 TCP 缓冲区?
零拷贝是计算机底层的优化技术,用于减少数据传输过程中的 CPU 拷贝次数,从而提升数据处理性能最后真正实现零拷贝使用了操作系统的 sendfile + SG-DMA 技术实现了 0 次 CPU 拷贝,2 次 DMA 拷贝,为什么 0 次 CPU 拷贝就是零拷贝呢,不是还有 DMA 拷贝呢?因为 DMA 拷贝是通过 DMA 控制器来进行的,所有 IO 设备与内存之间的数据传输都是通过 DMA 控制器来完成的,不需要 CPU 来参与,也就是说不占用 CPU 的时间片了,因此零拷贝指的是 0 次 CPU 拷贝。原创 2024-04-06 09:00:00 · 863 阅读 · 0 评论 -
【Java核心能力】面试:系统高可用,令牌桶算法和漏桶算法有什么区别?
滑动窗口限流指在一定时间窗口内限制请求的数量,并且随着时间的推移,新增的请求会被记入新的时间段内,通过滑动窗口限流可以使得限流更加平滑。原创 2024-04-05 09:00:00 · 675 阅读 · 0 评论 -
【Java核心能力】饿了么一面:Redis 面试连环炮
欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送!在我后台回复 「资料」 可领取编程高频电子书!在我后台回复「面试」可领取硬核面试笔记!原创 2024-04-04 00:54:35 · 838 阅读 · 0 评论 -
【Java核心能力】饿了么面试:Spring相关问题拷打
饿了么面试:Spring相关问题拷打Spring 和 SpringBoot 有啥区别?这个可以根据我们平常使用两个框架的经验来讲就好,不是非要去背出来两者在各个方面的区别从 使用方面 来说的话:Spring 的话,主要提供了 AOP 和 IOC 两个核心功能,像一些中间件框架都是基于 Spirng 来编写的,可以通过 Spring 来统一管理项目中的所有 Bean,这样就不需要我们自己去创建了,比较方便但是如果要基于 Spring 来做一个 Web 项目的话,我们还要自己去集成 MyBati原创 2024-04-03 13:29:42 · 644 阅读 · 0 评论 -
【Java核心能力】面试官:项目中布隆过滤器怎么用的?为啥要用,不用行不行?
一般是项目中用到了布隆过滤器,面试官提问的概率会大一些,如果项目中没有使用的话,可能不会问到,不过也可以将布隆过滤器加入到项目中,作为一个小亮点使用 布隆过滤器 一般就是用于快速判断某个元素是否在集合中出现了,可以用于解决 缓存穿透 的问题,布隆过滤器提供 一组哈希函数 h1, h2, …, hk ,对需要存储的数据使用哈希函数计算得到 k 个哈希值,将 BitMap 中这 k 个位置都设置为 1,如果这 k 个位置都是1,则 可能 在集合中,但是如果都不是1,则 一定不在 集合中原创 2024-04-02 16:37:11 · 863 阅读 · 0 评论 -
【Java核心能力】常用的设计模式了解吗?项目中用过哪些设计模式
常用的设计模式了解吗?项目中用过哪些设计模式设计模式是 很重要 的,因此一定要好好掌握一下,但是设计模式有很多,我们可以将常用的设计模式给先掌握熟练了常用的设计模式有: 单例 、 工厂 、 模板 、 代理 、责任链 、 策略 、 适配器 ,这里会总结一下常用设计模式的优点,以及对应的 UML 类图,可以重点掌握一下,并且尝试加入到自己的项目中原创 2024-04-01 21:00:00 · 267 阅读 · 0 评论 -
【Java核心能力】一篇文章了解 ZooKeeper 底层运行原理
该文章主要说一下 ZooKeeper 底层运行原理,以及其中比较核心的功能CAP 是分布式系统中的基本理论,一般只能满足 AP 和 CP,常用的注册中心 ZK 和 Nacos:ZooKeeper 符合 CP ,选择了一致性而抛弃了部分可用性 ,因为 ZK 集群中只有 Leader 节点可以写数据,如果 Leader 挂了,需要重新选举 Leader,在这期间 ZK 集群不可用,ZK 只有 Leader 可以写,所以整个写入操作是 中心化 的Nacos 符合 AP ,选择了可用性并且满足最终一致性原创 2024-03-28 21:33:10 · 1082 阅读 · 0 评论 -
【Java核心能力】了解 Redis 的 IO 多路复用吗?
我们都知道 Redis 性能是很高的,它的高性能是基于 两个方面 :基于 内存 操作IO 多路复用基于内存操作比较容易理解,将所有的操作都放在 内存 中进行处理即可,所以对于 Redis 来说,内存可能会成为 性能的瓶颈原创 2024-03-27 16:02:39 · 1112 阅读 · 0 评论 -
【Java核心能力】RocketMQ 针对消息有序和消息积压的处理
RocketMQ 保证消息的有序性分为了两种:全局有序: 适用于并发度不大,并且对消息要求严格一致性的场景下通过创建一个 topic,并且该 topic 下只有一个队列,那么生产者向着一个队列中发消息,消费者也在这一个队列中消费消息,来保证消息的有序性局部有序: 适用于对性能要求比较高的场景,在设计层面将需要保证有序的消息放在 Topic 下的同一个队列即可保证有序原创 2024-03-27 12:43:50 · 766 阅读 · 0 评论 -
【Java核心能力】RocketMQ 的消息可靠性如何保证?
RocketMQ 的消息可靠性如何保证?RocketMQ 作为分布式消息中间件,肯定是要尽可能保证消息传输的 可靠性 ,要保证消息的可靠性,先来思考一下从哪些方面保证呢?这要看消息的生命周期,既然保证可靠性,那么就是要保证 A 发送给 B 的消息一定可以成功,那么首先要保证发送成功,其次要保证 B 接收成功,而在 RocketMQ 中,消息是先发送到 Broker 中了,那么还需要保证 MQ 在 Broker 中不会丢失原创 2024-03-25 23:08:06 · 705 阅读 · 0 评论 -
【Java核心能力】MySQL 索引结构为什么不用红黑树、AVL 树、B树?
MySQL 的索引使用了 B+ 树来实现,先来说一下 B+ 树的 优势:B+ 树是 多路 平衡搜索树,多路可以保证数据量较大时,B+ 树的高度不会非常高(B+树高度越高,磁盘的 IO 次数就越多)B+ 树叶子节点之间按索引数据的大小顺序建立了 双向链表指针 ,适合按照范围查找使用 B+ 树非叶子节点 只存储索引 ,原创 2024-03-21 10:53:12 · 1064 阅读 · 0 评论 -
【Java核心能力】高并发在简历上如何体现?
个人觉得并发相关的内容是最基础的,同时也是最重要的能力,在面试中并发相关的内容也是比较热点的,在项目中的优化也离不开并发!原创 2024-03-12 20:24:59 · 1249 阅读 · 0 评论 -
【Java核心能力】京东并行框架asyncTool如何针对高并发场景进行优化?
由于最近在整理并发相关的内容,整理了 CompletableFuture、CAS、线程池这些方面的内容,但是通过理论知识我们只是学会了:怎么去用?应该怎么去用?但是并没有学习别人如何去用,没有实际场景的示范,恰巧看到了 tianyaleixiaowu 作者开源出来的 asyncTool 并行框架 ,并且已经在 京东App后台接受苛刻、高并发、海量用户等复杂场景业务的检验测试所以这篇文章就以这个并行框架为例,来说一下如何在高并发场景中保证比较好的性能,即如何通过 CompletableFuture、C原创 2024-03-10 16:36:05 · 1366 阅读 · 0 评论 -
【Java核心能力】RateLimiter 限流底层原理解析
为什么要学习 RateLimiter 原理呢,其实是因为我的项目中使用到了 RateLimiter 进行限流,之前有一次在唯品会面试的时候,面试官就问到了 RateLimiter 的底层限流算法以及原理,当时回答的并不是很好,所以这里整理一下!这篇文章并没有讲 RateLimiter 的源码,底层源码看起来比较复杂,主要来理解它的限流算法原理、存在的缺点、以及在真实项目中如何使用它!原创 2024-03-10 12:48:04 · 2098 阅读 · 0 评论 -
【Java核心能力】Java线程池的核心内容详解
线程池的优势首先,线程池是将多个线程进行池化操作,统一进行管理,这样做有什么好处呢?降低创建、销毁线程的开销 :线程池中维护固定数量的线程,不需要临时进行线程的创建和销毁提高响应速度 :对于新提交到线程池中的任务,直接使用线程池中的空闲线程可以直接进行处理,不需要等待创建线程节省资源:可以重复利用线程原创 2024-03-02 11:29:25 · 1082 阅读 · 0 评论 -
【Java核心能力】面试官:线程状态的转换了解吗?
线程的状态以及线程状态的转换线程的状态有 6 种:新建 New、就绪 Ready、运行中 Running、阻塞 Blocker、超时等待 Timed Waiting、退出 Terminated接下来说一下各个状态之间如何转变:原创 2024-02-29 15:47:37 · 389 阅读 · 0 评论 -
【Java核心能力】面试官:synchronized 关键字可以保证可见性吗?
synchronized 是可以保证可见性的先介绍一下可见性是什么东西:线程要修改一个变量,这个变量是在主内存中存储的,线程修改时,要先去主内存读取一份到自己的工作内存中,这个工作内存是线程私有的原创 2024-02-27 09:50:35 · 993 阅读 · 0 评论 -
【Java核心能力】为什么不建议在高并发场景下使用 synchronized?
这首先我们要了解 `高并发场景的特点` 以及 `synchronized 底层加锁的原理` 是怎样的!首先说一下 synchronized 底层加锁的原理:synchronized 在 JDK1.6 之后引入了锁的优化,随着多线程竞争的激烈程度不同,使用的锁也不同原创 2024-02-26 20:14:38 · 876 阅读 · 0 评论 -
【Java核心能力】上万字 ReentrantLock 原理全面详解!
本来写这篇文章是因为自己对 ReentrantLock 的了解一直都比较表面,原理了解的还不是那么的清楚,并且对 AQS 也都是一知半解,但是在面试中这些都是比较常问的内容,如果原理了解比较清楚的话,对面试会有很大的帮助,因此自己在这里也总结了一份,本来以为很快就写完了,没想到竟然写了两天,文字的话就有 6000 +,ReentrantLock 中大部分的内容也都说到了,并且配有许多图片,如果感觉内容太多的话,可以对 ReentrantLock 中加锁以及解锁内容重点阅读,希望对你有所帮助!原创 2024-02-25 09:00:00 · 1127 阅读 · 0 评论 -
【Java核心能力】面试杀手锏:全面剖析 synchronized 锁升级流程
在准备面试时,一定要准备杀手锏,也就是你了解最深的几个内容,这样才能给面试官很深的印象而 Java 并发相关的内容拿来做杀手锏非常合适,因为并发是基础性的内容,大家都学过,但是大家学的深度又参差不齐,因此通过并发相关内容就可以看出来面试者的水平高低原创 2024-02-23 09:00:00 · 1378 阅读 · 0 评论