自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Code-lover's Learning Notes

Keep hungry,Keep foolish

  • 博客(81)
  • 资源 (97)
  • 收藏
  • 关注

转载 性能测试

性能测试是一件看起来不简单,操作起来确更困难的事情,我认为,每认真做一次性能测试,一定会有不同收获,而每次性能测试暴露的问题,现象都不是仅仅涉及Java,tomcat这么简单,简单说就是光会写代码是无法做好性能测试的。那么,就趁着这次性能测试的机会,重新梳理下对linux,网络IO等基本功的认识已经就性能瓶颈的定位分享下自己的心得。背景:本次性能测试的目的是测试使用公司内部RPC框架开发的一套接口的

2015-04-30 22:24:59 699

转载 java Timer与TimerTask的真正原理&使用介绍

其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来实现,例如这样:Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { System.out.println("a

2015-04-30 15:00:15 738

转载 java 常用的jar包总结

commons-io.jar:可以看成是java.io的扩展, 用来帮助进行IO功能开发.它包含三个主要的领域:Utility classes-提供一些静态方法来完成公共任务.Filters-提供文件过滤器的各种实现.Streams-提供实用的Stream,reader与writer实现.commons-beanutils.jar:提供对Java 反射和自省API的包装, 主要提供了对于 JavaB

2015-04-30 01:16:58 3081

转载 Memory Analyzer 分析内存溢出详解

前言在平时开发、测试过程中、甚至是生产环境中,有时会遇到OutOfMemoryError,Java堆溢出了,这表明程序有严重的问题。我们需要找造成OutOfMemoryError原因。一般有两种情况:1、内存泄露,对象已经死了,无法通过垃圾收集器进行自动回收,通过找出泄露的代码位置和原因,才好确定解决方案;2、内存溢出,内存中的对象都还必须存活着,这说明Java堆分配空间不足,

2015-04-30 00:38:43 2972

转载 java 内存溢出分析方法

工具安装Memory Analyse Tools(MAT) 工具, 可以直接在eclipse中安装其相应的插件,安装方法可以参考另一篇eclipse插件汇总不会用的可以参考一下这个帖子使用 Eclipse Memory Analyzer 进行堆转储文件分析一些Java内存参数设置-vmargs:  说明后面是VM的参数,所以后面的其实都是JVM的参数了-Xms2

2015-04-30 00:12:30 801

转载 java Timer和TimeTask简介

Timer是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。import java.util.TimerTask;public class MyTask extends TimerTask{ private int id

2015-04-29 23:05:20 732

转载 mac 工具汇总

使用Mac大概两年时间,之前用着公司配的一台27寸的iMac,无奈机械硬盘严重拖慢速度,影响工作心情,于是入手Macbook Retina 13,这两年的开发工作全部在Mac上完成,也积累了一点心得,遂总结此文,文章主要介绍一些我认为可以提高程序员工作效率的工具软件,希望对使用Mac的码农有点帮助。包管理Mac系统上主要的包管理有Macport和Homebrew,类似于Debian

2015-04-29 23:00:54 1058

转载 如何写一篇好的技术博客

在工作过程中,发现对很多东西都一知半解,不是很透澈,到头来很容易模糊,如果有一篇好的技术博客予以总结,一来即使忘记了,回国头来再看,仍然能够从自己的思路中恢复;二来总结一下,还会发现一些潜在问题;三来,有利于大家交流技术。很多大公司都有自己的内部技术博客平台,写好自己的技术博客,对一个技术人员来说,也有一定的成就感。        在网上查阅资料,经常可以看到一些技术博客,要么废话连篇、排

2015-04-29 15:28:57 699

转载 markdown——像写代码那样写文章

Markdown是什么?Markdown 是一种轻量级标记语言,创始人为約翰·格魯伯(John Gruber)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。为什么要用Markdown?作为程序员,已经习惯了使用最原始的文本编辑器来处理文字信息,当我们使用Of

2015-04-29 15:02:15 2646

转载 我的Java学习推荐书目

一直有这么个想法,列一下我个人认为在学习和使用Java过程中可以推荐一读的书籍,给初学者或者想深入的朋友一些建议,帮助成长。推荐的的都是我自己读过,也会推荐一些朋友读过并且口碑不错的书籍。一、基础类 1、《Thinking in java》,入门第一位是建立正确的概念。 2、《Core Java》,我没系统读过,这本书更贴近实践,更多API的介绍,同样,更新也更频繁。二、进阶类 1、《Effe

2015-04-29 14:23:22 685

转载 java 线程池的使用

一.Java中的ThreadPoolExecutor类  java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的线程池,必须先了解这个类。下面我们来看一下ThreadPoolExecutor类的具体实现源码。  在ThreadPoolExecutor类中提供了四个构造方法:public class ThreadPoo

2015-04-28 23:14:00 512

转载 java 线程池原理

ThreadPoolExecutor简介ThreadPoolExecutor是线程池类。对于线程池,可以通俗的将它理解为”存放一定数量线程的一个线程集合。线程池允许若个线程同时允许,允许同时运行的线程数量就是线程池的容量;当添加的到线程池中的线程超过它的容量时,会有一部分线程阻塞等待。线程池会通过相应的调度策略和拒绝策略,对添加到线程池中的线程进行管理。”ThreadPoolExecutor数据结构

2015-04-27 20:13:02 857

转载 java 线程池架构

线程池架构图线程池的架构图如下:1. Executor它是”执行者”接口,它是来执行任务的。准确的说,Executor提供了execute()接口来执行已提交的 Runnable 任务的对象。Executor存在的目的是提供一种将”任务提交”与”任务如何运行”分离开来的机制。 它只包含一个函数接口:void execute(Runnable command)2. ExecutorServiceEx

2015-04-27 19:44:55 833

转载 java LinkedTransferQueue

TransferQueue是一个继承了BlockingQueue的接口,并且增加若干新的方法。LinkedTransferQueue是TransferQueue接口的实现类,其定义为一个无界的队列,具有先进先出(FIFO)的特性。   有人这样评价它:”TransferQueue是是ConcurrentLinkedQueue、SynchronousQueue (公平模式下)、无界的LinkedBl

2015-04-26 15:15:31 905

转载 java SynchronousQueue

在BlockingQueue的子类中有一个SynchronousQueue(同步队列)比较少见,现在做一个简单的介绍,并附加一个简单的例子。SynchronousQueue –JDK1.6介绍:public class SynchronousQueue<E>extends AbstractQueue<E>implements BlockingQueue<E>, Serializable  一种阻

2015-04-25 19:43:22 886

转载 高效能人士的七个习惯 读书笔记

高效能人士的七个习惯(笔录1)-由内而外全面造就自己  人格魅力论提醒人们,高效能的生活是有基本原则的,把他们融入到自己的人格中去,才能享受真正的成功与恒久的幸福。§1.1 性格魅力与人格魅力孰重  努力探寻你自己的心灵吧,因为生活源自于此。§1.2 思维定式的力量  思维定式,广义上是指我们“看”世界的方法,这种“看”和视觉无关,主要指我们的感知、理解与诠释。   立场决定观点。§1.3 思维转

2015-04-25 15:58:29 12577

转载 java DelayQueue

我们谈一下实际的场景吧。我们在开发中,有如下场景a) 关闭空闲连接。服务器中,有很多客户端的连接,空闲一段时间之后需要关闭之。 b) 缓存。缓存中的对象,超过了空闲时间,需要从缓存中移出。 c) 任务超时处理。在网络协议滑动窗口请求应答式交互时,处理超时未响应的请求。一种笨笨的办法就是,使用一个后台线程,遍历所有对象,挨个检查。这种笨笨的办法简单好用,但是对象数量过多时,可能存在性能问题,检查间

2015-04-25 11:38:47 724

转载 java Exchanger原理

一、简介  Exchanger是自jdk1.5起开始提供的工具套件,一般用于两个工作线程之间交换数据。在本文中我将采取由浅入深的方式来介绍分析这个工具类。首先我们来看看官方的api文档中的叙述:A synchronization point at which threads can pair and swap elements within pairs. Each thread presents s

2015-04-24 09:46:10 5636

转载 如何高效地读书?

前言:理论上来说,一天看完一本书是没问题的,不过初期接触某类书籍,建议还是慢些一周看一本即可。本文中提到的方法适合阅读期刊、信息量较大的书籍,首推职场人士以及自学拓宽见识的学生。本文不适合阅读小说、考试书,另外如果只是将阅读作为一种享受生活的方式的人也不适合这种阅读方式。我目前认为比较有用的阅读方法总结如下1符合筛选要求的书就买下,忽视评论每个人的阅读层次都不同,根据评论选书没有意义,读书需要鲸吞。

2015-04-24 08:31:30 692

转载 深入理解Java内存模型 读书总结

《深入理解Java内存模型》读书总结

2015-04-23 20:21:24 673

转载 java 锁框架

根据锁的添加到Java中的时间,Java中的锁,可以分为”同步锁”和”JUC包中的锁”。同步锁  即通过synchronized关键字来进行同步,实现对竞争资源的互斥访问的锁。Java 1.0版本中就已经支持同步锁了。  同步锁的原理是,对于每一个对象,有且仅有一个同步锁;不同的线程能共同访问该同步锁。但是,在同一个时间点,该同步锁能且只能被一个线程获取到。这样,获取到同步锁的线程就能进行CPU调度

2015-04-23 20:19:57 1542

转载 java 共享锁和ReentrantReadWriteLock

ReadWriteLock 和 ReentrantReadWriteLock介绍ReadWriteLock,顾名思义,是读写锁。它维护了一对相关的锁 — — “读取锁”和“写入锁”,一个用于读取操作,另一个用于写入操作。 “读取锁”用于只读操作,它是“共享锁”,能同时被多个线程获取。 “写入锁”用于写入操作,它是“独占锁”,写入锁只能被一个线程锁获取。 注意:不能同时存在读取锁和写入锁! R

2015-04-23 19:58:01 977

转载 java LockSupport

LockSupport介绍LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。 LockSupport中的park() 和 unpark() 的作用分别是阻塞线程和解除阻塞线程,而且park()和unpark()不会遇到“Thread.suspend 和 Thread.resume所可能引发的死锁”问题。 因为park() 和 unpark()有许可的存在;调用 park() 的

2015-04-23 15:36:41 727

转载 四象限法则

究竟什么占据了人们的时间?这是一个经常令人困惑的问题。著名管理学家科维提出了一个时间管理的理论,把工作按照重要和紧急两个不同的程度进行了划分,基本上可以分为四个“象限”:既紧急又重要、重要但不紧急、紧急但不重要、既不紧急也不重要。这就是关于时间管理的“四象限法则”。重要观念  时间管理理论的一个重要观念是应有重点地把主要的精力和时间集中地放在处理那些重要但不紧急的工作上,这样可以做到未雨绸缪,防患于

2015-04-23 14:55:44 4372

转载 项目分享-限流框架的实现

背景  开篇之前我一直在想怎么把这个项目给讲清楚,如果在互联网公司有高并发场景对于这个内容的就比较容易接受。这里大概说一下背景:代码写于2013年四月份,最开始的雏形是在2012年写的,从另外一个项目上进行,代码侵入性比较强。我在今年四月份进行了剥离,实现可插拔式的监控。言归正传,当时对于性能领域非常有兴趣,所以就在想如何写一个框架对于现有项目对于”类级别(严格来讲是方法级别)”做性能监控。既然是性

2015-04-23 14:32:21 1143

转载 消息解耦初探

一般来说解耦有两条途径,一是远程请求,二是消息(推送)。这两种方式可以说使用的应用场景不一样,比如说远程请求这是主动方在调用方,而推送的主动权肯定是在生产方。为什么要解耦?这个。。。 如果用消息进行应用间解耦,消息将作为应用间的介质作为上下文传输。其实知道生产者和消费者就很容易明白,这样两个应用之间将不会有任何代码的依赖。   这样会有一个消息提供方和消息接收方。也可以说是消息生产方和消息消费方

2015-04-23 13:56:42 1086

转载 远程服务化的思路整理

这里客户端和远程服务都是具体和业务相关的,比如说会员服务需要独立部署。远程服务框架是要做的工作就是屏蔽具体和远程接口交互的细节,方便调用方进行调用,比如说配上接口名,服务器IP就能实现通信。实际应用中也不会太关心具体的机器IP。假如说会员服务是一个集群服务,那么对于客户端而言并不需要关心具体的IP,它所关心的只有服务,具体路由到哪台机器去处理也将是目标服务需要做的事情。并非客户端去做的事情。

2015-04-23 13:46:31 572

转载 漫谈SOA(面向服务架构)

面向服务架构的思想在整个软件的架构中已经不是什么新鲜的东西。我简单的认为服务化是模块化的延伸,所以服务化有着和模块化类似的优点和缺点。这里不再讨论这些服务定义服务与服务之间的通信协议(像WSDL等等),我并不认为这是服务化的本质所在。即使Java语言用RMI进行服务与服务之间的通信也仍然不违背服务化的宗旨。一.为什么需要面向服务架构  1.我觉得面向服务的根本好处是便于管理,也是应用大到一定时候的必

2015-04-23 13:36:01 701

转载 男女25岁的资源格局

这里我只说大部分!什么不一定的就不要说了。  先从一个帖子开始。无意中和同事看到一个找对象的帖子,一上来先介绍自己和一些优点,介绍的很详细,然后说自己的要求。我说这个帖子写的好。很多帖子一上来就噼里啪啦一大段要求这要求那,我只想问一句:你吸引别人的地方在哪里?  言归正传,以前我说过女人25岁是一个转折点,过了25岁择偶竞争力会下降,所以女人22岁~25岁是一个黄金年龄,这个主要是大部分男人在择偶中

2015-04-23 13:16:37 1794

转载 java 技术导图

简单的画了一张有关Java的技术导图,其中不免纰漏,作为自己学习的一个指导方向。转载自:http://blog.csdn.net/luohuacanyue/article/details/8272691

2015-04-23 12:28:11 676

转载 进大公司还是进小公司

对于这个问题始终没有一个固定的答案,就像两条路始终都有人失败和成功。因为成长的道路上会有太多的因素在影响着我们。这里我想举一个可能不是特别恰当的例子但是相似的例子就是读大学。一个好的大学和一个普通大学都可能出人才,可是它们的概率一样吗?他们在学校的资源又是一样吗?出了校门所享受的社会资源又是一样吗?         所以结论也很简单,如果你刚毕业,有实力进大公司不要唐突的选择一个公司就进去

2015-04-23 11:38:18 922

转载 项目经验分享

前言                最近一直在想自己在项目中的一些得失,在每一个项目结束都要问自己一下:这个项目中自己获得哪些成长,下次是不是可以做到更好。长期的项目过程往往会让人陷入一种思维的定式:好像每个项目的工作都一样,这样很容易进入一种比较消极的状态,会忘记自己曾经给自己设置的目标。以前看过这样一个问题:什么才算得上有效经验?有些人做了三年其实只有一年的经验,因为后面基本上是前面的

2015-04-23 11:29:20 1399

转载 性能调优思考

前言       这篇文章非常有意思,写于2012年11月1日,不过下面所看到的是2013年11月9日基本上重新写了一篇。之前的内容基本上没有怎么保留。开始也在想要不要新开辟一篇来写,后来想想还是修改比较好一些,后续我也会持续的修改一些文章。对于自己而言是对于一些知识的回顾和整理。因为时间过去了往往对一个东西的认识会有所改变,也对一些已经遗忘的知识重新学习。       废话不多说老,开始

2015-04-23 11:04:41 720

转载 工作心得总结

前言            这篇总结是我在实际工作中的一些心得体会。主要是我在工作中犯的错误然后进行总结,也是对自己的警示。我在这里先抛出一个观点:技术能力不等同于工作能力,只能说技术能力是工作能力的一部分,在公司里会发现有些技术不错的程序员并不得志,有些技术不如他的反而得到晋升。技术能力是工具,是一把刀,是一项很重要的技能,但是如何用好他就看每个人的功力。如果你有杀牛的本领,每天杀鸡有什

2015-04-23 10:50:42 1933

转载 毕业四年

直至目前毕业已经快四年,我的经历代表了大多数普通程序员的经历,没有牛人传奇的经历,甚至连进入这个职业都是一种偶然,只是因为分数不够被调剂到计算机专业。很多人可能会有和我一样的经历甚至一样的困惑。我在《我的六年程序之路》寥寥几笔记录了我的工作经历,那个时候的心态代表了一个初入职场的迷茫,而现在是一个希望获得成长的迷茫,虽然本质一样,但是阶段不一样。       我总想记下这四年发生的一些事以

2015-04-23 10:30:52 587

转载 程序员的职业规划

在这个节点讲讲我对职业发展路径的理解,另外就是理一理脑子里的一些思路。过段时间再看此文又可能是另一番理解。很多路从后往前看的时候总会有遗憾,要是当初怎么怎么样就会怎么怎么样。导致这样的原因的第一个原因是人在做决策的时候由于各种不全导致了决策本身并不完美,即使当时完美可能后面看来也可能是不完美的,也有可能做出完全错误的决策(PS:如果孤立的讨论决策本身没有完全错误的决策,也可以认为是没有意义的)。有一

2015-04-23 10:10:24 692

转载 java Condition源码分析

JUC提供了Lock可以方便的进行锁操作,但是有时候我们也需要对线程进行条件性的阻塞和唤醒,这时我们就需要condition条件变量,它就像是在线程上加了多个开关,可以方便的对持有锁的线程进行阻塞和唤醒。Condition的概念Condition主要是为了在J.U.C框架中提供和Java传统的监视器风格的wait,notify和notifyAll方法类似的功能。JDK的官方解释如下: 条件(也称为

2015-04-23 09:21:42 4951 2

转载 java 非公平锁

获取非公平锁(基于JDK1.7.0_40)非公平锁和公平锁在获取锁的方法上,流程是一样的;它们的区别主要表现在“尝试获取锁的机制不同”。简单点说,“公平锁”在每次尝试获取锁时,都是采用公平策略(根据等待队列依次排序等待);而“非公平锁”在每次尝试获取锁时,都是采用的非公平策略(无视等待队列,直接尝试获取锁,如果锁是空闲的,即可获取状态,则获取锁)。 在前面的“Java多线程系列–“JUC锁”03之

2015-04-22 17:49:29 1781

转载 java 公平锁

基本概念本章,我们会讲解“线程获取公平锁”的原理;在讲解之前,需要了解几个基本概念。后面的内容,都是基于这些概念的;这些概念可能比较枯燥,但从这些概念中,能窥见“java锁”的一些架构,这对我们了解锁是有帮助的。 1. AQS – 指AbstractQueuedSynchronizer类。 AQS是java中管理“锁”的抽象类,锁的许多公共方法都是在这个类中实现。AQS是独占锁(例如,R

2015-04-22 17:26:56 2114

转载 java 信号量

Semaphore(信号量) 是一个线程同步结构,用于在线程间传递信号,以避免出现信号丢失(译者注:下文会具体介绍),或者像锁一样用于保护一个关键区域。自从5.0开始,jdk在java.util.concurrent包里提供了Semaphore 的官方实现,因此大家不需要自己去实现Semaphore。但是还是很有必要去熟悉如何使用Semaphore及其背后的原理本文的涉及的主题如下:简单的Semap

2015-04-22 12:42:53 791

Struts2教程.chm

Struts2教程.chm

2014-04-24

struts-2.2.1.1.chm

struts-2.2.1.1.chm

2014-04-24

struts2-tags-API.chm

struts2-tags-API.chm

2014-04-24

struts2.0中文帮助手册.chm

struts2.0中文帮助手册.chm

2014-04-24

spring2.0-reference_final_zh_cn.chm

spring2.0-reference_final_zh_cn.chm

2014-04-24

Hibernate+API+(3.3.1.GA).chm

Hibernate+API+(3.3.1.GA).chm

2014-04-24

Hibernate Annotations参考文档-3.20.chm

Hibernate Annotations参考文档-3.20.chm

2014-04-24

JAVAEE_6.0.1.chm

JAVAEE_6.0.1.chm

2014-04-24

JavaEE6 API 英文版.CHM

JavaEE6 API 英文版.CHM

2014-04-24

JavaEE6 API 中文版.chm

JavaEE6 API 中文版.chm

2014-04-24

Struts2Hibernate+Spring中文帮助文档.zip

Struts2Hibernate+Spring中文帮助文档.zip

2014-04-24

spring-framework-master.zip

spring-framework-master.zip

2014-04-24

JavaEE6_API_英文版_中文版.rar

JavaEE6_API_英文版_中文版.rar

2014-04-24

Hibernate_Annotation_文档.pdf

Hibernate_Annotation_文档.pdf

2014-04-24

ssh框架api集合.rar

java ssh框架api集合

2014-04-24

.Struts2+API.chm

.Struts2+API.chm.

2014-04-24

androidapi_chm.zip

androidapi_chm.zip

2014-04-24

程序员的数学.pdf

程序员的数学.pdf

2014-04-24

程序员的职业素养.pdf

程序员的职业素养.pdf

2014-04-24

统一软件开发过程.pdf

统一软件开发过程.pdf

2014-04-24

服务端源码.rar

服务端源码.rar

2015-07-15

客户端源码.rar

客户端源码.rar

2015-07-15

nio-src.zip

nio-srcnio-src

2015-03-15

ASM_Demo.zip

ASM_Demo.zip

2015-02-01

ssh Struts2.2+Hibernate3.6+Spring3.1+oracle 分页示例.zip

ssh Struts2.2+Hibernate3.6+Spring3.1+oracle 分页示例.zip

2015-01-22

Gif编码解码类,总共四个

Gif编码解码类,总共四个Gif

2014-12-29

css 清除默认样式

清除html原有样式清除html原有样式清除html原有样式清除html原有样式

2014-11-27

eclipse格式化代码配置文件.zip

eclipse格式化代码配置文件.zip(包含代码清理与格式化)

2014-08-07

j2se6.chm文档

j2se6.chm jdk jdk6 文档 api

2014-07-07

jd-gui-0.3.5.osx.i686.dmg

jd-gui-0.3.5.osx.i686.

2014-06-09

dex2jar-0.0.9.15.zip

dex2jar-0.0.9.15.zip

2014-06-09

apktool1.5.2.tar.bz2

apktool1.5.2.tar.bz2

2014-06-09

apktool-install-macosx-r05-ibot.tar.bz2

apktool-install-macosx-r05-ibot.tar.bz2apktool-install-macosx-r05-ibot.tar.bz2apktool-install-macosx-r05-ibot.tar.bz2

2014-06-09

Node.js开发指南.pdf

Node.js开发指南.pdf

2014-05-27

jstl.rar(jar)

jstl.rar

2014-05-26

javaee mvc

javaee mvc

2014-05-22

ubuntu 下sublime2 输入法支持.tar.gz

ubuntu下让sublime2支持中文输入法,里面包含必要的文件和步骤文档,方便快速配置.

2014-04-26

Android自定义对话框样式.zip

该源码有各种样式可供开发者选用。开发者可参照源代码实现自己喜欢的样式。

2014-04-24

编程规范.rar

编程规范

2014-04-24

ssh2+API+集合.rar

ssh2+API+集合.rar

2014-04-24

空空如也

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

TA关注的人

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