自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 JVM类加载、概念和高级特性

目录虚拟机类加载机制概念类加载过程:加载验证准备解析初始化类加载器双亲委派模型虚拟机字节码执行引擎栈帧局部变量表操作数栈动态链接程序编译与代码优化虚拟机类加载机制概念1、类加载机制:描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。2、类型的...

2019-07-07 13:33:23 221 1

原创 JVM内存分配和GC

目录说明内存分配一、Java虚拟机栈二、Java堆三、方法区四、运行时常量池五、程序计数器六、本地方法栈七、直接内存对象内存划分一、本地线程分配缓冲(TLAB)二、对象创建流程三、JVM调参1、堆内存2、栈内存3、方法区4、本地直接内存5、其它对象内存布局1、对象头2、实例数据3、对其填充对象访问定位垃...

2019-05-10 11:35:14 776 1

原创 Java多线程基础

目录同步方式常用对象一、volatile变量二、ThreadLocal三、Future四、ExecutorCompletionService五、Thread并发容器一、ConcurrentHashMap二、CopyOnWriteArrayList线程池一、ExecutorService疑问基础一、概念二、注意点三、其它java...

2018-11-02 11:59:36 217

原创 Java多线程并发工具类

目录 AbstractQueuedSynchronizer一、闭锁CountDownLatch二、栅栏CyclicBarrier三、信号量Semaphore四、FutureTask五、Exchanger AbstractQueuedSynchronizer是一个用于构建锁和同步器的框架;CountDownLatch、Semaphore、FutureTask都...

2018-10-18 21:16:24 336

原创 Java线程池的使用

一、设置线程池的大小考虑因素1、计算密集型(可考虑设置线程池大小为:cpuNum+1)、IO密集型2、任务等待时间、任务计算时间两者的比值3、其它:内存、文件句柄、套接字句柄、数据库连接等线程池大小 = cpuNum*目标cpu使用率*(1+任务等待时间/任务计算时间)0<=目标cpu使用率<=1获得CPU个数:int cupNum = Runtime.g...

2018-10-18 17:14:32 241

原创 系统环境配置

javaweb系统环境配置

2023-04-20 11:52:20 724

原创 Springboot是什么

springboot是个啥?

2023-03-11 14:06:08 1996 1

原创 常见面试题

大佬问我设计题

2023-02-23 12:05:59 135

原创 RPC原理

RPC原理

2023-02-16 21:40:49 2657

转载 redis cluster集群原理

redis cluster

2023-02-15 15:26:30 88

原创 binlog、redolog、undolog

binlog、redolog、undolog介绍

2023-02-13 22:24:43 1053

转载 Spring Bean加载过程和引生问题

spring bean初始化

2023-01-29 21:38:50 125

原创 常见限流算法

限流算法

2023-01-23 00:05:35 241

原创 MVCC原理详解

mvcc原理

2023-01-11 16:30:13 722

原创 短视频场景高并发技术实现

短视频场景高并发技术实现

2022-07-10 17:19:37 784 1

原创 四舍五入方法耗时排序

public static void main(String[] args) { double d = (double) 250 / 365; long t33 = System.currentTimeMillis(); String aa33= formatDouble3(d); System.out.println("值:"+aa33+";耗时:"+ (System.currentTimeMillis() - t33)+"ms ; :"+ d); System.

2020-09-11 14:43:35 150

原创 LoadingCache注意点

一、expireAfterWrite和refreshAfterWrite区别1、expireAfterWrite每次缓存失效LoadingCache都会去调用我们实现的load方法去重新加载缓存,在加载期间,所有线程对该缓存key的访问都将被block。所以如果实际加载缓存需要较长时间的话,这种方式不太适用。从代码中还可以看到,即使在CacheLoader实现了reload方法,也不会被调用,因为reload只有当设置了refreshAfterWrites时才会被调用。2、refreshAfte

2020-08-13 11:47:10 1971

原创 如何保证Redis与数据库的一致性

1、参考缓存更新的套路:https://coolshell.cn/articles/17416.html#Write_Behind_Caching_Pattern先上一个错误操作示范操作方法:先删除缓存,然后再更新数据库,而后续的操作会把数据再写入到的缓存中。存在的问题:查询请求没hit到缓存会把旧数据更新到缓存中。解释:两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的.

2020-06-28 23:22:50 533

原创 统一身份管理系统

1、什么是SSO单点登录的英文名叫做:Single Sign On(简称SSO)CAS (Central Authentication Service)https://zhuanlan.zhihu.com/p/660373422、平台级 SAAS 架构的基础:统一身份管理系统https://www.jianshu.com/p/990d8acfdb69...

2020-04-15 00:22:58 3573

原创 分布式事务解决方案

分布式事务

2019-10-26 11:44:14 163

原创 秒杀系统设计

一、稳1、流量洪流的拦截前端1、前端静态资源缓存、cdn、按钮置灰、ip限流、一段时间内现在用户ip2、同一userid限制访问频率,超过频率返回同一个页面,进行限流。利用验证码防止恶意攻击。后端1、请求丢到mq中按照消息队列进行处理,进行削峰2、因为秒杀是读多写少,把库存数据预先加载到Redis中,库存数据和相关计算在redis中进行。在redis中查询:总库...

2019-10-06 10:37:44 202

原创 LeetCode

算法简要

2019-09-16 23:36:41 230 2

原创 B树和B+树

B树和B+树

2019-09-06 01:29:03 520 1

原创 HashMap源码分析

hashmap源码

2019-08-27 17:46:03 182 1

原创 频繁full gc cpu 100%

toptop命令查看后,发现cpu占用比较高,对应的pid是205494top -Hp 205494查看对应进程下,是哪些线程占用的cpu比较高,发现pid为205599printf "%x\n" 205599把对应的pid转成16进制便于查看,得到3231fjstack205494 > mylog.txt查看线程Java堆栈信息,猜测可能和cp...

2019-08-27 11:54:01 806

原创 Spring常见概览

spring常见概览

2019-08-26 00:04:38 171

原创 数据结构

1、数据结构基础(数组、链表、栈、队列)https://www.cnblogs.com/jimoer/p/8783604.html2、排序算法https://blog.csdn.net/hellozhxy/article/details/799118673、treemap和红黑树https://blog.csdn.net/cyywxy/article/details...

2019-08-23 11:45:23 211

原创 集合源码浅析

java常用的集合对象源码进行记录

2019-08-23 11:44:46 334 1

原创 Nginx

1、反向代理:https://www.cnblogs.com/ysocean/p/9392908.html2、线程模型:https://www.jianshu.com/p/adc35c1393c63、epoll:https://www.jianshu.com/p/397449cadc9aLinux中提供的epoll相关函数如下:int epoll_create(int size)...

2019-08-20 00:59:54 118

原创 TCP/IP

计算机网络

2019-08-09 00:41:53 216 1

原创 Kafka原理

带你了解kafka

2019-08-03 22:02:10 274 1

转载 epoll

epoll

2019-07-31 11:35:29 212 1

原创 Redis

redis核心问题

2019-07-28 17:55:00 310 1

原创 Mysql事务隔离级别

一、事务的基本要素(ACID)  1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。  2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A.........

2019-07-25 17:25:58 129 1

原创 Mysql查询和索引

Mysql查询和索引

2019-07-21 01:52:07 418 1

原创 mysql innodb索引和myisam索引区别

myisam1、不支持事务和行级锁,崩溃后无法安全恢复,将数据写到内存中,等待操作系统定期将数据刷到磁盘上。2、压缩表,解压时不需要解压整个表(甚至不解压行所在的整个页面)3、插入速度快,适合一次insert后只查询的场景。4、使用前缀压缩来减少索引的大小,从而让更多索引放入内存中,默认只压缩字符串,可以通过参数设置对整数进行压缩。1、前缀压缩参数pack_keys,在IO...

2019-07-21 00:27:26 247

原创 高性能Mysql(上 基础篇)

mysql基础

2019-07-21 00:26:57 199 1

原创 面试题

java必看:https://blog.csdn.net/zengshaotao/article/details/84859560java :https://blog.csdn.net/qq280130640/article/details/86706331面试题必看:https://www.cnblogs.com/java1024/p/8594784.html...

2019-07-14 21:53:34 124

原创 多线程的锁

多线程的锁

2019-07-14 21:53:00 621 1

原创 JMM作用和原理

JMM作用和原理

2019-07-13 19:11:45 427 1

空空如也

空空如也

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

TA关注的人

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