- 博客(24)
- 资源 (7)
- 收藏
- 关注
原创 干掉面试官3-CPU中的缓存、缓存一致性、伪共享和缓存行填充
文章目录1、 CPU缓存2、 总线锁和缓存锁3、 缓存行4、 缓存一致性协议(如:MESI)5、 伪共享(false sharing)问题6、 伪共享解决方案(如:缓存行填充)6.1 Disruptor为什么这么快?6.2 实验证明6.3 Jdk8中自带注解@Contended7、 总结本篇文章主要介绍CPU缓存相关的内容。 亦是上一遍文章volatile底层原理详解(上) 的延伸和补充。...
2020-04-23 23:07:05 2522 10
原创 干掉面试官2-volatile底层原理详解
文章目录一、volatile的作用1.1、volatile变量的可见性1.2、volatile变量的禁止指令重排序二、volatile的的底层实现2.1、 Java代码层面2.2、字节码层面2.3、JVM源码层面2.4、汇编层面2.5、硬件层面volatile关键字是Java虚拟机提供的最轻量级的同步机制。在多线程编程中volatile和synchronized都起着举足轻重的作用,没有这两者,...
2020-04-20 22:02:55 1624
原创 干掉面试官1-synchronized底层原理(从Java对象头说到即时编译优化)
要想理解透synchronized,还要从Java对象头说起。要想能直观的观察到内存布局还要借助一些工具。一、两个好用却不被熟知的工具1.1、字节码查看插件(jclasslib Bytecode viewer)常规观看Java类编译后的class文件的字节码较为复杂,需要将java类编译成class文件,再使用javap -verbose ***.class命令才能查看它的字节码。Idea...
2020-03-27 20:33:17 2219 1
原创 HTTP keep-alive和TCP keepalive的区别,你了解吗?
HTTP keep-alive和TCP keepalive的区别文章目录一、简介1.1、TCP协议简介1.2、HTTP协议简介二、TCP keepalive2.1、简介2.2、实验2.3、扩展三、HTTP keep-alive3.1、简介3.2、实验3.2.1、实验一:禁用keep-alive的http请求3.2.2、实验二:启用keep-alive的http请求3.3、扩展四、总结五、彩蛋1、找IP2、http连接中那一端关闭tcp连接HTTP和TCP都是老生常谈的知识点,本文不进行铺开赘述。
2020-09-08 06:55:59 1968 3
原创 浅谈软件和硬件负载均衡(LVS、HAProxy、Nginx、F5)及一次线上问题分析
文章目录一、负载均衡什么是负载均衡负载均衡的优点四层和七层负载均衡常见的负载均衡软硬件二、硬件负载均衡优点缺点三、软件负载均衡LVSHAproxyNginx三大主流软件负载均衡的适用场景:四、一次线上事故分析一、负载均衡什么是负载均衡百度百科对负载均衡的解释:负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网...
2020-01-16 19:44:37 2194
原创 高性能IO模型分析-浅析Select、Poll、Epoll机制(三)
I/O多路复用的三种机制:Select、Poll、Epoll文章目录一、Select机制API简介运行机制Select的缺陷二、Poll机制API简介运行机制Poll的缺陷三、Epoll机制API简介运行机制工作模式Epoll的优点四、Select、Poll、Epoll机制的对比五、Epoll的使用场景本章(第三章)内容其实和第二章内容,都是第一张内容的延伸。第二章内容是第一章内容的延伸,本...
2019-12-05 14:53:14 455
原创 高性能IO模型分析-Reactor模式和Proactor模式(二)
I/O模型的应用:Reactor模式和Proactor模式文章目录一、thread-based architecture(基于线程的架构)二、event-driven architecture(事件驱动模型)2.1 Reactor模式2.1.1 Reactor模式-单线程模式2.1.2 Reactor模式-工作者线程池模式2.1.3 Reactor模式-多线程模式2.2 Proactor模式2....
2019-12-05 14:44:05 892
原创 高性能IO模型分析-I/O模型简介(一)
I/O模型简介文章目录一、基础概念用户空间和内核空间进程切换进程阻塞文件描述符缓存 I/O二、I/O执行的两大阶段三、五大模型及对比Linux的五大I/O模型1、同步阻塞IO(blocking IO)2、同步非阻塞IO(nonblocking IO)3、IO多路复用(IO multiplexing)4、信号驱动IO(signal driven IO)5、异步IO(asynchronous IO)...
2019-12-05 14:16:53 1032
原创 idea中阅读jdk源码,并添加注释
学会在idea(eclipse)中阅读、调试源码,是java程序员必不可少的一项技能。在idea中配完环境后,默认其实也是能够对jdk的源码进行debug调试的。但是无法在源码中添加自己的注释,无法添加自己的理解。如果干瞪眼看的话,可能过段时间,就忘记了。下面就介绍下,如何在jdk源码中为所欲为,像在我们自己的代码中一样写注释、调代码:打开idea,选择Project->File-&...
2019-11-13 10:15:09 11756 18
原创 fastjson低于1.2.60的远程拒绝服务漏洞
Fastjson 叒叕被爆出严重漏洞了漏洞描述重现漏洞1、简单Demo2、应用中重现解决漏洞漏洞描述首先,看一下阿里官方回应,传送门重现漏洞看看Github上1.2.60版本修复漏洞后的测试用例,即可发现造成这一漏洞的死亡字符串 {“a”:"\x下面我们在demo和真实环境中,重现“死亡字符串”的导致的bug:1、简单Demo public static void main(...
2019-09-10 14:15:09 4229
原创 红焖羊肉[火锅]
红焖羊肉步骤准备羊肉一斤(带皮羊后腿最佳),切块儿后用凉水浸泡。头两泡水加料酒去腥,半小时换一次水。浸泡1~3小时,待水不再发红,肉中不再有血丝儿焯水。冷水下锅,可加姜片、料酒,水开后再煮两分钟,撇去浮沫。将肉捞出控水。如果喜欢膻味,可以留下煮肉的沸水,备用。买肉时要掉羊油,或是能煎出油的羊皮(不知道是不是叫这个)。羊皮切碎丁,用油煎,煎至碎丁焦黄,将其捞出,剩下干净的油晾凉,或者再煎一把...
2019-09-07 20:31:05 548
原创 Redis info命令中各个参数的含义
Redis info命令中各个参数的含义Info命令简介ServerClientsMemoryPersistenceStatsReplicationCPUKeyspace代码示例Info命令简介在使用Redis的过程中,可能会遇到很多问题,需要我们去诊断、去观察Redis的健康情况。Redis给我们提供了的 info 命令,可以让我们近距离的接触它,观察它各方面的信息、运行状况。下面让我们看看...
2019-08-15 15:54:33 6234 3
原创 Redis中使用Lua脚本(续)- Linux下Lua-cjson开源库的安装和使用
Redis中使用Lua脚本(续)- Lua-cjson开源库的安装和使用问题原因解决方案在Redis的lua脚本编写中,我们可能会用到json的序列化和反序列化。Json序列化:-- RedisLuaCjsonEncode.lua文件local userName = ARGV[1];local userObject = { name = userName, ...
2019-08-12 15:28:09 5153 4
原创 详解Redis的持久化机制
Redis的持久化机制一、Redis的持久化机制1、RDB快照2.1.1 触发机制1.2、RDB执行流程1.3、RDB的优缺点2、AOF(append only file)日志2.1、开启方式2.2、重写(rewrite)机制2.3、触发机制2.4、AOF的优缺点3、Redis 4.0 混合持久化一、Redis的持久化机制Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须...
2019-08-11 23:07:17 525
原创 Redis中使用Lua脚本(二)之红包雨的抢夺
Redis中使用Lua脚本(二)之红包雨的抢夺一、需求介绍二、红包雨的需求分析及概要设计三、红包雨的Lua脚本设计及模拟演示四、Lua脚本在生产环境的使用一、需求介绍如同前两年的爆款“答题抢红包”的类似需求,当一轮题目答完后会下起红包雨,我们本次分析的也是类似的需求。题目答完前,已初始化本轮次的红包雨批次ID,并将总金额拆分成若干份放入此批次红包。题目答完后,用户可抢红包,每轮次每用户最多抢...
2019-08-10 13:25:46 809
原创 Redis中使用Lua脚本(一)
Redis中使用Lua脚本(一)一、简介二、Redis中Lua的常用命令2.1 EVAL命令2.2 SCRIPT LOAD命令 和 EVALSHA命令2.3 SCRIPT EXISTS 命令2.4 SCRIPT FLUSH 命令2.5 SCRIPT KILL 命令三、Redis执行Lua脚本文件3.1 编写Lua脚本文件3.2 执行Lua脚本文件四、实例:使用Lua控制IP访问频率五、总结参考资...
2019-08-09 19:46:38 4531
原创 性能测试监控TP50、TP99、TP999含义
性能测试监控TP50、TP99、TP999含义首先放一段google到的一段解释:The tp90 is a minimum time under which 90% of requests have been served.tp90 = top percentile 90Imagine you have response times:10s1000s100s2sCalcu...
2019-04-12 15:25:28 21404 3
原创 理解AQS原理一之阅读注释
理解AQS原理一之阅读注释为了深入了解AQS运行原理,先读了AbstractQueuedSynchronizer类中大量的英文注释,并对部分进行翻译,以便今后的深入理解。该篇为AQS原理第一篇,主要通过阅读注释简单了解其功能。具体的源码解析会另开文章分析。此篇注释翻译,也会不断更新。自己学习使用,大神勿喷。/** * Provides a framework for implementin...
2019-02-15 10:15:52 664
原创 hash函数为什么要选择对素数求余?
hash函数为什么要选择对素数求余?问题来源? 引出此问题,是看到一篇有关jdk中HashMap和Hashtable对于hash算法的选择。HashMap中对key求完hash值,在进行数组寻址时,使用的方法是位运算(代替的取模运算)。公式如下: (length - 1) & hash // length为HashMap的容量,是2的n次方 在这里插播一个小知识...
2018-12-20 18:08:01 5740 4
原创 云南特色牛肉火锅
实在忍不住每次回家才能吃一次老爸做的牛肉火锅,今天决定请教厨艺,亲自动手清煮牛肉准备一斤牛肉(双人的量),肋梢带少许肥肉会更香(其实带筋才香)。将牛肉洗净,用清水浸泡2-24小时(越久越好),去血水和肉腥。一盆清水,放入牛肉,冷水下锅。姜拍碎、蒜多瓣、大茴香、草果、肉蔻、小茴香、甘草,放入锅中。大火烧开,小火炖30-50分钟。牛肉快煮好时在放少许盐,否则牛肉容易煮不熟。肉与汤分开贮...
2018-11-23 22:46:50 941
原创 Java知识点之Map(一)
最近刚面试完美团某部门java工程师的岗位,直接挂在一面,教训惨痛。写下此篇博客警示现在的自己,不能继续沉沦。同时也希望能给大家带来一些帮助。 本文从此次美团面试经历出发,着重分析此次面试的重点。但不仅限于此,会将自己理解范围内的相关内容都做一些概述。也不必纠结于哪些是美团问的,哪些不是美团问到的。因为同一个公司,也用不同的面试官,也有不同的风格。最好是以点带面,了解整个知识体系。Map
2018-07-19 15:42:42 573
原创 Mac下sublime text3列模式下插入顺序数字编号
Mac下sublime text3列模式下插入顺序数字编号相信大家在工作工程中会遇到在操作在某段文本时,需要批量操作同一列多行数据时,需要在每行相同的列位置添加类同的内容,煞是费时。接下来我们要介绍多数文档编辑器都有的一个功能:列模式mac的sublime启用列模式很简单 1. 光标移动到需要操作的列位置,按住option键不放,鼠标左键上下移动即可。 2. 选中一段文字,同时...
2018-05-29 17:42:42 7840 2
原创 脱掉Java线程状态的衣服
目录目录一、线程的5种状态二、Thread.State枚举类中的BLOCKED、WAITING、TIMED_WAITING三、并发编程中常用的几个jdk中的api的理解,可能面试尝问哦一、线程的5种状态 众所周知,Java的线程状态有5种,分别对应上图中五种不同颜色,下面对这5种状态及状态间的转化做相应的解释: 1. 初始化状态:新建一个线程对象 2. ...
2018-05-18 18:37:12 800 2
原创 使用net.sf.json-lib引发的org/apache/commons/lang/exception/NestableRuntimeException
首先,放异常,由于堆栈信息过长,截取前半部分异常信息,如下:java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.C...
2018-05-14 13:38:29 1345 4
orderAccess.hpp
2020-04-20
mat_windows64位-2019年8月版.zip
2019-11-08
lua-cjson和LuaJIT.zip
2019-08-12
google protobuf-2.5.0源码包,内含安装步骤
2018-10-29
Mac版官方6.0.10版PostMan
2018-05-29
Mac版KeePass超好用的密码管理软件
2018-05-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人