摘要:
dubbo提供了四种线程池。其实我理解还是还是根据ThreadPoolExecutor这个JDK提供的线程池类,只不过适应性的改变了其中的参数。dubbo分别提供了1. 缓存线程池 2。固定大小线程池 3. 上届线程池 4.定时线程池。下面具体的说一说这些线程池。 1. 公共行为 首先这些线程池类均 阅读全文
摘要:
概念理解 selector与epoll是多路复用的函数。我认为多路复用是针对bio而言,指的是通过单线程来追踪管理多个socket对象。传统的bio中,在socket的accept与read两个阶段都会造成阻塞,那么就无法处理并发问题,即仅一个socket对象就已经占用了IO对象,没有余力解决其他线 阅读全文
摘要:
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” class Solution { public Tr 阅读全文
摘要:
程序中的递归的定义: 1. 程序调用本身的过程,称之为递归 那么一个程序中出现多个递归调用,这个过程是怎么样呢?如下图: public static int dfs(int n){ if (n == 2) return 1; if (n == 1) return 1; return dfs(n - 阅读全文
摘要:
在实习的时候,需要对公司内部的分布式框架(RPC框架)进行拓展。在阅读该RPC框架源码的时候,发现该框架中较多地方使用了自增原子类,而原子类又是基于AQS实现,在秋招之前阅读过AQS框架,但是都是粗粗的阅读了一些博客,并没有对源码进行阅读。如今,趁着过年有时间对AQS源码进行梳理。 1. 原理简介 阅读全文
摘要:
笔者水平有限有关原理部分存在深入不够,并且在用法部分也是与项目相关,存在着不够全面的问题。 1.0 异常分类 异常通常分为两类:(1)一类是Error,通常指的是虚拟机错误。一般来讲分成两种:outofmemoery,stackoverflowerror。这两种错误都是在运行时期,由虚拟机抛出。 ( 阅读全文
摘要:
背景: 在使用谷歌开源的本地缓存解决经常查询数据库导致的查询效率低下,将从数据库查询好的数据放入到缓存中,然后设计过期时间,接着设计一个get方法缓存汇总获取数据,进一步将整个流程封装成一个CacheSerice,然后在Controller层调用这个Service,从Service中获取数据。 问题 阅读全文
摘要:
简单来说,垃圾收集由两个部分组成:查找不使用的对象,以及释放这些对象所关联的内存。 JAVA性能权威指南 内存垃圾判定算法: root引用链分析,因为计数法无法解决循环引用的问题。 内存分区: 在JVM(JDK1.7)中,将堆内存划分为新生代、老年代以及永久代。分别对这些区域进行垃圾回收,这样就避免 阅读全文
摘要:
LC 934 https://leetcode-cn.com/problems/shortest-bridge/submissions/ 题目:一张地图上有两座小岛,求出这两座小岛之间的最短距离。 class Solution { public void find(int[][] A,int i,i 阅读全文
摘要:
1. 火柴拼接 LC:200题 给一串数组,问这些数能否组成正方形。 总结:一般来说涉及到组合问题或者询问是否存在等这类问题一般会考虑使用回溯法。 思路: 副中心点寻找策略:将中心点加到每条边上面,每个边加上数又称为新的副中心点,形成新的递归策略。 class Solution { private 阅读全文