自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 问答 (1)
  • 收藏
  • 关注

原创 最强的缓存数据库一致性技术方案

一、背景面对高qps场景,单纯mysql的技术架构容易出现瓶颈,常见的解决方案是引入分布式缓存挡住大部分读流量,但增加了依赖项则意味着需要考虑的异常场景就更多,最典型的莫过于如果保证缓存和数据库一致性。二、缓存一致性问题原因并发的场景下,导致读取老的 DB 数据,更新到缓存中。 缓存和 DB 的操作,不在一个事务中,可能只有一个操作成功,而另一个操作失败,导致不一致。三、业内常用方案 (Cache Aside Pattern)应用程序先从cache取数据,没有得到,则从数据库中取

2021-11-06 17:34:34 517

原创 最简单的话讲BIO、NIO

之前看过太多博客,讲BIO、NIO的对比,有一说一,很多都是照本宣科,不知所云===或者都是直接复制其他博客,看着苦不堪言。经过反复找视频和各种资料,终于基本懂了。所以这里我用最简单的话来讲BIO和NIO。首先声明一点,IO主要分为本地磁盘IO和网络IO,在本地磁盘IO中BIO和NIO性能区别不大,我们主要讲网络IO。BIO就是很早期的IO技术,阻塞型IO,流程大概这样:1.客户端和服务端通过socket建立连接2.连接之后新建一个线程,不管是否有输入输出,这个线程一直活着,除非连接断开

2021-07-31 11:31:57 138

原创 JUC 面试题总结

1.什么是 CAS?CAS 表示 Compare And Swap,比较并交换,CAS 需要三个操作数,分别是内存位置 V、旧的预期值 A 和准备设置的新值 B。CAS 指令执行时,当且仅当 V 符合 A 时,处理器才会用 B 更新 V 的值,否则它就不执行更新。但不管是否更新都会返回 V 的旧值,这些处理过程是原子操作,执行期间不会被其他线程打断。在 JDK 5 后,Java 类库中才开始使用 CAS 操作,该操作由 Unsafe 类里的compareAndSwapInt等几个方法包装提供。H..

2021-06-23 00:21:00 998

原创 《java虚拟机》学习笔记—垃圾收集分代理论

当前商业虚拟机的垃圾收集器,大多数都遵循了"分代收集"的理论进行设计,分代收集名为理论,实为一套符合大多数程序进行实际情况的经验法则,它建立在两个分代假说上:(1)弱分代假说:绝大多数对象都是朝生夕灭的。(2)强分代假说:熬过越多次垃圾收集过程的对象就越难以消亡。所以由这两个假说就奠定了常用的垃圾收集器设计原则:收集器应该将java对象堆划分不同的区域,然后将对象按照其年龄(即熬过的垃圾收集过程的次数)分配到不同的区域中存储。所以显而易见,将朝生夕灭的对象集中到一起,每次回收时只关注...

2021-01-09 19:01:40 124

转载 Java中synchronized关键字

1.介绍synchronized块是Java提供的一种原子性内置锁,Java中的每个对象都可以把它当做一个同步锁来使用,这些Java内置的使用者看不到的锁被称为内置锁,也成为了监视器锁。线程的执行代码在进入synchronized代码块前会自动获取内部锁,这时候其他线程访问该同步代码块时会被阻塞挂起。拿到内部锁的线程会在正常退出同步代码块或者抛出异常后或者在同步块内调用了该内置锁资源的wait...

2019-04-28 11:57:04 241

原创 《深入理解Java虚拟机》第九章 9.2.1 留下的问题(第279页)

问题:如果有10个WEB应用程序都是用Spring来进行组织管理的话,可以把Spring放到Common或Shared目录下(Tomcat5.0)让这些程序共享。Spring要对用户程序的类进行管理,自然要能访问到用户程序的类,而用户程序显然是放在/WEB-INF目录中的。那么被CommonClassLoader或SharedClassLoader加载的Spring如何访问并不在其加载范围内的用户...

2019-03-27 23:38:47 543

原创 git clone 时候出现Please make sure you have the correct access rights and the repository exists.问题解决

输入 git clone 命令时出现Please make sure you have the correct access rights and the repository exists.错误,出现改问题的原因是git服务器没有存储本地ssh密钥。解决步骤:1. 删除 .ssh 文件夹【C:\Users\(本地用户名)\.ssh】 中的 known_hosts(直接删除即可)2....

2019-03-23 14:45:12 90623 12

转载 Java虚拟机类加载的主动引用和被动引用

对于累的初始化阶段,虚拟机规范严格规定了有且只有5种情况必须立即对类进行“初始化”(在加载、验证、准备阶段之后):1)遇到 new、getstatic、 putstatic 和 invokestatic 这4条字节码指令的时候,如果类没有进行过初始化,则需要先触发其初始化。生成这4条指令的最常见的Java代码场景是:使用new关键字实例化对象的时候、读取或设置一个类的静态字段(被final修...

2019-03-17 19:03:20 240

原创 在ThinkPHP3.2中无法加载控制器的原因之一

今天在使用thinkphp3.2.3的时候出现了这么一个问题,最开始也上网搜了几个回答,并一一尝试,结果发现统统无效果,然后再仔细检查了每个文件的命名看收否有书写错误的,结果发现了在一个的细节上的缺漏,就是通常在Home/Controller目录下本来应该是GoodController.class.php,结果粗心的写成了GoodController.php,改过来后便运行成功了。如果有...

2017-09-24 21:19:39 8478 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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