九又四分之三站台

0%

ThreadPoolExecutor是Executor框架最核心的类,也是线程池的实现类,有以下4个组件构成。

  1. corePool:核心线程池大小
  2. maximumPool:最大线程池大小
  3. BlockingQueue:用来暂时保存任务的工作队列
  4. RejectedExecutionHandler:当ThreadPoolExecutor已经关闭或者已经饱和(达到最大线程池大小并且工作队列已满),execute()方法将调用Handler(拒绝策略)
阅读全文 »

GC算法是内存回收的方法论,而垃圾收集器就是内存回收的具体实现。不同的厂商、不同版本之间的虚拟机所提供的垃圾收集器可能会有很大差别,并且一般都会提供参数供用户根据自己的需求组合出各个年代所使用的收集器。

阅读全文 »

简介

Redis是内存型据库,它的数据是存在内存中的,但是如果只能存在内存中的话,当服务器进程出现问题,那么内存中的数据就会丢失。为了解决这个问题,Redis提供了持久化功能。Redis持久化分为RDB持久化和AOF持久化两种。

阅读全文 »

bin log (二进制日志)

比如我们如果在MySQL中修改了一条记录,而用户检索出来的数据是通过MySQL的搜索引擎的,为了保证能检索到最新的数据,需要把搜索引擎的数据也一起改掉。

bin log记录了数据库表结构和表数据变更的记录,比如create/insert/update/delete等操作,但是select不会记录,因为select不存在修改表的操作。bin log记录着每条变更的SQL已经事务id等记录。

阅读全文 »

概述

垃圾收集(Garbage Collection, GC), 诞生于1960年 MIT 的 Lisp 语言。

程序计数器,虚拟机栈,本地方法栈3个区域岁线程而生,随线程而灭;栈中的栈桢随着方法的进入和退出而有条不紊地执行者出栈和入栈的操作,实现了内存的自动清理。因此,我们的内存垃圾回收主要集中于java堆和方法区中,在程序运行期间,这部分内存的分配和使用都是动态的。

阅读全文 »

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。与传统数据库不同的是,redis的数据是存在内存中的,所以读写速度非常快,因此被广泛用于缓存方向。另外,redis也常用来做分布式锁。

阅读全文 »

动态规划原理

动态规划与分治法类似,都是把大问题拆分成小问题,通过寻找大问题与小问题的递推关系,解决一个个小问题,最终达到解决原问题的效果。但不同的是,分治法在子问题和子子问题等上被重复计算了很多次,而动态规划则具有记忆性,通过填写表把所有已经解决的子问题答案纪录下来,在新问题里需要用到的子问题可以直接提取,避免了重复计算,从而节约了时间,所以在问题满足最优性原理之后,用动态规划解决问题的核心就在于填表,表填写完毕,最优解也就找到。

阅读全文 »

在Spring Cloud微服务系统中,一种常见的负载均衡方式是,客户端的请求首先经过负载均衡(zuul、Nginx),再到达服务网关(zuul集群),然后再到具体的服务。

阅读全文 »

一个能够为基于Spring的企业应用系统提供声明式的安全訪问控制解决方式的安全框架(简单说是对访问权限进行控制嘛),应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。spring security的主要核心功能为 认证和授权,所有的架构也是基于这两个核心功能去实现的。

阅读全文 »

二叉查找树(BST)是一颗二叉树,也叫二叉搜索树,每个节点的键都大于其左子树的节点的键任意节点的键而小于右子树的任意。

阅读全文 »