自定义博客皮肤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)
  • 收藏
  • 关注

翻译 面试经典问题之Java的不同引用类型

Java中4中引用类型强引用Strong References软引用Soft References弱引用Week References虚引用Phantom References这些引用的区别仅在于垃圾回收时管理它们的方式不同。如果你从来没有听说过它们,意味着你只使用过强引用类型。了解它们的区别可以帮助你,尤其是你需要临时存储对象,但是不能使用Guava这种缓存库的时候。因为这些类型和JVM垃圾回收器强相关,我简要的回顾下关于Java的垃圾回收的一些信息,然后我会演示这些不用的类型。垃圾回收

2021-10-17 12:58:37 129

原创 GC相关面试题整理

StackOverFlowError和OutOfMemoryError,谈谈你的理解;StackOverFlowError是栈内存溢出OutOfMemoryError是堆内存溢出Java运行时数据区包含:堆方法区(也叫非堆)本地栈虚拟机栈程序计数器程序计数器是不会抛出StackOverFlowError或者OutOfMemoryError的。本地栈和虚拟机栈会抛出StackOverFlowError。  本地栈和虚拟机栈非常类似,虚拟机栈是虚拟机执行Java方法时的内存区域,本地栈是

2021-10-29 01:03:44 1095

原创 总结-经典垃圾收集器各种维度的对比

垃圾收集器针对分代收集算法单线程or多线程侧重点优点缺点搭配适用场景SerialYoung-Generation标记-复制单线程简单高效:额外内存消耗最小,单线程没有线程交互开销Stop the worldSerial Old客户端模式下默认的新生代收集器ParNewYoung-Generation标记-复制多线程CMS是激活CMS后的默认新生代收集器,但现在也是不建议使用了,被G1替代Parallel ScavengeYoun...

2021-10-27 01:03:44 164 1

原创 微服务之限流

参考:https://www.infoq.cn/article/ipxnuqwu3lgwxc8j7tzw

2021-10-18 23:31:39 93

原创 jvm启动参数

JVM启动参数格式格式说明举个????备注-以-开头为标准参数,所有的JVM都要实现这些参数,并向后兼容-server;-client-D设置系统属性-X以-X开头为非标准参数,基本都是传给JVM的,默认JVM实现这些参数的功能,但是并不保证所有的JVM都实现这些参数的功能,并且不保证向后兼容,java -X 可以查看当前JVM支持的非标准参数-Xmixed:混合模式执行(默认); -Xint:仅解释模式执行,-Xmx;4096m:指定堆内存的最大大小

2021-10-09 23:08:25 151

原创 php和java请求处理过程的对比

PHP处理请求的过程简述用户通过url地址,到Nginx服务器,nginx通过反向代理和负载均衡等一系列处理后找到一台后端服务器,然后通过fastcgi协议将请求转移给php-fpm。php-fpm其实是一个实现了fastcgi协议的进程管理器,由一个master进程和多个worker进程组成。master进程只负责管理worker进程,真正负责请求的是worker进程。worker进程接收到请求后会去执行我们的php代码,因为php是解释型语言,所以每次执行其实都是边解释边执行,但其实跟请求次数相比

2021-09-26 10:55:06 192

原创 redis面试题汇总

redis使用过Redis分布式锁么,它是什么回事?Redlock 算法当多个进程需要访问共享数据时,可以通过使用redis分布式锁来保证数据的正确性。锁一般都有两大操作加锁和释放锁。加锁一共3个步骤:获取锁检查锁设置锁并且需要保证这3个步骤的原子性,有两种做法:redis的setnx命令或lua脚本。我一般用的都是setnx命令,只有在锁不存在时,才能够设置锁,并且一般还需要设置锁的过期时间,防止获取到锁的进程,在操作共享数据时异常退出,释放锁的代码没有执行到,导致其他进程都无法获取锁而影

2021-09-10 10:22:03 76

原创 LoadingCache 参数说明

expireAfterAccess在指定的过期时间内没有读写,缓存数据即失效expireAfterWrite在指定的过期时间内没有写入,缓存数据即失效refreshAfterWrite在指定的过期时间之后访问时,刷新缓存数据,在刷新任务未完成之前,其他线程返回旧值.expireAfterAccess,expireAfterWrite在数据过期时,都会删除缓存数据,然后委派当前线程去加载新的数据,其他的线程访问key的时候会阻塞,直到加载完新的数据,一起返回.refreshAfterWrit.

2021-03-30 18:37:46 789

原创 Redis zset 部分命令执行原理

zset 数据结构zset有两种编码方式,一种是压缩数组(ziplist),另一种是跳表(skiplist).这里讨论的是skiplist.如果zset里的元素比较多,或者存储的元素比较大,redis就会采用 字典(dict)+跳表(skiplist)的方式来存储数据.其中,dict用于存储member和score的映射关系,dict结构可以使得zscore(key,member)这样的命令的时间复杂度为O(1).skiplist有四个字段,源码如下:typedef struct zskiplist

2021-03-28 11:49:05 161

空空如也

空空如也

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

TA关注的人

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