CrankZ的博客

希望能用自己的技术使这个世界更加美好。

本地缓存Caffeine

Caffeine 说起Guava Cache,很多人都不会陌生,它是Google Guava工具包中的一个非常方便易用的本地化缓存实现,基于LRU算法实现,支持多种缓存过期策略。由于Guava的大量使用,Guava Cache也得到了大量的应用。但是,Guava Cache的性能一定是最好的吗?也...

2019-05-19 16:54:04

阅读数 5

评论数 0

Java——七种垃圾收集器+JDK11最新ZGC

JDK1.8之前的堆内存示意图: 从上图可以看出堆内存的分为新生代、老年代和永久代。新生代又被进一步分为:Eden 区+Survior1 区+Survior2 区。值得注意的是,在 JDK 1.8中移除整个永久代,取而代之的是一个叫元空间(Metaspace)的区域(永久代使用的是JVM的堆...

2019-01-07 16:41:45

阅读数 674

评论数 2

String学习笔记

阿里Java开发手册 这里总结了阿里开发手册中有关String类的介绍 13. 【推荐】使用索引访问用String的split方法得到的数组时,需做最后一个分隔符后有无内容的检查,否则会有抛IndexOutOfBoundsException的风险。 说明: String str = &a...

2018-12-25 16:23:54

阅读数 82

评论数 0

结构型模式:代理模式,Java静态代理+动态代理实现

什么是代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:对扩展开放,对修改关闭。也就是不要随意去修改已经写好的代码或者...

2018-12-15 11:22:03

阅读数 74

评论数 0

基本类型与包装类型

阿里开发手册中关于基本类型的问题 7. 【强制】所有的相同类型的包装类对象之间值的比较,全部使用equals方法比较。 说明:对于Integer var = ? 在-128至127范围内的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象,这个区间内的Inte...

2018-12-14 21:48:08

阅读数 104

评论数 0

创建型模式:单例模式+5种写法+最佳实践。

什么是单例模式 单例模式(Singleton Pattern):单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。 单例模式特点: 这个类只能有一个实例; 它必须自行创建这个实例; 它必须自行向整个系统提供这个实例。 Ti...

2018-12-11 15:04:04

阅读数 122

评论数 0

创建型模式:工厂模式

23种设计模式 工厂模式的分类 简单工厂(Simple Factory)模式 工厂方法(Factory Method)模式 抽象工厂(Abstract Factory)模式 为什么要用工厂模式 满足开闭原则:对修改关闭,对扩展开放。就是别改老代码,只需要添代码,以前所有的老代码,都是...

2018-12-10 15:52:13

阅读数 79

评论数 0

哈希 学习笔记

Tips:Hash=哈希=散列 Tips:哈希经常与哈希函数指一个意思。本文中哈希与哈希函数不做特殊区分,默认就是一个意思。 什么是哈希 在记录的关键字与记录的存储地址之间建立的一种对应关系叫哈希函数。 哈希函数就是一种映射,是从关键字到存储地址的映射。 通常,包含哈希函数的算法的算...

2018-12-09 18:30:13

阅读数 1210

评论数 0

布隆过滤器,原理+案例+代码实现

概述 什么是布隆过滤器         布隆过滤器(Bloom Filter)是1970年由布隆提出的,它实际上是由一个很长的二进制向量和一系列随意映射函数组成。         它是一种基于概率的数据结构,主要用来判断某个元素是否在集合内,它具有运行速度快(时间效率),占用内存小的优点(空...

2018-12-09 15:49:10

阅读数 119

评论数 0

分布式锁,学习笔记

什么是分布式锁? 当在分布式模型下,数据只有一份(或有限制),此时需要利用锁的技术控制某一时刻修改数据的进程数。 与单机模式下的锁不仅需要保证进程可见,还需要考虑进程与锁之间的网络问题。(我觉得分布式情况下之所以问题变得复杂,主要就是需要考虑到网络的延时和不可靠。。。一个大坑) 分布式锁还是...

2018-12-06 17:55:17

阅读数 61

评论数 0

时间复杂度+常见复杂度解释

前言 算法的效率 虽然计算机能快速的完成运算处理,但实际上,它也需要根据输入数据的大小和算法效率来消耗一定的处理器资源。要想编写出能高效运行的程序,我们就需要考虑到算法的效率。 算法的效率主要由以下两个复杂度来评估:时间复杂度:评估执行程序所需的时间。可以估算出程序对处理器的使用程度。空间复杂...

2018-12-02 19:07:15

阅读数 2831

评论数 1

分库分表

名词解释 库:database;表:table;分库分表:sharding 为什么要分库分表 移动互联网时代,海量的用户每天产生海量的数量,比如: 用户表 订单表 交易流水表 以支付宝用户为例,8亿;微信用户更是10亿。订单表更夸张,比如美团外卖,每天都是几千万的订单。淘宝的历史订单总...

2018-12-01 23:11:31

阅读数 472

评论数 0

MySQL存储引擎:MyISAM与InnoDB

常见命令 查看数据库可配置的存储引擎类型 MySQL>show engines;   create table创建表时指定存储引擎 MySQL> use school MySQL> create table cla...

2018-11-28 23:14:30

阅读数 65

评论数 0

Cookie、Session、Token

HTTP无状态 而Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。就是说假如你去网上购物,把喜欢的商品加到购物车中,因为HTTP是无状态的协议,一旦你的浏...

2018-11-28 11:47:23

阅读数 93

评论数 0

8个排序算法

排序算法 排序算法(Sorting algorithms)是什么? Wikipedia 如是说: In computer science, a sorting algorithm is an algorithm that puts elements of a list in a certai...

2018-11-22 18:30:44

阅读数 89

评论数 0

BeanFactory、 ApplicationContext、FactoryBean区别与联系

BeanFactory 概述 Spring 作为一种IoC容器最大的目的就是降低组件与组件之间的依赖关系。而BeanFactory作为整个Spring IoC容器的核心使用了一种统一的方法来装配所有的应用对象,通过Java的反射机制和依赖注入来实现这一装配过程,使受之管理的对象无需知道Spri...

2018-11-21 16:53:25

阅读数 107

评论数 0

从输入URL到显示页面的过程中发生了什么?

概览 关于这个问题,我看过很多文章,每个人分析的方法与总结的步骤都不相同。我这里按照自己的理解把过程分为了十个部分。因为我主要学习后端,所以最后几步前端的内容略写了。 一、URL解析 二、DNS域名解析 三、建立TCP连接 四、发送HTTP请求 五、访问重定向301/302(非必须) 六、...

2018-11-20 16:41:09

阅读数 563

评论数 0

Redis淘汰机制+热点数据问题

为什么需要淘汰 Redis是内存数据库,我们能时时刻刻能感受到Redis作者为更好地使用内存而费尽各种心思,例如最明显的是对于同一种数据结构在不同应用场景下提供了基于不同底层编码的实现(如压缩列表、跳跃表等)。 Redis最常见的两种应用场景为缓存和持久存储,当Redis做缓存时,有一个Red...

2018-11-18 23:11:00

阅读数 1324

评论数 0

Netty学习笔记(一):基础理论+核心组件

前置知识 I/O模型 用什么样的通道将数据发送给对方,BIO、NIO或者AIO,I/O模型在很大程度上决定了框架的性能 阻塞I/O 传统阻塞型I/O(BIO)可以用下图表示: 特点 每个请求都需要独立的线程完成数据read,业务处理,数据write的完整操作 问题 当并发数较大时...

2018-11-18 21:49:12

阅读数 94

评论数 0

Java多线程学习笔记:Callable、Future、FutureTask

概述 创建线程的三种方式: 继承Thread,重写run方法 实现Runnable接口,重新run方法 实现Callable接口,重写call方法 前两种方式,一种是直接继承Thread,另外一种就是实现Runnable接口,这两种方式都是Java第一版就有的方法。  这两种方式都有一个缺...

2018-11-08 10:14:32

阅读数 71

评论数 0

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