Java强引用软引用弱引用虚引用|JavaJava有4种引用类型:强引用、软引用、弱引用、虚引用。
程序中一般只用强引用和软引用,软引用的优点在于内存不够时GC会主动回收,防止OutOfMemory异常。
参考:https://segmentfault.com/a/1190000015282652
强引用平时程序中的引用就是强引用。如果一个 ...
Read more
 Redis持久化策略|redisRedis内存数据库单机Redis默认有16个数据库,名字就是编号0到15,用redis-cli进入时默认用0号数据库。可以自己切换数据库,当前在哪个数据库会直接显示在命令行。如下:
123456127.0.0.1:6379> select 1 -- 切换到1号数据库OK127.0.0.1:6 ...
Read more
 Redis分布式锁|redis用 redis 实现分布式锁思路:
用setnx命令,作用是当key存在时不设置。
指定一个分布式锁的key,如“synclock”。
线程获取锁的操作就是执行setnx key value命令,key=synclock,value=这个key的超时时间(当前时间+指定毫秒数)和当前线程的某个标识( ...
Read more
 Redis CRUD命令|redis数据类型Redis是一个key-value存储系统,存储的数据都是key-value格式的,key固定是String类型,value类型可以是:
String
Hash:和HashMap一样,由key-value组成
List:列表,有序的,按插入顺序排序,可以指定从头部插入还是尾部插入,可以含重 ...
Read more
 Java线程池种类|Java前言线程池的基本思想是一种对象池的思想,开辟一块内存空间,里面存放了众多未死亡的线程,池中线程执行调度由池管理器来处理。当有线程任务时(线程任务保存在队列里),从池中取一个线程,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。
JavaExecutors类中提 ...
Read more
 Redis缓存问题|redis正常缓存流程用户访问网站,网站服务器请求Redis查询数据,Redis中有数据就直接返回,若Redis中没有数据,服务器再请求MySQL查询,MySQL查询到数据写入Redis,并返回。
缓存雪崩网站访问量大,Redis中大量的key在同一时间全部失效,导致这些key对应的用户请求全部集中到MySQ ...
Read more
 RestTemplate负载均衡原理|SpringCloud|源码前言当我们使用 RestTemplate 调用服务时,会经过以下几个过程:
RestTemplate 发送的请求被 LoadBalancerInterceptor 拦截,LoadBalancerInterceptor 调用 LoadBalancerClient.execute() 方法处理请求。L ...
Read more
 Git使用SSH方式我平时git clone时用的都是HTTPS协议,也设置了:
1git config --global credential.helper store
这行代码的作用是在 .gitconfig 文件中加这些内容:
12[credential]	helper = store
以及生成一个 . ...
Read more
 Spring Cloud健康检查|SpringCloud|原理描述前言本文介绍 SpringCloud 服务引入spring-boot-starter-actuator依赖后,进行健康检查的原理,以及何时进行健康检查。目前看有两种情况,第一是客户端自己触发健康检查并将检查结果告诉 Server,第二是 SpringBoot Admin Server 主动调用客户端 ...
Read more
 Java BIO NIOBIO基础BIO全称是Blocking I/O,意为非阻塞IO。我们平时使用的IO API就是BIO。
BIO是面向流的。输入流读取数据,输出流写入数据。流基类是InputStream和OutputStream。但我们不能直接使用基类,只能使用其子类。基类声明了子类最基本也是最常用的 read/wr ...
Read more