7 Schele

尚未进行身份认证

Stay Hungry,Stay Foolish

等级
TA的排名 4w+

Log4j2写日志的艺术

Log4j2中的组件从配置开始API基本使用小细节写日志的原理主要流程同步写异步写顺便说一下ArrayBlockingQueuenotFull 与 notEmpty异步写是怎么玩的巧妙的异步写设计ByteBuffer与RandomAccessFileGarbage-free避免创建多余对象异步Logger性能写在最后 在程序的世界里,抽象让人像是雾里看花。抽象让程

2017-06-26 21:01:53

Java TPS实现

写在前面TPS即每秒查询事物,可以用于测试一个方法、工具或者系统的性能。本文采用Java并发包中的工具实现了一个工具TPS性能测试。主要是测试OKHttp库来执行Http请求的性能。测试代码用到了Java了线程池ExecuterService,CountDownLatch, CyclicBarrier, 原子类,volatile关键词等。可算是对Java并发组件的组合使用。下面直接贴出源码,仅供参考

2016-07-09 18:19:40

Thinking in Netty

Thinking in NettyBy 谢乐Thinking in Netty写在前面Netty快速开始Netty的架构Netty的线程模型1 服务端线程模型1 客户端线程模型Netty的API设计Netty的通信过程Netty中的设计模式最后1. 写在前面Netty的词根为net, 那么我们就已经猜想到它与网络有关。官方对Netty的解释为: Netty是一种异步的基于

2016-06-19 19:41:14

Java IO模型&NIO

Java IO模型&NIOJava IO模型NIO楔子概述网络服务经典的服务设计经典的SocketServer循环阻塞可伸缩目标分而治之事件驱动设计背景知识AWT 事件Reactor 模式Reactor基础模式Java NIO 支持ChannelsBuffersSelectorsSelectionKeysReactor 模式实践第一步初始化第二步循环分发第三

2016-06-01 20:49:00

Thinking in Spring

Thinking in SpringThinking in Spring写在前面的话Spring是怎么载入XML配置的Spring读取配置文件并设置到占位符中的过程是怎样的Spring的依赖注入过程是怎样的ComponentService这些注解是怎么执行的Spring中的设计模式有哪些怎么运用的Spring是怎么实现开闭原则的写在前面的话该怎么开始呢。Spring从出现到如今已经过

2016-05-07 23:04:52

aqs

Java同步框架(译)前言本文翻译自Doug Lea的论文,编号为NY 13126,旨在为了补充说明AQS的原理与设计实现。如需传播或另作刊摘,请尊重原作者。 文章主要探索AQS的原理与设计决策,因此删减了性能测试等末尾几章节。翻译属于再次加工,很多理解不当或转意有误,还请参见原文。 –Schelor摘要在J2SE 1.5 java.util.concurrent包中的大多数同步组件(锁、内存屏

2016-03-26 18:17:21

走近AbstractQueuedSynchronizer

一、开始Java并发包中的同步器是很多并发组件的基础,如各种Lock,ConcurrentHashMap中的Segment,阻塞队列,CountDownLatch等。按我们一贯的风格,让我们直接走近设计者对其的诠释。在java.util.concurrent.locks包中, AbstractQueuedSynchronizer直接继承自AbstractOwnableSynchroni

2016-03-13 00:03:09

Java ThreadLocal原理与源码

1.  开始Java中的ThreadLocal类很有意思,它提供了一种线程中的局部变量机制。这种变量与一般的变量不同,一般的变量是在多线程环境中(通过get或set方法)拷贝一份副本,而threadlocal变量是独立的线程内部拷贝。一般,ThreadLocal的实例常常用作private static类型,用于关联一个线程和线程上下文。ThreadLocal内部提供了一个ThreadLoca

2016-02-28 22:08:52

Java ThreadPoolExecutor线程池原理及源码分析

一、源码分析(基于JDK1.6)ThreadExecutorPool是使用最多的线程池组件,了解它的原始资料最好是从从设计者(Doug Lea)的口中知道它的来龙去脉。在Jdk1.6中,ThreadPoolExecutor直接继承了AbstractExecutorService,并层级实现了ExecutorService和Executor接口。1.ExecutorExecutor是

2016-02-21 17:27:01

Golang学习笔记:语言规范二

类型转换形式为 T(x), T是一种类型,x是目标类型表达式。示例*Point(p) // same as *(Point(p))(*Point)(p) // p is converted to *Point<-chan int(c) // same as <-(chan int(c))(<-chan int)(c) // c is converted to

2015-10-17 18:27:09

Golang学习笔记:语言规范之声明与作用域

类型声明包括:常量、自定义类型、变量、函数、标签、还有包声明。 程序中的标识符都必须声明。块、包、文件中的标识符不能重复。Declaration = ConstDecl | TypeDecl | VarDecl .TopLevelDecl = Declaration | FunctionDecl | MethodDecl .标签作用域标签是在标签语句中使用,常用在break、continu

2015-10-17 15:22:19

Golang学习笔记:语言规范之类型(续)

类型(续)指针类型指针类型表示所有给定类型的指针变量,也称为基础类型的指针,默认未初始化的指针类型值为nil。PointerType = "*" BaseType .BaseType = Type .*Point*[4]int函数类型函数类型表示拥有相同参数和返回值类型的函数,未初始化的函数类型变量的值为nil,定义如下FunctionType = "func" Signature .

2015-10-17 11:45:33

Golang学习笔记:语言规范之词汇元素和类型

引言Golang参考手册,更多内容请参考http://golang.org 语言规范参考自https://golang.org/ref/spec词汇元素注释行注释: // comment content 段注释:/* comment content */符号符号有4类:标识符、关键字、操作符和分隔符、字面常量分号golang中,分号可省略标识符标识符即程序中的变量和类型,有一个或多个字母或数

2015-10-11 15:55:13

SpringMVC原理探索,从DispatcherServlet开始

概述SpringMVC框架围绕着DispatcherServlet而设计,实现Web请求到处理器的转发,支持配置URL到处理器的映射,视图的解析,国际化和时区,主题解析还有文件上传功能。采用基于@Controller和@RequestMaping注解作为默认处理器,提供非常灵活的处理方法。随着Spring3.0的发布,@Controller的机制还允许通过@PathVariable注解来创建REFT

2015-10-03 17:45:12

Java集合工具2--Arrays

续上文中,讨论了集合中常用的工具库和工具类。事实上,集合的底层实现已然或为数组或链表,因此还有必要探寻一下Java中的Arrays 类。Arraysjavadoc对其的解释为: 若没有特别注明,传入的特定的数组引用为null时,类中的所有方法皆会抛NullPointerException。 类中的实现方法有一个简要的文档描述,这些描述应该是一种注意事项,而不是一种规范,这些实现可有其他算法

2015-10-03 11:45:38

Java集合工具

诚然,在Java世界中,用的非常广泛的数据结构乃集合也,由Collection及Map衍合而来的多功能结构的集合类和接口,让我们随行随用。然而,工欲善其事,必先利其器,个人的工具箱中,必然应该收藏很多集合工具利器。一、Collectionsjavadoc对其有如下解释 此类包含了许多特有的静态方法,用于操作集合或返回集合实例,同时还提供许多处理集合和包装器的多态实现,用于获取一些拥有特定功能的集

2015-10-01 15:13:54

Java 反射概述

反射的使用虚拟机中的应用程序可以通过反射来检查或修改在运行时的行为,这是一种相对高级的功能,开发者应该有很深的语言基础才可以使用它。虽心有言训,但反射亦是一种很有用的技术,它能实现的功能,其他方式只能远观而不可亵玩焉。 可扩展特性应用程序可以通过使用外部类或自定义的类的完全限定名称即完整的类明来创建对象实例。 类浏览器和可视化开发环境类浏览工具可以查看类的所有成员属性,

2015-09-10 16:21:07

SublimeText, Eclipse, Liteide--Golang开发环境搭建(Windows版)

Go SDK 安装访问golang的官方网站,http://golang.org, 点击Download Go按钮或者直接访问, http://golang.org/dl, 进入下载页面 下载msi安装版,或者源码版即可(须通过源码安装),建议使用安装版,直接快意Go的江湖。 安装时,可使用默认的路径,最后会生成在c:/go目录下,同时在系统环境变量中已然添加好c:/go/bin。

2015-09-04 14:48:32

Java Lof4J日志

从两段代码开始第一段代码import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.log4j.BasicConfigurator;public class HelloLog4J { private static Log logger = Log

2015-07-25 17:50:56

FastJson-JSONField

学习摘要自 https://github.com/alibaba/fastjson http://blog.csdn.net/zimo2013/article/details/10474107Maven依赖 仓库地址 http://repo1.maven.org/maven2/com/alibaba/fastjson/ 选择版本、建议使用最新版本<dependency> <grou

2015-07-21 22:54:40

查看更多

勋章 我的勋章
    暂无奖章