自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木村的博客

bug跟蚊子的相似之处: 1、不知道藏在哪里。 2、不知道有多少。 3、总是在你即将睡觉休息的时候出现。

  • 博客(13)
  • 收藏
  • 关注

原创 Java集合--List源码

Java集合–List源码ArrayList完整源码:public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { //实现Serializable接口,生成...

2019-01-24 18:53:49 235

转载 Java集合--List

Java集合–ListJava集合作为一个Developer,Java集合类是我们在工作中运用最多的、最频繁的类。相比于数组(Array)来说,集合类的长度可变,更加适合于现代开发需求;Java集合就像一个容器,可以存储任何类型的数据,也可以结合泛型来存储具体的类型对象。在程序运行时,Java集合可以动态的进行扩展,随着元素的增加而扩大。在Java中,集合类通常存在于java.util包中。...

2019-01-24 17:53:51 199

转载 Disruptor框架学习(2)--为啥这么快

Disruptor框架学习(2)–为啥这么快在上一篇中,笔者阐述了Disruptor的代码实现和数据结构。在说到,Disruptor为什么性能那么高的时候,提及了几个概念:CAS、缓存行、伪共享。本篇,就对此进行一个详细的介绍。1.1 CPU缓存在现代计算机当中,CPU是大脑,最终都是由它来执行所有的运算。而内存(RAM)则是血液,存放着运行的数据;但是,由于CPU和内存之间的工作频率不同,...

2019-01-23 19:22:09 256

转载 Java对象大小内幕浅析

Java对象大小内幕浅析Java对象的内存布局:对象头(Header),实例数据(Instance Data)和对齐填充(Padding)。虚拟机的对象头包括两部分信息,第一部分用于存储对象自身的运行时数据,如hashCode、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。这部分数据的长度在32位和64位的虚拟机(未开启指针压缩)中分别为4B和8B,官方称之为”Mark ...

2019-01-22 16:56:52 211

转载 Disruptor框架学习(1)--怎么实现

Disruptor框架学习(1)–怎么实现1 Disruptor学习在上一篇文章中,笔者提到了log4j2中的异步logger。通过测试数据来看,在使用异步logger后,打印日志的时间明显缩短,系统响应时间得到了巨大的提升。那么,disruptor究竟是什么,为什么它可以提升系统的性能?1.1 Disruptor简介Disruptor是一个开源框架,研发的初衷是为了解决高并发下列队锁的...

2019-01-18 17:19:54 268

转载 日志之log4j2

日志之log4j21.1 简介log4j2,一个日志的实现框架,是log4j的升级版本,于2014年7月正式亮相。与第一代log4j不同,log4j2完全重写了log4j的日志实现,并不是在原有基础上进行的升级,解决了log4j中的一些问题,例如:多线程下性能低下、api不支持占位符{}的使用、配置文件不能自动重新加载等。为什么说log4j在多线程情况下性能低下呢?主要是synchroniz...

2019-01-18 16:44:53 686

转载 Java日志框架性能比较

Java日志框架性能比较1 Java日志框架性能比较前面几章,笔者分别介绍了log4j,logback,log4j2三大日志实现框架。接下来,就用具体的数据比较下,哪个日志框架的性能更好!单线程:外循环100次,内循环100000次;多线程:开启100个线程,每个线程执行100000次;1.1 测试代码:(1)log4j:public class log4jDemo { ...

2019-01-18 16:26:44 3266

转载 日志之logback

日志之logback1.1 简介师出同门,与log4j一样,logback也是由Ceki Gülcü开发的开源日志组件,可以说是log4j的改进版;在现如今的项目中,logback的出现次数越来越多,是目前主流首选的日志记录工具。1.2 logback结构logback分成三个模块:logback-core,logback- classic,logback-access。logba...

2019-01-18 16:01:02 228

转载 日志之slf4j

日志之slf4j简介与commons-logging相同,slf4j也是一个通用的日志接口,在程序中与其他日志框架结合使用,并对外提供服务。Simple Logging Facade for Java简称 slf4j,Java简单日志门面系统。在我们的代码中,不需要显式指定具体日志框架(例如:java.util.logging、logback、log4j),而是使用slf4j的API来记录日...

2019-01-18 15:25:15 536

转载 日志之log4j

日志之log4j1.1 简介Log4j是一个由Java编写可靠、灵活的日志框架,是Apache旗下的一个开源项目;现如今,Log4j已经被移植到了C、C++、Python等语言中,服务更多的Developer;使用Log4j,我们更加方便的记录了日志信息,它不但能控制日志输出的目的地,也能控制日志输出的内容格式;通过定义不同的日志级别,可以更加精确的控制日志的生成过程,从而达到我们应用的需求...

2019-01-16 19:28:13 288

转载 日志之commons-logging

日志之commons-loggingJava日志系统学习作为一名Java开发者,日志是我们工作中经常接触到的一项技术。对于Web应用而言,日志的重要性不言而喻,是必不可少的一部分;日志提供了丰富的记录功能,例如程序运行时的错误信息,描述信息,状态信息和执行时间信息等。在实际生产环境中,日志是查找问题的重要来源,良好的日志格式和记录可以帮助Developer快速定位到错误的根源,找到问题的原因...

2019-01-16 18:57:12 2498

转载 Java泛型的使用

Java泛型插除和使用1. 什么是泛型?泛型,即“参数化类型”,就跟在方法或构造函数中普通的参数一样,当一个方法被调用时,实参替换形参,方法体被执行。当一个泛型声明被调用,实际类型参数取代形式类型参数。2. 为什么需要泛型?对于Java开发者来说,集合是泛型运用最多的地方,例如:List、Map<String,Integer>;试想一下,如若没有泛型泛型,当我们对集合进行遍历...

2019-01-16 16:31:29 453

原创 Java-Type

Java-TypeType是Java 编程语言中所有类型的公共高级接口(官方解释),也就是Java中所有类型的“爹”;其中,“所有类型”的描述尤为值得关注。它并不是我们平常工作中经常使用的 int、String、List、Map等数据类型,而是从Java语言角度来说,对基本类型、引用类型向上的抽象;Type体系中类型的包括:原始类型(Class)、参数化类型(ParameterizedType...

2019-01-14 15:49:07 196

空空如也

空空如也

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

TA关注的人

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