自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 Groovy学习2

 JAVA中要像闭包式的处理,匿名内部类有类似的功能,但代码实现很难看,而且如果要访问本地变量,本地变量还必须是final的。比较:java:inteface ResourceUser{  void use(Resource resource);}resourceHandler.handler(new ResourceUser(){   public void use(Resource re...

2013-06-30 09:52:36 147

原创 Groovy学习1

groovy的执行有两种方式1.先将groovy文件编译(用groovyc编译器)为class类,之后交由JVM加载执行(这种方式跟JAVA没什么太大的区别)2.在运行时生成groovy类,直接通过groovy Myscript.groovy来运行这个脚本,那么其执行的步骤具体来说有:  (1)Myscript.groovy被传递给groovy的转换器  (2)转换器产生了一个抽象语法树(AST...

2013-06-30 09:51:43 199

原创 分布式服务框架HSF学习

 HSF提供的是分布式服务开发框架,taobao内部使用较多,总体来说其提供的功能及一些实现基础:1.标准Service方式的RPC  1)、Service定义:基于OSGI的Service定义方式  2)、TCP/IP通信:   IO方式:nio,采用mina框架   连接方式:长连接   服务器端有限定大小的连接池   WebService方式  3)、序列化:Hessian序列化机制2...

2013-06-09 11:01:34 793

原创 maven学习

刚从ANT转到MAVEN,使用了一小段时间,现在有时间多做些了解,拿起《maven in action》书读了一遍,比较基础,不过对maven也有了更多的一些了解,总结一些maven的小知识备用吧!不过要熟悉还是得多用,呵呵! maven用户可以选择配置$M2_HOME/conf/setting.xml或者~/.m2/setting.xml.前者是全局范围的,整台机器上的所有用户都会直...

2013-05-28 10:54:32 130

原创 数据分析不使用Hadoop的五大理由(转)

 1:“Hadoop是一个框架,不是一个解决方案”——在解决大数据分析的问题上人们误认为Hadoop可以立即有效工作,而实际上“对于简单的查询,它是可以的。但对于难一些的分析问题,Hadoop会迅速败下阵来,因为需要你直接开发Map/Reduce代码。出于这个原因,Hadoop更像是J2EE编程环境而不是商业分析解决方案。” 所谓框架意味着你一定要在之上做个性化和业务相关的开发和实现,而这些...

2013-05-27 14:14:14 110

原创 Guava学习2

PART3. Concurrency 加了个ListenableFuture接口:[code]ListenableFuture extends Future{ void addListener(Runnable paramRunnable, Executor paramExecutor);}[/code] 代码实例: [code]L...

2013-05-21 16:10:03 124

原创 Guava学习1

Guava项目涵括了好几个Google开发的JAVA项目所依赖的核心库,像: collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O等. 项目开发需要,所以学习一下。 PART1. Basic Utilities    ...

2013-05-14 15:07:45 85

原创 Spring MVC学习

DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:1、文件上传解析,如果请求类型是multipart将通过MultipartResolver 进行文件上传解析;2、通过HandlerMapping,将请求映射到处理器(返回一个HandlerExecutionChain,它包括一个处理器、多个HandlerInterceptor 拦截器);3、通过 Ha...

2013-05-10 14:08:19 67

原创 B树 B+树 B*树

B-树(也就是B树)       是一种多路搜索树(并不是二叉的):       1.定义任意非叶子结点最多只有M个儿子;且M>2;       2.根结点的儿子数为[2, M];       3.除根结点以外的非叶子结点的儿子数为[M/2, M];       4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字)       5.非叶...

2013-02-21 13:14:59 92

原创 读《欺骗的艺术》

《欺骗的艺术》是著名的黑客凯文.米特尼克写的一本关于社会工程学的书籍,书里讲的不是黑客编程技术,而主要是从攻击人性角度的漏洞,一步一步地来达到最终的目的。在现实,大多数公司配置的安全产品如认证设备(身份认证)、访问控制(对文件和系统资源的控制管理)和入侵检测系统(计算机化的防盗器)等技术,对公司的安全防护是十分必要的。但这只是针对相对初级的攻击者,一个经验丰富、目标清晰,受商业利益驱动的攻击...

2013-02-19 16:01:40 446

原创 面向站长和网站管理员的Web缓存加速指南(转)

       这是一篇知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见,某些实现方面的细节被简化或省略了。如果你更关心细节实现则完全不必耐心看完本文,后面参考文档和更多深入阅读部分可能是你更需要的内容。什么是Web缓存,为什么要使用它?缓存的类型:浏览器缓存;代理服务器缓存;Web缓存无害吗?为什么要鼓励缓存?...

2013-02-07 10:40:26 128

原创 JUC AQS

              一个基于AQS的Synchronizer所执行的基本操作,是一些不同形式的获取(acquire)和释放(release).获取操作是状态依赖的操作,总能够阻塞。借助锁和信号量,“获取”的含义变得相当直观--获取锁或者许可--并且调用者可能不得不去等待,直到Synchronizer处于可发生的状态。CountDownLatch的请求意味着“等待,直到闭锁到达它的终止...

2013-01-24 09:07:47 108

原创 关于技术学习中的一点小感想

 这是个有意思的小故事:假如您是位伐木工人,如果您拥有最好的斧子,那您将会是林场中最能干的伐木工人。忽然有一天,有人向您展示并推荐一个新型伐木工具,电锯。这个销售人员很善于推销,于是您购买了电锯,但不知道如何使用。于是您就参照以前的模式来用,举起电锯用力地挥向树木。您很快就会得出结论,电锯这种新工具只不过是一种时尚,最后还是改用斧子来砍树。 看了之后,我真心觉得这是我们现在软件开发者在...

2013-01-08 11:10:00 102

原创 借鉴bigpipe思路在项目ajax调用时的一点改进

要处理的情况:一次用户请求,后台要处理业务: step1,查询并大数据且复杂的业务处理,得到结果集A;step2,基于结果集A,调用web service查询结果集Bstep3,将A和B显示在页面上 之前的方案就是在step1完成后就直接进入step3显示A的信息,然后在页面渲染完后,用ajax,基于页面上的A的信息,异步到后台调用web service查询结果集B,然后再重画部分页面...

2013-01-05 15:32:02 116

原创 写在2013年的第一天

2012年在忙碌中过去了,新得一年的第一天,我觉得还是相当由必要做个2012的自我回顾,以及2013的计划与展望。 2012年首先在工作上,迟来得升职并没有给我带来太大得欣喜,倒是在项目中更多的参与解决核心难题:性能,我倒是更觉得开心,马力十足(当然,比起淘宝之类的互联网应用中的问题那当然还是小儿科了)!此前书上,博客上看到的数据库表拆分,服务分离等手段,项目上不得不去采用。在具体的实...

2013-01-01 19:02:18 109

原创 分支预测(Branch Prediction)

  在写代码的时候,有时会遇到在循环遍历一个数组时,如果代码块里有做if判断的操作时,我们有个优化的经验,就是先将数组先排序,然后再进行遍历比较操作时,效率会有比较大的提升。 一个简单的测试:  import java.util.ArrayList;import java.util.Collections;import java.util.List;import...

2012-12-24 15:36:08 746

原创 逆商 & 灵商

  最近略读了下<CTO之程序员职业规划>一书,里面提到的逆商概念让我体会挺深的,书中一共提到智商 IQ,情商 EQ,逆商 AQ(Adversity Quotient)和灵商SQ(Spiritual Quotient).前两种我们都比较熟悉,后两种我还真是第一次听到这种名词,不过对于生活在现在这种竞争激烈,节奏快速,压力剧增的社会,AQ,SQ也是越来越凸显其对人成长的价值....

2012-12-21 10:15:10 300

原创 Spring 的微内核与FactoryBean扩展机制(转)

 DreamHead在《思考微内核》十分激赏 Spring的微内核与扩展机制:“Spring 的微内核在哪里呢?便是DI容器。而通过FactoryBean,我们可以定制自己的组件组装过程,这样就有了机会对一个普通的JavaBean做手脚,就像Spring AOP中常用的ProxyFactoryBean所做的一样。这样,我们就不必把所有功能都做到Spring的DI容器中去,而是作为一个 Fact...

2012-12-19 13:30:27 96

原创 货币组合问题的实现

问题:有1元,5元,10元,50元,100元的五种货币,任给定一个数额,求所有可能的组合数. 思路:是用排列组合中思想做出的一个计算所有排列数量的算法思想是,数额321,以100元单位为例,总组合数量是下面两种情况之和:1.组合里包含100元,即至少有100元1张,那么321-100=221元由这5种组合的数量2.组合里不包含100原,那就是321由前四种组合的数量 java实现:...

2012-12-17 16:37:58 217

原创 笔记-再读深入浅出设计模式

代码复用à经验复用如果每次新的需求一来,都会使某方面的代码发生变化,那么你就可以确定,这部分的代码需要被抽出来,和其他稳定的代码有所区分.我们全都使用别人设计好的库和框架,我们谈论库与框架,利用它们的API编译成我们的程序,享受运用别人的代码所带来的优点.看看Java API及它所带来的功能:网络,GUI,IO等.库与框架长久以来,一直扮演着软件开发过程的重要角色,我们从中挑选所要的组...

2012-12-14 15:23:52 122

原创 5%的神话(关于开发效率与职业方向)(转)

Bruce Eckel(Thinking in Java/C++作者) 在他的 5%的神话 (Mythical 5%) 中提到:5%的程序员开发效率是其他95%程序员的20倍 (5% of programmers are 20x more productive than the other 95%)按照80-20法则,80%的程序员几乎不看书,不读Blog,不参加技术会议,不持续学习。...

2012-12-11 08:49:05 78

原创 观点的碰撞(转)

 最近看了两本软件和创业方面的书,我的世界观总在不断小范围地崩塌和建立。现在愈发觉得,到底何谓对错,到底何为黑白,我是不是受到中国传统教育毒害太深了,到现在才慢慢缓过劲来?我想到一些有意思的争论:1、先寻找优秀的程序员还是先准备优秀的产品设计?先准备优秀的产品概念、设计和理念,再去寻找合适的人,这样的公司稳重、成熟,能做出优秀的产品;还有的先去寻找最优秀的程序员,把这撮人聚到一起再...

2012-12-03 19:25:30 190

原创 CLH锁学习

CLH锁即Craig, Landin, and Hagersten (CLH) locks,CLH锁是一个自旋锁,能确保无饥饿性,提供先来先服务的公平性。何谓自旋锁?它是为实现保护共享资源而提出一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,也就说,在任何时刻最多只能有一个执行单元获得锁。但是两者在调度...

2012-11-28 13:46:46 147

原创 递归,迭代,尾递归(SICP)

阶乘函数:n!=n*(n-1)*(n-2)...3*2*1针对这样的表述,直译成一个过程:(define (factorial n)    (if (=n 1)        1        (* n (factorial (- n 1)))))如果是factorial(6),其计算行为是:(factorial 6)(* 6 (factorial 5))(* 6 (* 5 (factorial ...

2012-11-12 14:05:20 127

原创 牛顿逐步逼进法求平方根(schema, SICP)

计算机如何算出平方根呢?最常用的就是牛顿的逐步逼进方法。这个方法就是:如果对x的平方根的值有一个猜测值y,那么就可以通过执行一个简单的操作去得到一个更好的猜测:只需要求出y和x/y的平均值(它更接近实际的平方根值)。例如,可以用这种方式去计算2的平方根,假定初始值是1:猜想       商          平均值1               2/1=2              (2+1)/2...

2012-11-12 09:26:53 569

原创 WEB应用的八种隔离级别(转)

ACID性质是数据库理论中的奠基石,它定义了一个理论上可靠数据库所必须具备的四个性质:原子性,一致性,隔离性和持久性。虽然这四个性质都很重要,但是隔离性最为灵活。大部分数据库都提供了一些可供选择的隔离级别,且现在许多库都增加了附加层来创建颗粒度更细的隔离。隔离级别应用范围如此之广主要是因为放宽隔离约束往往会使得可扩展性和性能提高几个数量级。 串行一致性是可用的最古老最高的隔离级别之一,它之...

2012-11-07 07:30:16 180

原创 读《暗时间》(一)

《暗时间》这本书介绍的主要关于心智模式、学习方法和时间利用,作者刘未鹏,2003年在杂志上发表了自己的第一篇文章,并开始写博客,之后的8年里,作者平均每个月写1篇博客或更少,但从未停止。按刘未鹏本人的说法:写博客这件事情给我最大的体会就是,一件事情如果你能够坚持做8年,那么不管效率和频率多低,最终总能取得一些很可观的收益。而另一个体会就是,一件事情只要你坚持得足够久,“坚持”就会慢慢变成“习惯”。...

2012-11-05 21:11:20 92

原创 现有系统在性能调试上的总结

我现在的工作是企业级系统开发,现在参与的系统难点是单事务处理的数据量大(几十万,上百万,这并非数据库表中的数据量,是一次用户的请求就会有这样的数据量存取数据库,做业务处理),同时处理的业务也异常复杂.同时,在现有公司整体架构的范围内(很难类似互联网开发规模的集群处理,多几台服务器似乎也不容易),所做的的一些性能调试的总结:1.Data partition.这点效果是最明显的,我们现有的数据源有...

2012-10-31 10:45:19 86

原创 java语言的线程安全级别

java中一个类可能支持的线程安全性级别:1.非可变的  这个类的实例是不会改变的,即所谓的immutable class,不需要额外的同步操作,如String,BigDecimal,BigDecimal,原始类型的封装类等。2.线程安全的  这个类不是immutable class,但是所有的方法都包含足够的同步手段,所以这些实例可以被并发使用,无需外部同步。3.有条件的线程安全  ...

2012-10-26 14:02:12 115

原创 职场经典语录(转)

总是想要证明自己时,就没有了投入工作的心态你感觉不舒服的时候,就是成长的时候自得其乐是一种能力不要太把自己当回事,也别把自己太当回事与其怕失败,不如狠狠地失败一回不要总认为自己比别人聪明心中无敌,方能无敌于天下不要害怕把自己的弱点暴露给他人你自己觉得有,别人感觉不到你有,你就是没有别把沙子放大为绊脚石活力四射是激情,深水静流也是激情快乐和烦恼都是自己给...

2012-10-25 07:31:03 235

原创 七个受用一生的心理寓言(转)

(一)成长的寓言:做一棵永远成长的苹果树一棵苹果树,终于结果了。第一年,它结了10个苹果,9个被拿走,自己得到 1个。对此,苹果树愤愤不平,于是自断经脉,拒绝成长。第二年,它结了5个苹果,4个被拿走,自己得到1个。“哈哈,去年我得到了10%,今年得到 20%!翻了一番。”这棵苹果树心理平衡了。但是,它还可以这样:继续成长。譬如,第二年,它结了100个果子,被拿走90个,自己得到10个。很可能,它被...

2012-10-23 07:58:10 116

原创 AOP实现策略

以前有做过一次share,关于动态代理的,因为相关的应用遍及所用的Spring,Hibernate,Junit以及项目中通用的横切功能。看了<Expert one on one J2EE Development without EJB>,这里关于AOP的介绍,有了更全的实现策略,所以摘下来。 1. J2SE动态代理   在JAVA中,实现AOP最显而易见的策略莫过于使用JA...

2012-10-17 13:49:30 125

原创 Java多线程发展简史(转)

转载自:http://www.raychase.net/698这是篇关于并发的文章,其实一看到标题我就知道是篇不错的文章,因为知道一个技术点的发展历史,将来的规划,在整个技术蓝图中占的是什么位置,这会对我们更全面的了解这个技术点有很大的帮助。是凡这类的文章,我看过的基本上都是不错的,因为是从一个更高的角度的看待一项技术了,ok,开始吧。 这篇文章,大部分内容,是周五我做的一个关于如何进行J...

2012-10-08 13:49:00 65

原创 虚数的意义(转)

有人在Stack Exchange问了一个问题:  "我一直觉得虚数(imaginary number)很难懂。  中学老师说,虚数就是-1的平方根。    可是,什么数的平方等于-1呢?计算器直接显示出错!  直到今天,我也没有搞懂。谁能解释,虚数到底是什么?  它有什么用?"帖子的下面,很多人给出了自己的解释,还推荐了一篇非常棒的文章《虚数的图解》。我读后恍然大悟,...

2012-10-05 08:06:57 125

原创 编程范式

冒号课堂里将常用编程范式做了如下总结:    觉得挺不错的,当然这也不是将语言的分类,或许按语言分的话我更倾向于周爱民老师的《动态函数式语言精粹》一书里的分法:命令式与函数式(面向对象我觉得是一种范式,其实现语言更多的还是在命令式范畴内),其他相关的书像《黑客与画家》,后半部分也有不少关于函数式语言的特性等介绍,不过具体的语言性,还是得学一两门相关的语言像Lisp等,还是很都有帮助...

2012-09-10 14:06:37 78

原创 读《How To Tomcat Works》笔记

servlet容器是一个复杂的系统,不过,一个servlet容器要为一个servlet的请求提供服务,要有三件事要做:1.创建一个request对象并填充那些有可能被引用的servlet使用的信息,如参数,头部,cookies,查询字符串,URL等。一个request对象是javax.servlet.ServletRequest或javax.servlet.http.ServletRequest的...

2012-09-05 09:05:02 89

原创 Tomcat源码:执行顺序的一些细节

还是觉得该细整下tomcat源码执行的一个过程,先上自己画的图:  tomcat的容器container有四种:engine,host, context, wrapper,它们的标准实现分别是StandardEngine, StandardHost, StandardContext, StandardWrapper。上面仅是以connect直接调用从context开始的一个调用过程...

2012-08-30 14:47:30 124

原创 Tomcat源码回顾

因为学习并发相关的知识,回顾再略读了下Tomcat的源码实现,加深了印象,又崇拜了一把,哈哈!读完后,自己随手画了下其简单的结构,并非给其他人参考的,因为随手画的,太粗糙,只是当自己再拿起来时,能很快的联想到起框架结构。(不同类型的container的一对多是通过hashmap实现的,孩子还留有个parent来回指父亲,并非链表,不过从孩子去找父亲倒的确是链表的)  ...

2012-08-24 14:32:32 72

原创 对技术的态度(转自酷壳)

对于日新月异的新技术,你是什么态度?遇到新技术我会去了解,但不会把很大的精力放在这些技术(如:NoSQL,Node.js,等)。这些技术尚不成熟,只需要跟得住就可以了。技术十年以上可能是一个门槛。有人说技术更新换代很快,我一点儿都不觉得是这样想。虽然有不成熟的技术不断地涌出,但是成熟的技术,比如Unix,40多年,C,40多年,C++,30多年,TCP/IP,20多年,Java也有将近20年了...

2012-08-20 17:20:57 65

原创 我学到的一些关于编程的事儿(转)

原文地址:Some things I’ve learnt about programming—- ByJohn Graham-Cumming 我已经从事编程 30 年了,用过的机器包括从现在看来很差的(基于 Z80 和 6502)到最新的,用过的语言包括 BASIC,汇编语言,C,C++,Tcl,Perl,Lisp,ML,occam,arc,Ruby,Go等等。下面是我学到的一些关于编...

2012-08-15 11:30:52 125

空空如也

空空如也

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

TA关注的人

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