自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (2)
  • 收藏
  • 关注

原创 0拷貝

引言https://blog.csdn.net/u013018618/article/details/80146617传统的 Linux 操作系统的标准 I/O 接口是基于数据拷贝操作的,即 I/O 操作会导致数据在操作系统内核地址空间的缓冲区和应用程序地址空间定义的缓冲区之间进行传输。这样做最大的好处是可以减少磁盘 I/O 的操作,因为如果所请求的数据已经存放在操作系统的高速缓冲存储器中,那么就不需要再进行实际的物理磁盘 I/O 操作。但是数据传输过程中的数据拷贝操作却导致了极大的 CPU 开销

2020-07-26 14:12:17 186

原创 面试和跳槽

1. tcp no delay 参数(tcp调优?)2. 四次挥手,以及客户端和server端对应的状态3. boss group 多个线程是怎么工作的4. nio和epoll5. serverSocket accept 是线程安全的吗

2020-07-23 18:45:03 240

原创 final static 关键字 初始化

类的加载1. java里,类型的加载、连接、初始化过程都是在程序运行期间完成的。这个和那些在编译时需要进行连接工作的语言不太相同。2. 被final static 修饰的常量,会在编译期把结果放入常量池。所以final static a =123,在准备阶段就会赋值为123. 因为在编译的时候就已经把123的值初始化完了。3. 通过子类来引用父类中定义的静态字段,只会触发父类的初始化,而不会触发子类的初始化,至于是否要触发子类的加载和验证,在虚拟机规范中也没有明确定义。类变量也叫静态变.

2020-07-15 21:50:25 281

原创 单例标准写法 & 指令重排

class Singleton{ private volatile static Singleton singleton; private Singleton(){} public static Singleton getInstance(){ if(singleton == null){ // 1 synchronized(Singleton.class){ .

2020-07-15 20:52:19 451

原创 java空对象占用的内存大小

一. 对象的内存布局HotSpot 虚拟机中。对象在内存中存储的布局能够分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。二. 对象头JVM 对象头一般占用两个机器码,在 32-bit JVM 上占用 64bit, 在 64-bit JVM 上占用 128bit 即 8+8=16 bytes(开启指针压缩后占用 4+8=12 bytes)64位机器上。数组对象的对象头占用 24 bytes,启用压缩之后占用 16 bytes。之所.

2020-07-14 13:50:45 1901

原创 交易系统系列文章

https://segmentfault.com/a/1190000012541958https://www.jqhtml.com/55976.htmlhttps://developer.aliyun.com/article/743090https://github.com/alibaba/COLA

2020-07-07 17:20:37 199

原创 前序遍历

轉自https://www.jianshu.com/p/1c50b23fcc301.前序遍历图1对于当前节点,先输出该节点,然后输出他的左孩子,最后输出他的右孩子。以上图为例,递归的过程如下:(1):输出 1,接着左孩子;(2):输出 2,接着左孩子;(3):输出 4,左孩子为空,再接着右孩子;(4):输出 6,左孩子为空,再接着右孩子;(5):输出 7,左右孩子都为空,此时 2 的左子树全部输出,2 的右子树为空,此时 1 的左子树全部输出,接着 1 的右子树;(6):...

2020-07-04 23:27:28 6403 1

原创 一些工作原則

2020-07-04 17:54:18 84

原创 一些生活的原则

2020-07-03 17:27:51 111

原创 BlockingQueue

https://blog.csdn.net/wei_ya_wen/article/details/19344939在java多线程操作中, BlockingQueue<E> 常用的一种方法之一。在看jdk内部尤其是一些多线程,大量使用了blockinkQueue 来做的。借用jdk api解释下:BlockingQueue 方法以四种形式出现,对于不能立即满足但可能在将来某一时刻可以满足的操作,这四种形式的处理方式不同:第一种是抛出一个异常,第二种是返回一个特殊值(null 或 f.

2020-07-01 16:01:47 148

原创 全网把Map中的hash()分析的最透彻的文章,别无二家。

轉自:http://www.hollischuang.com/archives/2091你知道HashMap中hash方法的具体实现吗?你知道HashTable、ConcurrentHashMap中hash方法的实现以及原因吗?你知道为什么要这么实现吗?你知道为什么JDK 7和JDK 8中hash方法实现的不同以及区别吗?如果你不能很好的回答这些问题,那么你需要好好看看这篇文章。文中涉及到大量代码和计算机底层原理知识。绝对的干货满满。整个互联网,把hash()分析的如此透彻的,别无二家。哈希Ha

2020-06-28 22:05:58 166

原创 为什么HashMap的默认负载因子设置成0.75,HashTable, ConcurrentHashMapJDK1.8

轉自:http://hollischuang.gitee.io/tobetopjavaer/#/basics/java-basic/hashmap-default-loadfactor在Java基础中,集合类是很关键的一块知识点,也是日常开发的时候经常会用到的。比如List、Map这些在代码中也是很常见的。个人认为,关于HashMap的实现,JDK的工程师其实是做了很多优化的,要说所有的JDK源码中,哪个类埋的彩蛋最多,那我想HashMap至少可以排前五。也正是因为如此,很多细节都容易被忽视,.

2020-06-28 22:04:57 1839

原创 JVM推荐阅读

https://hllvm-group.iteye.com/

2020-06-22 17:20:35 113

原创 【转】Java Hotspot G1 GC的一些关键技术

https://tech.meituan.com/2016/09/23/g1.html前言G1 GC,全称Garbage-First Garbage Collector,通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推出,相信熟悉JVM的同学们都不会对它感到陌生。在JDK 9中,G1被提议设置为默认垃圾收集器(JEP 248)。在官网中,是这样描述G1的: > The Garbage-First (G1) collecto.

2020-06-22 16:54:49 343

原创 FullGC and Major GC区别

Major GC is cleaning the Tenured space. Full GC is cleaning the entire Heap – both Young and Tenured spaces.This leads us to the point where instead of worrying whether the GC is called Major or Full GC, you should focus to finding out whether the GC at

2020-06-15 14:33:12 842

原创 JVM 晋升 & FullGC 触发

JVM 晋升1.动态年龄判断Survivor区的对象年龄从小到大进行累加,当累加到 X 年龄时的总和大于50%(可以使用-XX:TargetSurvivorRatio=? 来设置保留多少空闲空间,默认值是50),那么比X大的都会晋升到老年代。(如果在Survivor空间中相同年龄所有对象大小的总和大于Survivor空间的一半(动态年龄判断),年龄大于或等于该年龄的对象就可以直接进入老年代,无须等到MaxTenuringThreshold中要求的年龄)https://blog.csdn.ne..

2020-06-11 09:51:45 546

原创 mysql

MySQL中MyISAM和InnoDB的索引方式以及区别与选择https://blog.csdn.net/LJFPHP/article/details/80029968mysql的查询需要遍历几次B+树,理论上需要几次磁盘I/O?https://blog.csdn.net/LJFPHP/article/details/97133701文章目录一、前言二、遍历B+树的次数三、聚集索引和非聚集索引执行一次sql的io次数四、引申问题五、总结一、前言这个问题是博主去...

2020-06-10 11:20:13 267

转载 Hashmap

(1)美团面试题:Hashmap的结构,1.7和1.8有哪些区别,史上最深入的分析HashMap, ConcurrentHashMap 原理及源码,一次性讲清楚!JDK1.7的时候使用的是数组+ 单链表的数据结构。JDK1.8及之后时,使用的是数组+链表+红黑树的数据结构。注:当链表的深度达到8的时候,也就是默认阈值,就会自动扩容把链表转成红黑树的数据结构,把时间复杂度从O(n)变成O(nlogN)提高了效率...

2020-06-07 21:44:31 166

转载 MySQL中varchar最大长度是多少?

MySQL中varchar最大长度是多少?一. varchar存储规则:4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节二. varchar和char 的区别:...

2020-05-07 23:41:03 2368

转载 BIO、NIO和AIO,同步,异步 和 阻塞,非阻塞之间的区别

阻塞、非阻塞阻塞与非阻塞描述的是调用者的如A调用B:如果是阻塞,A在发出调用后,要一直等待,等着B返回结果。如果是非阻塞,A在发出调用后,不需要等待,可以去做自己的事情。同步,异步 和 阻塞,非阻塞之间的区别同步、异步,是描述被调用方的。阻塞,非阻塞,是描述调用方的。同步不一定阻塞,异步也不一定非阻塞。没有必然关系。举个简单的例子,老张烧水。 1 老张把水壶放到...

2020-04-28 23:09:03 471

原创 可用性时间速算对应

https://mp.weixin.qq.com/s/pWHCieOwAdCrz8cauduWlQ

2019-11-19 09:01:56 2434

原创 InnoDB的行锁坑

InnoDB的行锁是实现在索引上的,而不是锁在物理行记录上。潜台词是,如果访问没有命中索引,也无法使用行锁,将要退化为表锁。画外音:Oracle的行锁实现机制不同。例如:t_user(uid, uname, age, sex) innodb; uid PK 无其他索引 update t_user set age=10 where uid=1;命中索引,行锁。u...

2019-11-19 08:58:34 254

原创 超赞,InnoDB调试死锁的方法!

超赞,InnoDB调试死锁的方法!原创:58沈剑架构师之路2018-09-05近期写了不少InnoDB锁相关的文章,不少小伙伴问,如何在MySQL终端模拟并发事务,如何复现之前文章中的案例。今天,咱们一起动起手来,模拟并发事务的互斥与死锁。【事前准备】 安装MySQL服务端 安装MySQL客户端 安装能够模拟多个并发事务的终端 画外音:楼主使用...

2019-11-18 18:10:00 106

原创 别废话,各种SQL到底加了什么锁?

别废话,各种SQL到底加了什么锁?原创:58沈剑架构师之路2018-08-31这个月花了一些功夫写InnoDB:并发控制,MVCC,索引,锁...有朋友留言:你TM讲了这么多,锁分了这么多类型,又和事务隔离级别相关,又和索引相关,究竟能不能直接告诉我,一个SQL到底加了什么锁!?我竟无言以对。好吧,做过简单梳理之后,今天尝试着直接回答,尽量做到不重不漏...

2019-11-18 18:08:48 134

原创 4种事务的隔离级别,InnoDB如何巧妙实现?

4种事务的隔离级别,InnoDB如何巧妙实现?原创:58沈剑架构师之路2018-08-29事务ACID特性,其中I代表隔离性(Isolation)。什么是事务的隔离性?隔离性是指,多个用户的并发事务访问同一个数据库时,一个用户的事务不应该被其他用户的事务干扰,多个并发事务之间要相互隔离。一个事务怎么会干扰其他事务呢?咱们举例子来说明,假设有InnoDB表:...

2019-11-18 18:08:08 254

原创 InnoDB,select为啥会阻塞insert?

InnoDB,select为啥会阻塞insert?原创:58沈剑架构师之路2018-08-22MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。但是,如《InnoDB,5项最佳实践》所述,如果查询没有命中索引,也将退化为表锁。InnoDB的细粒度锁,是实现在索引记录上的。一,InnoDB的索引InnoDB的索引有两类索引,聚集索引(Clu...

2019-11-18 18:07:38 242 1

原创 InnoDB并发插入,居然使用意向锁?

InnoDB并发插入,居然使用意向锁?原创:58沈剑架构师之路2018-08-19《插入InnoDB自增列,居然是表级别锁?》介绍了InnoDB所使用的七种锁中的一种,自增锁。今天,将要介绍InnoDB另外三种:共享/排他锁,意向锁,插入意向锁。一,共享/排它锁(Shared and Exclusive Locks)《InnoDB并发为何这么高?》一文介绍了通...

2019-11-18 18:07:09 178

原创 插入InnoDB自增列,居然是表锁?

插入InnoDB自增列,居然是表锁?原创:58沈剑架构师之路2018-08-18《挖坑,InnoDB的七种锁》初步说明了InnoDB中,会使用七种不同类型的锁,今天就介绍其中的第一种,自增锁(Auto-inc Locks)。一,案例说明MySQL,InnoDB,默认的隔离级别(RR),假设有数据表:t(idAUTO_INCREMENT, name);数据...

2019-11-18 18:06:38 469

原创 InnoDB,快照读,在RR和RC下有何差异?

InnoDB,快照读,在RR和RC下有何差异?原创:58沈剑架构师之路2018-09-03昨天挖了一个坑《InnoDB的快照读,到底和什么相关?》,今天来填坑。为了保证文章知识体系的完整性,先简单解释下快照读,读提交,可重复读。快照读(Snapshot Read)MySQL数据库,InnoDB存储引擎,为了提高并发,使用MVCC机制,在并发事务时,通过读取数据...

2019-11-18 18:06:02 220

原创 InnoDB并发如此高,原因竟然在这?

InnoDB并发如此高,原因竟然在这?原创:58沈剑架构师之路2018-08-13《InnoDB行锁,如何锁住一条不存在的记录?》埋了一个坑,没想到评论反响剧烈,大家都希望深挖下去。原计划写写InnoDB的锁结束这个case,既然呼声这么高,干脆全盘系统性的写写InnoDB的并发控制,锁,事务模型好了。体系相对宏大,一篇肯定写不完,容我娓娓道来,通俗地说清楚来龙去脉。...

2019-11-18 18:05:23 89

原创 1分钟了解MyISAM与InnoDB的索引差异

1分钟了解MyISAM与InnoDB的索引差异原创:58沈剑架构师之路2018-08-27《数据库索引,到底是什么做的?》介绍了B+树,它是一种非常适合用来做数据库索引的数据结构:(1)很适合磁盘存储,能够充分利用局部性原理,磁盘预读;(2)很低的树高度,能够存储大量数据;(3)索引本身占用的内存很小;(4)能够很好的支持单点查询,范围查询,有序性查询;数据...

2019-11-18 18:04:35 98

原创 数据库索引,到底是什么做的?

数据库索引,到底是什么做的?原创:58沈剑架构师之路2018-08-24近期写数据库,不少朋友留言问MySQL索引底层的实现,今天简单聊一聊,少讲“是怎么样”,更多说说“为什么设计成这样”。问题1. 数据库为什么要设计索引?图书馆存了1000W本图书,要从中找到《架构师之路》,一本本查,要查到什么时候去?于是,图书管理员设计了一套规则:(1)一楼放历史类,...

2019-11-18 18:03:49 83

原创 三范式

第一范式(1NF):  列1唯一确定列2, 列3, 列4, ...,即列2, 列3, 列4, ...不能再分裂出其它列。  假设有关系模式列1: 订单名; 列2: 商品。一个订单下可以有多个商品,即列2: 商品可以分裂成商品A, 商品B, 商品C, ...,所以列1: 订单名; 列2: 商品这样的关系模式不符合第一范式。第二范式(2NF):  满足2NF的前提是必须满足1NF。...

2019-10-06 17:55:39 162

原创 MYSQL事务和隔离级别

https://zhuanlan.zhihu.com/p/70701037一、事务事务是由一组SQL语句组成的逻辑处理单元,是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。事务具有以下4个属性,通常简称为事务的ACID属性:原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。...

2019-10-06 17:30:51 94

原创 Zookeeper工作原理详解

https://www.2cto.com/kf/201808/768816.html1、Zookeeper的角色   领导者(leader),负责进行投票的发起和决议,更新系统状态  学习者(learner),包括跟随者(follower)和观察者(observer),follower用于接受客户端请求并想客户端返回结果,在选主过程中参与投票   Observer可以接受客户端连接,将...

2019-10-06 13:53:56 101

原创 分析Zookeeper的一致性原理

https://blog.51cto.com/welcomeweb/2103292?utm_source=oschina-app zookeeper(简称zk),顾名思义,为动物园管理员的意思,动物对应服务节点,zk是这些节点的管理者。在分布式场景中,zk的应用非常广泛,如:数据发布/订阅、命名服务、配置中心、分布式锁、集群管理、选主与服务发现等等。这不仅得益于zk类文件系统的数据...

2019-10-06 13:46:24 146

原创 sed 命令查找和替换字符串的 16 个示例

文章转载自公众号Linux中国,作者 译者/Asche编译:linux中国-Asche910,作者:Magesh Maruthamuthu当你在使用文本文件时,很可能需要查找和替换文件中的字符串。sed命令主要用于替换一个文件中的文本。在 Linux 中这可以通过使用sed命令和awk命令来完成。在本教程中,我们将告诉你使用sed命令如何做到这一点,然后讨论讨...

2019-09-24 00:02:14 1949

原创 数据库设计规约

https://www.jianshu.com/p/7e60dbd591381、引言数据库设计过程中表、字段等的命名规范也算是设计规范的一部分,不过设计规范更多的是为了确保数据库设计的合理性、为了项目最终的协调稳定性,而命名规范则更多的是为了确保设计的正式和统一。公正的讲,数据库中表字段等等以什么样的方式命名、取具体什么名字,并不会直接影响到项目的稳定性,不是说叫黑猫项目就是正常的,叫白猫...

2019-08-11 15:29:30 599

原创 业务

https://mp.weixin.qq.com/s/o4CfgIcPibG_QxrsZ4x7sA

2019-08-08 09:18:37 119

原创 时序图,流程图

时序图是交互图的一种。时序图和交互图都描述了软件的动态特征,是软件处理业务逻辑能力的体现。流程图面向业务逻辑,不涉及软件内部的组件和结构,不涉及业务逻辑处理的参与者,只考虑业务处理的步骤及流程。时序图,通过业务处理的参与者的顺序协作来展示软件的不同组件如何协作来完成业务。描述了软件的组成者如何协作来完成业务逻辑。涉及到了软件的组成和软件的功能(能力)。h...

2019-08-04 15:25:55 2902

Java Web Service实战

Java Web Service实战,pdf 高清,有书签。。。

2016-02-29

jdk 1.6帮助文档API

jdk 1.6 帮助文档 api jdk 1.6 帮助文档 apijdk 1.6 帮助文档 api

2011-11-12

空空如也

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

TA关注的人

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