04-23 16:25
2021-04-23 16:25
Redis分布式锁其实就是在系统里面占一个“坑”,其他程序也要占“坑”的时候,占用成功了就可以继续执行,失败了就只能放弃或稍后重试。占坑一般使用setnx(setifnotexists)指令,只允许被一个程序占有,使用完调用del释放锁。[ 查看全部 ]
04-23 16:14
2021-04-23 16:18
缓存穿透:指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。解决方案:最简单粗暴的方法如果一个查询返回的数据为空(不管是数据不存在,还是系统故障),我们就把这个空结果进行缓存,但它的过期时间会很短,最长不超过五分...[ 查看全部 ]
04-23 16:12
2021-04-23 16:21
动态代理:当想要给实现了某个接口的类中的方法,加一些额外的处理。比如说加日志,加事务等。可以给这个类创建一个代理,故名思议就是创建一个新的类,这个类不仅包含原来类方法的功能,而且还在原来的基础上添加了额外处理的新类。这个代理类并不是定义好的,是动态生成的。具有解耦意义,灵活,扩展性强。动态代理的应用:1)Sprin...[ 查看全部 ]
04-23 16:09
2021-04-23 16:21
简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存objectstates,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。[ 查看全部 ]
04-23 16:08
2021-04-23 16:22
反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力Java反射:在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法Java反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类。在运行时构造任意一个类的对象。在运行时判断任意一个类所具...[ 查看全部 ]
04-22 22:39
2021-04-25 12:00
1、修改如下文件:vim/etc/sysconfig/i18nLANG="en_US.UTF-8"2、使其立即生效source/etc/sysconfig/i18n说明,如果是centos7或以上班,修改的配置文件为:/etc/locale.conf[ 查看全部 ]
04-22 15:48
2021-04-22 15:52
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。是操作系统层面的一个错误,是进程死锁的简称,最早在1965年由Dijkstra在研究银行家算法时提出的,它是...[ 查看全部 ]
04-22 15:47
2021-04-22 15:51
主要有以下三点:1.接收的参数不一样;2.submit有返回值,而execute没有;3.submit方便Exception处理。[ 查看全部 ]