自定义博客皮肤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...

原创 [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 459 0

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

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

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

原创 LeetCode 3 题解

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

原创 LeetCode 209题解

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

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

原创 数据表的范式

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

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

原创 并发队列
原力计划

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

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

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

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

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

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

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

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

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

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

2020-06-11 15:26:51 70 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 58 0

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

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

2020-06-10 23:00:10 152 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 138 0

原创 LeetCode 34深度优先+回溯

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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