自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王小明的专栏

如有问题,关注微信公众号: 程序员开发者社区,获取我的联系方式,或者访问 www.benjming.com...

原创 Java 知识点总结

Java 基础 1、Object 对象的方法有哪些?分别有什么作用?该什么场景用? 2、Integer 的常量缓存池 3、Java 特性?什么是多态?举个例子 Object 的 hashcode 方法重写了,equals 方法要不要改? 4、重载重写的区别? Object 类中的方法 ...

2019-06-28 16:20:11 345 0

原创 数据库锁分类
原力计划

数据库锁分类 锁和索引是数据库两大核心概念,了解索引,可以从 B+ 树,Hash 索引,页结构,缓存池,索引原则等方面理解。理解锁,要从哪些方面入手? 为什么要加锁 加锁的目的,其实是为了保证数据的一致性。 当多个线程并发访问某个数据时,加锁,可以保证这个数据在任何时刻最多只有一个线程在访问,保证...

2020-07-02 23:13:51 13 0

原创 [DUBBO] disconnected from 问题
原力计划

Dubbo [DUBBO] disconnected from 问题 重启 Dubbo provider(生产者) 服务,出现如下异常日志: [INFO ] 2017-11-15 10:50:07,790--DubboServerHandler-10.255.242.97:20990-threa...

2020-06-29 17:42:53 88 0

原创 Java 异常处理机制
原力计划

Java 异常处理机制 Exception 和 Error 有什么区别? Exception 和Error 都是继承 Throwable 类,在 java 只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。Exception 和 ...

2020-06-26 22:46:28 36 0

原创 LeetCode 3 题解

LeetCode 3 题解 滑动窗口的方式求解 public class LeetCode3 { public int lengthOfLongestSubstring(String s) { if(s == null || "".equals...

2020-06-26 12:58:48 26 0

原创 Apacche Dubbo 反序列化漏洞
原力计划

Apacche Dubbo 反序列化漏洞 早在2019年开发者社区就有谈到这个 http 协议漏洞问题,近期360灵腾安全实验室判断漏洞等级为高,利用难度低,威胁程度高。 建议升级 dubbo 版本,避免遭受黑客攻击。 漏洞描述 Unsafe deserialization occurs wit...

2020-06-25 23:40:38 58 0

原创 如何动态生成一个Java类
原力计划

如何动态生成一个Java类 开发者编写Java 代码,调用 javac 编译生成 class 文件。然后通过类加载机制载入 JVM ,即成为了应用可以使用的 Java 类。 可以写一个编译类编译 java 代码: import java.io.File; import java.io.FileWr...

2020-06-23 22:57:27 86 0

原创 Java 常见的垃圾回收器
原力计划

Java 常见的垃圾回收器 垃圾回收器 (GC, Garbage Collector)是和具体的 JVM 实现紧密相关。 Java 虚拟机针对新生代和年老代分别提供了多种不同的垃圾收集器。 Serial GC Serial GC ,是新生代的垃圾回收器, Serial 体现在其收集工作是单线程的...

2020-06-21 22:45:39 46 0

原创 接口和抽象有什么区别?
原力计划

接口和抽象有什么区别? 接口和抽象是 Java 面向对象设计的两个基础机制。 接口是对行为的抽象,它是抽象方法的集合,利用接口可以达到API 定义和实现分离的目的。 接口不能实例化, 接口不能包含任何非常量成员,任何 field 隐含 public field final的意义 非静态方式实现,...

2020-06-21 00:49:45 92 0

原创 如何在1 分钟内完成 100T 大文件的遍历?
原力计划

如何快速遍历一个超大数据集 ? 文件是存储在磁盘上的,文件的读写访问速度受限于磁盘的物理限。 如果才能在1 分钟内完成 100T 大文件的遍历呢? 磁盘存储结构 磁盘是一种可持久保存,持续读写数据的存储介质。 磁盘分类: 机械硬盘 固态硬盘 机械硬盘结构 机械硬盘,包含,盘片,主轴,磁头臂,主...

2020-06-19 23:40:44 467 0

原创 LeetCode 209题解

LeetCode 209 滑动窗口的处理 public class LeetCode209 { public int minSubArrayLen(int s, int[] nums) { // 滑动窗口的思路 int left = 0; ...

2020-06-18 21:24:37 30 0

原创 数据表的范式

数据表的范式 数据库设计有哪些范式? 关系型数据库一共有 6 种范式,按照范式级别,从低到高分别是: 1NF 第一范式 2NF 第二范式 3NF 第三范式 BCNF 巴斯-科德范式 4NF 第四范式 5NF 第五范式,也叫完美范式 数据库的范式设计越高阶,冗余度就越低,高阶范式一定符合低阶范式...

2020-06-18 20:00:32 27 0

原创 并发队列
原力计划

并发队列 并发包下面的并发容器中,ConcurrentLinkedQueue 这种 Concurrent 类型和的集合才真正代表并发。 Concurrent 类型基于 lock-free ,常见的多线程访问场景,一般可以提供高吞吐量。 LinkedBlockingQueue 内部基于锁实现,提...

2020-06-16 23:37:33 53 0

原创 【深入理解Java原理】线程池原理
原力计划

线程池原理 线程池有哪些? 一般开发者是利用 Executors 提供的统一线程创建方法,取创建不同配置的线程池,主要区别在于不同的 ExecutorService类型或者不同的初始参数。 Executors 提供了 5 种不同的线程池创建方式: newChachedThreadPool() ,...

2020-06-15 09:06:31 49 0

原创 【深入理解 Spring 原理】Spring Bean 的生命周期和作用域?
原力计划

Spring Bean 的生命周期和作用域? Spring Bean 的生命周期 Spring Bean 的生命周期可以分成,创建,使用,销毁几个过程。 Spring Bean 创建过程如下: 实例化 Bean 对象 设置 Bean 属性 通过各种 Aware 接口声明了依赖关系,则会注入 Be...

2020-06-13 23:12:16 51 0

原创 【深入理解数据库原理】InnoDB 是如何解决幻读、不可重复读?

InnoDB 是如何解决幻读、不可重复读? 如何解决不可重复读 上一篇文章,已经说明 InnoDB 是如何解决不可重复读的。 一个事务只在第一次 SELECT 的时候会获取一次 Read view,而后面所有的 SELECT都会复用这个 Read view,这样每次读到的就是一样的,就可重复读。 ...

2020-06-11 15:26:51 43 0

原创 LeetCode 46 全排列

LeetCode 46 全排列 AC 通过 public class LeetCode46 { public List<List<Integer>> permute(int[] nums) { List<List<Integer>&...

2020-06-11 00:08:19 30 0

原创 【深入理解数据库原理】MVCC 原理
原力计划

MVCC 原理 事务的4个隔离级别 读未提交 读已提交 可重复读 串行化 什么是脏读 简单说,读了一条未提交的数据 什么是不可重复读? 一个事务读取了另外一个事务修改后记录 强调的是 update 和delete ,只需要锁住满足条件的记录即可 什么是幻读 一个事务读取了另外一个...

2020-06-10 23:00:10 75 0

原创 【深入理解Java并发原理】Thread.yield、Thread.sleep、Object.wait、 LockSupport.park 对比
原力计划

Thread.yield、Thread.sleep、Object.wait、 LockSupport.park 对比 sleep、wait、park区别 Thread.sleep() 不会释放占有的锁,Object.wait() 会释放会占有的锁 Thread.sleep() 必须传入时间,O...

2020-06-08 23:41:41 70 0

原创 LeetCode 34深度优先+回溯

LeetCode 34 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 ...

2020-06-07 09:33:43 39 0

原创 【深入理解Dubbo原理】dubbo SPI 是怎么实现的?
原力计划

dubbo SPI 是怎么实现的? Dubbo SPI 的目的是为了得到一个指定实现类的对象 Dubbo 并未使用 Java SPI ,而是重新设计了一套增强版的 SPI 。 Dubbo SPI 的相关逻辑封装在了 ExtensionLoader 类中,通过 ExtensionLoader...

2020-06-04 16:33:56 73 0

原创 【深入理解Java原理】JAVA SPI 是怎么实现的?

JAVA SPI 是怎么实现的? SPI 是什么? SPI(Service Provider Interface) ,是 JDK 内置的一种提供发现机制。SPI 是一种动态替换发现的机制。 JAVA SPI 实现 定义一组接口,接口有多种实现 public interface IShout...

2020-06-02 19:04:55 74 0

原创 LeetCode 22 题解--深度优先遍历 -- 括号匹配

LeetCode 22 题解 AC 通过 public class LeetCode22 { // 2^2n 局部不合法,不再递归 public List<String> generateParenthesis(int n) { ...

2020-06-02 09:34:04 42 0

原创 【深入理解Spring源码】-容器如何初始化?

Spring源码-容器如何初始化? 初始化Spring如下 AbstractApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml"); ap...

2020-06-01 15:03:54 71 0

原创 【深入理解 Java原理】Condition 实现原理
原力计划

Condition 实现原理 说 Codition 前,需要说下 ConditioObject。 ConditionObject 是同步器 AbstractQueuedSynchronzied 的内部类,因为 Condition 的操作需要关联的锁。 ArrayBlockingQueue 就是 C...

2020-06-01 12:08:06 90 0

原创 广度优先算法 LeetCode102 题解

def BFS(graph, start, end): queue = [] queue.append([start]) visited. add(start) while queue: node=quede.pop() visited.add(n...

2020-05-30 17:03:09 35 0

原创 【深入理解Zookeeper原理】Zab 协议
原力计划

Zookeeper 原理 Zookeeper 概念 Zookeeper 是一个分布式协调服务,可以用于服务发现,分布式锁,分布式选举,配置管理等场景。 Zookeeper 提供了一个类似于 Linux 文件系统的树形结构(可以认为是轻量级的内存文件系统,但是只适合存少量信息,完全不适合存储大量文件...

2020-05-30 11:02:00 45 0

原创 LeetCode110 判断一个树是不是平衡树

给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3 / 9 20 / 15 7 来源:力扣(LeetCode) ...

2020-05-29 18:44:38 67 0

原创 剑指Offer42题解-- 动态规划

AC 通过,动态规划的思想 递推+记忆化= 递推 状态转移方程 public class Jianzhi42 { // 分治思想是将大问题转换成小问题 动态规划,其实就是递归+记忆化-> 递推 // public int maxSubArray(int[] nu...

2020-05-28 23:47:31 42 0

原创 MySQL 中有哪些锁?
原力计划

MySQL 中有哪些锁? 数据库中锁的设计初衷处理并发问题,作为多用户共享资源,当出现并发访问的时候,数据库需要合理控制资源访问规则。锁就是实现这些访问规则中的重要数据。 锁的分类 根据加锁范围,MySQL 里面的锁可以分成全局锁、表级锁、行锁三类。 全局锁 全局锁,就是对整个数据库实例加锁,My...

2020-05-28 23:42:42 117 0

原创 剑指 Offer 40 题 最小的 K个数

输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 示例 1: 输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1] 示例 2: 输入:arr = [0,1,2,1], k = 1 ...

2020-05-26 23:05:36 42 0

原创 高并发系统通用设计方法是什么?
原力计划

高并发系统通用设计方法是什么? 高并发代表着大流量,举个例子,从古至今对黄河的治理,大禹治水是拓宽河道,清除淤泥,让水流更通畅,流向大海。都江堰是通过引流的方式将岷江之水分流到多个支流,分担水流压力。三峡门和葛洲坝采用的是建造水库的方式将水储存起来然后把水库中的水缓缓排出去,提高下游抗洪能力。 ...

2020-05-26 19:19:16 177 0

原创 LeetCode 26 题解

AC 通过了 public class leetCode26 { public int removeDuplicates(int[] nums) { int k = 0; int len = nums.length; for(int i...

2020-05-26 11:19:12 42 0

原创 LeetCode 27 题解

AC 通过 public class LeetCode27 { public int removeElement(int[] nums, int val) { int k = 0; for(int i = 0;i < nums.len...

2020-05-26 00:25:22 41 0

原创 LeetCode 283题解

AC 通过 public class LeetCode283 { public void moveZeroes(int[] nums) { int k = 0; // nums[0-k] 存储的是 前面k 个不等于 0 的数 for(int i ...

2020-05-26 00:14:36 38 0

原创 【深入理解数据库原理】数据库索引原理
原力计划

先看个例子 在下面这个表T中,如果我执行 select* from t where k between3and5,需要执行几次树的搜索操作,会扫描多少行? mysql> create table T ( ID int primary key, k int NOT NULL DEFAULT ...

2020-05-25 23:45:08 153 0

原创 LeetCode 101 题解

已经通过 public class LeetCode101 { public boolean isSymmetric(TreeNode root) { if(root == null) return true; return isSyme(root...

2020-05-25 18:59:22 41 0

原创 Leetcode 104 题解

输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 提示: ...

2020-05-24 21:54:10 46 0

原创 LeetCode 100 题解

思路:如果一棵二叉树相同,那么他的左子树也是相同,右子树也是相同。 class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } pub...

2020-05-24 21:45:22 58 0

原创 LeetCode 169题解

/** * 类说明 * 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1...

2020-05-24 20:24:24 41 0

提示
确定要删除当前文章?
取消 删除