自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Inception查缺补漏

个人学习笔记

  • 博客(18)
  • 收藏
  • 关注

原创 深入解析Redis——数据结构

本文简单介绍了redis中,底层的各种数据结构。

2022-08-28 22:07:02 250

原创 深入解析Redis——集群

Redis的集群是Redis提供的分布式数据库方案,集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能。使用 Redis Cluster 集群,主要解决了大数据量存储导致的各种慢问题,同时也便于横向拓展。...

2022-08-28 22:06:31 707 1

原创 深入解析Redis——主从复制与哨兵

主从复制与哨兵机制极大地提高了Redis的可用性,保证了redis稳定性。

2022-08-28 22:04:09 181

原创 深入理解Redis——持久化

因为Redis是内存数据库,它将自己的数据库状态储存在内存里面,所以如果不想办法将储存在内存中的数据库状态保存到磁盘里面,那么一旦服务器进程退出,服务器中的数据库状态也会消失不见。因此Redis提供了RDB持久化功能,这个功能可以将Redis在内存中的数据库状态保存到磁盘里面,避免数据意外丢失。...

2022-08-28 22:01:20 191

原创 深入理解Redis——对象

Redis 并没有直接使用前文中介绍的数据结构直接构建键值对数据库,而是是基于这些数据结构创建了一个对象系统。

2022-08-28 21:57:57 321

原创 深入理解JUC——JUC 线程安全集合类

JUC 线程安全集合类用来限制同时访问共享资源的线程上限。

2022-08-26 22:10:29 252

原创 深入理解JUC——CPU缓存及volatile

CPU 缓存是为了解决CPU 处理速度和内存处理速度不对等的问题。由于计算机的存储设备与处理器的运算速度有着几个数量级的差距,需要设计多级缓存,将运算需要使用的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存之中,这样处理器就无须等待缓慢的内存读写...

2022-08-26 22:08:34 295

原创 深入理解JUC——AQS 及 ReentrantLock

AQS 阻塞式锁和相关的同步器工具的框架。核心思想是:如果被请求的共享资源空闲,则将资源分配给工作线程,并将共享资源设置为锁定的状态;如果资源被占用的话,就需要一套线程阻塞等待以及被唤醒时锁分配的机制,AQS将线程封装成节点,进入到队列当中(FIFO的双向队列),等待唤醒。...

2022-08-26 22:05:39 183

原创 深入理解JUC——Sychronized及Monitor

synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。它采用互斥的方式让同一时刻至多只有一个线程能持有 对象锁,其它线程再想获取这个对象锁时就会阻塞住。这样就能保证拥有锁的线程可以安全的执行临界区内的代码,不用担心线程上下文切换。......

2022-08-26 22:02:25 143

原创 深入理解JUC——CAS 及 原子类

加锁的操作可以有效的保证共享资源的一致性,但是会影响性能。因此,java采用了一种无锁的方式来同时解决并发和效率的问题

2022-08-26 22:01:46 335

原创 深入理解JUC——线程池相关

线程池提供了一种限制和管理资源(包括执行一个任务)的方式。 每个线程池还维护一些基本统计信息,例如已完成任务的数量。使用线程池可以降低资源难道消耗、提高响应速度以及提高线程的客观理性......

2022-08-26 21:55:31 142

原创 深入理解JUC——线程及常见方法

Java并发的基础是进程与线程,本文主要介绍了线程与进程的关系, 以及object类中与线程相关的方法。

2022-08-26 21:37:10 231

原创 深入理解JVM系列——JVM调优以及常用参数

资源消耗主要存在于CPU、文件IO、网络IO、以及内存方面。Lunix在操作文件时,将数据放入文件缓存区。当物理空闲内存够用时,通常只有在Lunix写文件和第一次读取文件的时候才会产生文件IO。

2022-08-23 08:48:11 202

原创 深入理解JVM系列——解析垃圾回收以及常见GC收集器

JVM堆的内存是有限的,因此需要经常进行垃圾回收,清理不需要的对象,以腾出新的空间来创建新的对象

2022-08-23 08:45:44 314

原创 深入理解JVM系列——字节码执行引擎

栈帧”(Stack Frame)则是用于支持虚拟机进行方法调用和方法执行背后的数据结构,它也是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素。每一个栈帧都包括了一个栈帧需要分配多少内存,并不会受到程序运行期变量数据的影响,在编译期就已经确定了,而仅仅取决于程序源码和具体的虚拟机实现的栈内存布局形式。

2022-08-23 08:40:18 125

原创 深入理解JVM系列—— 类加载机制以及双亲委派

一个类从被加载到虚拟机内存中开始,到卸载出内存为止,他的生命周期如下:加载、验证、准备、初始化和卸载这五个阶段的顺序是确定的,而解析阶段不一定,在某些情况下在初始化之后再开始,这是为了支持Java语言的运行时绑定(动态绑定)...

2022-08-18 14:11:48 91

原创 深入理解JVM系列—— Java的对象

深入Java对象的创建、布局以及访问

2022-08-18 14:09:13 106

原创 深入理解JVM系列——JVM 内存管理

Java 虚拟机在执行Java程序的过程中会把管理的内存划分为若干不同的区域。运行时数据区可以分为两个部分,线程共享区和线程私有区。 线程共享区包含方法区和堆,而线程私有区包含了虚拟机栈、本地方法栈和程序计数器...

2022-08-16 21:10:44 349 1

空空如也

空空如也

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

TA关注的人

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