自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

狂奔的菜鸟

追求让自己心动的人生

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

原创 LRU的cache的实现

在网上看到一道面试题:LRU的cache设计,正好最近在学习memcached,于是很认真的研究了下这个问题最笨的实现 一个数组,所有数据堆里边,每个数据维护一个时间(上一次被使用的时间),当查找某个数据的时候,遍历数组。当cache满的时候,需要遍历找到最久没变使用的记录,然后删除。这两个遍历充分暴露了这种实现的笨。在网上搜了一下,看到大致有两种实现 1.直接利用linkedhashmap

2015-09-11 00:22:08 470

原创 spring 注入简单模拟

自己实现一个简单spring 注入的功能。非常简单的一个场景,在ObjectAImpl类中需要一个协作对象bpackage entity;public class ObjectAImpl implements ObjectA { private ObjectB b; public ObjectAImpl() { b = new ObjectBImpl(

2015-09-09 17:09:26 305

原创 zookeeper进阶(二)leader选举源码分析

【选举算法】 QuorumPeer.startLeaderElection 先获取选举算法配置electionType -> config.getElectionAlg() -> electionAlg QuorumPeer.createElectionAlgorithm根据electionAlg选择算法: 0对应的是LeaderElection算法 1对应的是AuthFastLead

2015-08-17 17:24:14 636

原创 spring系列文章(一)AOP源码分析

BeanNameAutoProxyCreator与ProxyFactoryBean区别我们项目用到的是BeanNameAutoProxyCreator,说道aop可能大家更熟悉的是ProxyFactoryBean。它们的区别很简单,BeanNameAutoProxyCreator只不过可以配置多个target使用配置中有两个参数:beanNames:要拦截的bean interceptorNam

2015-07-16 21:01:55 1605

原创 奔跑吧,panda(每日运动记录,持续更新)

07140715跑步感悟:有时候我们在原地踏步,原地高抬腿,并没有进步,但是你变强了。0719今天决定跑个大的,八公里起跳20150722 纤体瑜伽 1h20150825 天了噜,已经一个月没怎么正经运动了。常常在加班还是去西溪湿地跑步之间纠结,如果九点十点多下班再去跑步一个人又怕危险。于是想出一个解决办法:每天5:40-6:40出去跑步,跑完步继续回来加班。今天第一次试验一下,路线如下0827

2015-07-15 18:19:32 859

转载 内存屏障

转自并发编程网,原文地址 http://ifeve.com/memory-barriers-or-fences/本文我将和大家讨论并发编程中最基础的一项技术:内存屏障或内存栅栏,也就是让一个CPU处理单元中的内存状态对其它处理单元可见的一项技术。CPU使用了很多优化技术来实现一个目标:CPU执行单元的速度要远超主存访问速度。在上一篇文章 “Write Combing (合并写)”中我已经介绍了其中

2015-07-15 17:19:28 286

翻译 闰秒惊魂

Date Fri, 2 Jan 2009 18:21:14 -0600 From Chris Adams <> Below follows a summary of the reported crashes. I’m ignoring the zillions of “mine didn’t crash” reports, or the “you’re a paranoid

2015-07-03 18:41:46 384

原创 netty学习系列(一)netty初体验

前言男票做需求用到了netty这个nio框架,于是我挺身而出学习netty的使用和源码。后续netty会总结一个系列,对netty进行源码级的详细分析,敬请期待。首先祭上第一篇,netty初体验。目录netty概述使用示例关键组件简述 - netty是什么对于这个问题netty的官网上有两种表述,可以综合起来看下netty是什么Netty is an asynchronous event-

2015-05-20 16:37:07 905

原创 socket数据传输

前言最近在实现一个socket通信的功能,消息头第一个字段是整个消息长度,用四字节表示。非常简单的一个功能,我却把自己绕晕了,归根结底还是基础不牢,懊恼不已。与我交互的网元说该字段要以16进制的类似下面的形式发送,比如长度356,如下所示:00 00 01 64于是我便在十六进制byte上较上劲了。int分十进制、十六进制,但是它们底层都是“1”“0”的串,所以转成byte后都是一样的,没有什么十进

2015-05-18 18:04:20 736

原创 guava学习(一)ComparisonChain 源码分析

1. ComparisonChain 使用 2. ComparisonChain 源码分析ComparisonChain 使用我有一个产品的list,想对这个list先按产品生效时间排序,如果生效时间一样再按失效时间排序,代码如下:package collection;import java.util.ArrayList;import java.util.Collections;impor

2015-04-27 16:52:14 1448 1

原创 zookeeper进阶(一)客户端建立连接及相应的源码分析

目录zookeeper创建node 一个简单的实现 对应源码分析zookeeper客户端建立连接package zk;import java.io.IOException;import java.util.concurrent.CountDownLatch;import org.apache.zookeeper.WatchedEvent;import org.apache.zookee

2015-04-14 18:06:09 1582

原创 java实现全排列

面试的时候经常遇到“输入一字符串,输出字符串的所有排列”这道题目,今天我自己实现了一下,用的递归的思路。不多解释,直接上代码吧。package test;import java.util.ArrayList;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set

2015-04-14 11:41:03 703

原创 benchmarksql4.1.0测试情况记录

Benchmarksql版本:4.1.0 Oracle版本: Jdbc驱动版本: props.ora配置 创建表 其中创建history表的时候提供的语句 hist_id integer not null default nextval(‘hist_id_seq’) primary key 在oracle上无法创建,将其改为了 hist_id integer default 1

2015-04-08 17:42:18 3077

原创 java设计模式学习(二)策略模式

概念: The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. 策略模式定义了一组算法,各自封装

2015-04-03 16:55:19 361

原创 printWriter的write(String x)和println(String x)区别分析

当当当当~第一篇技术博客来了,虽然是非常简单非常小白的一篇分析,但毕竟是一个开始。以后这些东西都不再只躺在我的有道云笔记里了,so,必须更加严谨,更加扎实的理解和总结~前言: 在写一个socket通信的小模块,client端一开始用了PrintWriter的write(String x)方法,结果server端一直没反映,后来改为println(String x)方法功能正常了。于是自己分析了一下

2015-03-31 20:33:49 830

空空如也

空空如也

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

TA关注的人

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