3 -星星-

尚未进行身份认证

暂无相关描述

等级
博文 75
排名 11w+

ConcurrentHashMap源码分析(1.8)

HashMap是我们日常最常见的一种容器,它以键值对的形式完成对数据的存储,但众所周知,它在高并发的情境下是不安全的。尤其是在jdk1.8之前,rehash的过程中采用头插法转移结点,高并发下,多个线程同时操作一条链表将直接导致闭链,死循环并占满CPU。当然,jdk1.8以来,对HashMap的内部进行了很大的改进,采用数组+链表+红黑树来进行数据的存储。rehash的过...

2019-07-10 11:01:53

Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)

版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/u010349169/article/details/24589193class文件简介及加载Java编译器编译好Java文件之后,产生.class文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内...

2019-06-03 15:19:01

Git使用总结

1.下载代码到本地1.1指定存储文件路径1.运行git-bash.exe2.指定盘符:cdf:work1.2下载代码命令:$gitclone<版本库的网址><本地目录名>版本库的网址:若有用户名、密码,则:http//:用户名@版本库的网址本地目录名:若不填写此属性则用远程代码仓库名为目录名称;如果填写则用填写名称为本地目录名称。...

2019-05-27 10:39:19

初次使用git上传代码到github远程仓库

因为最近在学习自动化测试,所以想要把自己的代码管理起来,于是就研究了github,查阅了很多资料,搞的时候也是一头雾水,第一次上传成功的时候都不知道自己是怎么传上去的,稀里糊涂的,然后又回过头去一步一步看,才知道了整个过程。写下这篇博客是为了自己不知道的时候可以回头来看看,同时也是希望能给和我一样刚刚起步的人带去帮助,如有不正确的地方,还望大家多多指正。一、新建代码库注册好github登录后...

2019-05-24 18:37:14

Java并发之AQS详解

一、概述  谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!  类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。  以下是本文的目录大...

2019-05-17 13:41:21

跨域几种方式

一、什么是跨域url的组成JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。那什么是跨域呢,简单地理解就是因为JavaScript同源策略的限制,a.com域名下的js无法操作b.com或是c.a.com域名下的对象。当协议、子域名、主域名、端口号中任意一个不相同时,都算作不同域。不同域之间相互请求资源,就算作“跨域”。例如:http://www.abc.com/i...

2019-05-15 11:56:14

String.intern()详细分析,JDK1.8

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013366617/article/details/83618361 </div> <linkrel="stylesheet"href="http...

2019-05-13 16:04:42

CompletableFuture基本用法

异步计算 所谓异步调用其实就是实现一个可无需等待被调用函数的返回值而让操作继续运行的方法。在Java语言中,简单的讲就是另启一个线程来完成调用中的部分计算,使调用继续运行或返回,而不需要等待计算结果。但调用者仍需要取线程的计算结果。 JDK5新增了Future接口,用于描述一个异步计算的结果。虽然Future以及相关使用方法提供了异步执行任务的能力,但是对于结果的获取却是很...

2019-05-10 17:14:08

理解CPU负载和CPU使用率

[root@system]#toptop-23:39:41up8days,6:36,2users,loadaverage:0.00,0.01,0.05Tasks:71total,1running,70sleeping,0stopped,0zombie%Cpu(s):0.0us,0.0sy,0.0ni,10...

2019-05-09 14:15:16

分布式缓存Redis之Pipeline(管道)

写在前面  本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning  Redis的pipeline(管道)功能在命令行中没有,但redis是支持pipeline的,而且在各个语言版的client中都有相应的实现。由于网络开销延迟,就算redisserver端有很强的处理能力,也会由于收到的client消息少,而造成吞...

2019-05-09 13:58:31

redis的五大数据类型实现原理

目录 1、对象的类型与编码 ①、type属性 ②、encoding属性和*prt指针 2、字符串对象 3、列表对象 4、哈希对象 5、集合对象 6、有序集合对象 7、五大数据类型的应用场景 8、内存回收和内存共享 ①、内存回收 ②、内存共享 9、对象的空转时长

2019-05-05 21:59:26

MyBatis configuration和mapper xml配置总结

MyBatisconfiguration和mapperxml配置总结说明达到熟练的使用MyBatis快速开发项目的目的,对MyBatisconfiguration和mapperxml配置有个全面和清晰的了解是必不可少的。这里对这两种配置以思维导图的方式进行了总结。我这样做的目的有3个:1,全面了解这两大类配置,快速开发项目2,忘记配置时,可以进行查阅,回忆起相关配置,不用在浪费时间...

2019-04-23 09:53:03

设计模式-代理模式(jdk代理和cglib代理详解)

说起代理模式,相信很多人早已经很理解,但对于我这个菜鸟,理解的可能还是不到位,写一次博客加深印象。什么是代理模式呢?代理模式是常用的Java设计模式,它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类和委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不是真正实现服务,而是通...

2019-04-17 14:39:55

Java Web 项目目录规范

一、项目结构这里和其他项目区别不大,我将模板抽离出来,更容易分析和理解:解释一下:js主要包括extends(引入第三方的js)、module(项目模块自己的js)、lib(引用包,这里也可以继续拆分),module中包含具体的模块中的js。common.js是核心命名空间的js.二、common.js解释一下,Globals作为全局命名空间,各个模块均可以在此命名空间里定...

2019-04-01 21:29:06

详细分析MySQL事务日志(redo log和undo log)

innodb事务日志包括redolog和undolog。redolog是重做日志,提供前滚操作,undolog是回滚日志,提供回滚操作。undolog不是redolog的逆向过程,其实它们都算是用来恢复的日志:1.redolog通常是物理日志,记录的是数据页的物理修改,而不是某一行或某几行修改成怎样怎样,它用来恢复提交后的物理数据页(恢复数据页,且只能恢复到最后一次提交的位置)。...

2019-03-27 17:38:58

MySQL的四种事务隔离级别

mysql>setsessiontransactionisolationlevelserializable;QueryOK,0rowsaffected(0.00sec)mysql>starttransaction;QueryOK,0rowsaffected(0.00sec)mysql>select*fromaccount;+------+--------+---------+|id|name|balance|+------

2019-03-25 22:10:19

使用Curator操作Zookeeper

为了更好的实现Java操作zookeeper服务器,后来出现了Curator框架,非常的强大,目前已经是Apache的顶级项目,里面提供了更多丰富的操作,例如session超时重连、主从选举、分布式计数器、分布式锁等等适用于各种复杂的zookeeper场景的API封装。(zookeeper文章所需的jar包)Curator所需的maven依赖:<dependency>...

2019-03-25 18:10:53

Linear hashing 线性哈希表

Section1:问题描述最近在阅读分布式数据库的相关资料,资料中提到分布式数据库中需要解决大数据如何高效存储的问题。分布式或并行数据存储数据结构的设计:(1)需要具有良好的扩展性(scalability),能够支持大规模数据存储(2)不允许在不同数据节点上产生数据分布不均衡的问题,即避免产生“hotspotnodes”.(3)在存储数据增加或者缩减的情况下能够动态...

2019-03-15 16:03:46

字符编码ANSI和ASCII区别、Unicode和UTF-8区别

今天看了一个说法,说是入坑windows程序开发,必先掌握文字的编码和字符集知识。本博客就整理下信息存储和字符编码的相关知识。一.位:计算机存储信息的最小单位,称之为位(bit),音译比特,二进制的一个“0”或一个“1”叫一位。二.字节字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位,8个二进制位组成1个字节。在ASCII码中,一个标准英文字...

2019-03-14 14:42:45

variable-precision SWAR算法“计算汉明重量”

统计一个位数组中非0位的数量,数学上称作:”HanmmingWeight“,汉明重量SWAR算法计算汉明重量C实现是这样的//计算32位二进制的汉明重量int32_tswar(int32_ti){i=(i&0x55555555)+((i>>1)&0x55555555);i=(i&0x33...

2019-03-07 15:54:03
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!