![](https://img-blog.csdnimg.cn/20200506235728543.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java 开发面试笔记
文章平均质量分 92
记录为 Java 面试的学习整理过程
南淮北安
好好学习
展开
-
一篇文章带你搞清楚一致性哈希算法
文章目录一、为什么要引入一致性哈希?二、一致性哈希算法的基本概念三、一致性哈希算法的优点四、hash 环的偏斜五、虚拟头结点一、为什么要引入一致性哈希?假设,我们有三台缓存服务器,用于缓存图片,我们为这三台缓存服务器编号为0号、1号、2号,现在,有3万张图片需要缓存,我们希望这些图片被均匀的缓存到这3台服务器上,以便它们能够分摊缓存的压力。也就是说,我们希望每台服务器能够缓存1万张左右的图片,那么,我们应该怎样做呢?如果我们没有任何规律的将3万张图片平均的缓存在3台服务器上,可以满足我们的要求吗?可转载 2021-05-10 09:01:02 · 187 阅读 · 1 评论 -
(LeetCode)Java 求解分割等和子集
文章目录一、题目二、题解三、优化三、总结一、题目给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。二、题解关于 0-1 背包问题的学习可参考:背包问题该题要求将两个子集的元素和相等,所以可以首先把数组中的所有元素相加,判断sum是否为偶数,只有偶数才可能被两个子集均等划分。如果是偶数,则问题变成能否从数组中寻找到元素相加和为 sum/2每个元素都有两种选择要么选,要么不选,所以该题和背包问题很类似,只不过这里的是必须把背包装满设定布尔数组 dp[i原创 2021-03-27 10:35:29 · 240 阅读 · 0 评论 -
关于背包问题,你不得不知道的事情
文章目录一、背包问题1. 题目2. 基本思路二、具体求解1. 代码实现2. 最优解回溯三、优化空间复杂度四、初始化时的细节问题五、一个常数的优化一、背包问题1. 题目有 N 件物品和一个容量为 V 的背包。第 i 件物品的费用是 w[i]w [i]w[i] ,价值是v[i]v[i]v[i],求将哪些物品装入背包可使价值总和最大。比如:有四件物品,编号,体积和价值如下图所示2. 基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][j]f[i]转载 2021-03-26 15:25:36 · 190 阅读 · 0 评论 -
一篇文章带你深入理解 Java 中的动态代理
文章目录一、基本概念二、示例操作一、基本概念静态代理每一个代理类只能为一个接口服务,如果要想通过一个代理完成全部的代理功能,此时就必须使用动态代理功能。在 Java 中要想实现动态代理机制,需要 java.lang.reflect.InvocationHandler 接口和 java.lang.reflect.Proxy 类的支持。InvocationHandler 接口的定义:publ...转载 2020-02-22 17:34:46 · 468 阅读 · 1 评论 -
(面经总结)一篇文章带你完整复习 TCP 的重传机制、滑动窗口、流量控制和拥塞控制
相信大家都知道 TCP 是一个可靠传输的协议,那它是如何保证可靠的呢?为了实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题,也就无从谈起可靠传输。那么,TCP 是通过序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输的。文章目录一、TCP 的重传机制1. 超时重传2. 快速重传3. SACK 方法4. Duplicate SACK二、TCP 滑动窗口1. 为什么要引入滑动窗口?2. 窗口大小三、流量控制一、TCP 的重传机制转载 2021-03-09 21:07:41 · 190 阅读 · 0 评论 -
(Java)== 和 equals 的区别
文章目录一、== 解读二、equals 解读三、总结一、== 解读对于基本类型和引用类型 == 的作用效果是不同的,如下所示:基本类型:比较的是值是否相同; 引用类型:比较的是引用是否相同;因为 x 和 y 指向的是同一个引用,所以 == 也是 true,而 new String()方法则重写开辟了内存空间,所以 == 结果为 false,而 equals 比较的一直是值,所以结果都...原创 2020-04-20 00:50:53 · 356 阅读 · 0 评论