- 博客(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关注的人