自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

abing37的专栏

融会贯通,永无止境!一起寻找技术之美!

  • 博客(60)
  • 资源 (2)
  • 收藏
  • 关注

【ruby】ruby实践之实现文件检索小工具

 ruby学习进入实践阶段。花了点时间用ruby实现了一个文件检索功能。小工具没什么好去说的,主要是本人通过这个熟悉ruby的一些api。 需求:根据输入的关键字在指定的目录下,搜索指定格式的文件。返回文件名或文件内容包含该关键子的文件列表。 输入:关键字 keyword,指定目录 path,文件格式 filepattern输出:文件名或文件内容包含keyword的文件列表...

2012-12-19 14:14:59 264

【ruby】ruby对象模型

学习ruby,最基础的是理解ruby的对象模型,经过这几天抽空学习,大致总结了下。 先看一下代码示例 class Bird @@legs=2 def eat puts "i am eating" end def comefrom(location) @birthplace=location puts "i am come fr...

2012-11-27 10:18:53 336

【ruby】ruby 动态方法总结

本文对ruby动态方法特性进行探讨。结合以下例子: #dynamic methodsclass Dynamic def a puts "this is method a" end def b(bob) puts "this is method b:#{bob}" end def c puts "this i...

2012-09-18 11:07:50 324

【ruby】ruby语言的几个特性总结

最近在学习ruby,我觉得学习一门语言要先了解语言的基本特性,然后再深入语法、细节特性等。所以先从ruby语言的特性入手,结合例子简单总结了几点,才真正开始学没多久,绝对不全面,还需后续的学习再补充。  1.纯面向对象的在ruby世界里所有的都是对象,包括方法、类、模块。也包括字符、数字、bool等基本类型。如 3.times { puts "Hi!" } #完成...

2012-09-13 16:16:23 773

【总结】近期的几点技术心得总结

 近期做了好长时间的项目,很久没写文档了,这次的项目很难得的自己做了很多的技术方案,且以前有些不一样,现成直接可用方案并没有。 今天闲来总结几点: 1.技术方案大部分从应用场景出来的技术方案是为了解决一个现成的问题。一个现成的很好的方案,可能在实施成本、冲突方面和项目不符。针对当前的场景也许一个现成的方案可行,但并不一定是最合适的。 2.新的技术方案往往面临需要不断修正...

2012-09-09 09:29:15 113

原创 【web】跨域cookie同步方案

最近因为项目,需要了解在不同的域名下,同步登陆状态等cookie。于是兄弟公司那了解了一种跨域同步cookie的方案。 场景:有时一个公司可能有多个不同域名的网站,比如sina.com和weibo.cn,比如taobao.com和tmall.com。这些网站背后很多是同一套会员体系。由于http协议规定cookie是跟着域名走的,这时就需要在不同的域名下同步登陆状态,避免出现用...

2012-04-30 22:58:13 624

【java规范】Java spi机制浅谈

最近看到公司的一些框架和之前看到的开源的一些框架的一些服务发现和接入都采用了java的spi机制。所以简单的总结下java spi机制的思想。 我们系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、jdbc模块的方案等。面向的对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,...

2012-04-24 23:04:35 421

原创 Xml ResourceBundle简单实现

ResourceBundle主要是用于和本地语言环境相关的一些资源绑定。特别是String资源。从国际化的设计角度看,一般在代码里不编写和语言环境相关的东西。比如在代码里编写和语言环境相关的错误提示或信息。以下面枚举为例:public enum WeekdayEnum { Monday, Tuesday, Wednesday, Thursday, Friday, Saturd...

2012-04-17 21:45:04 222

【shell】串行执行批量任务脚本

前阵放假时候,帮人跑实验,需要在一台服务器上跑一堆java实验程序。为了实验结果的公正性,要保证每次只跑一个实验,也就是需要串行的跑完所有java程序。刚开始的时候,我每跑一个程序,隔一段时间去服务器上检查一下是否跑完,需要时时留意,实在有点不爽,人也不能走开。于是写了个shell脚本:串行的去执行一批java程序任务列表。过程如下:1.新建任务列表以实验为例的task...

2012-04-06 09:18:48 2119 1

原创 【maven】多子模块maven模板工程archetype创建过程

最近项目里需要创建一个多模块(子工程)的模板项目,所以研究了一下maven的archetype plugin。创建了一个包含多个子模块工程的项目模板。记录下过程。  一个模板工程任务就是创建一个或多个默认的工程,并为每个工程填充好默认的一些文件和配置。同时要抽象出生成的工程需要的一些属性,做到这些属性可动态配置。在maven里通过定制的archetype来生成项目模板。ma...

2012-04-02 20:55:11 617

【vim】我的vim常用命令总结

vim是linux下的开发利器,相信很多人都感受到了他的强大。作为一款强大的编辑器,本人用得也蛮多的,不过不能算非常的精通。平时偶尔有些用法忘记了还得去查查。以下是本人总结平常用得最多的几个,记录一下: 普通模式:j:上移  5j上移5行k:下移 5k下移5行G:到文档的最后一行nG:到第n行gg: 到文档的第一行h:左移,5h,左移5字符。l:右移...

2012-03-18 09:44:51 86

【java基础】如何设计java应用程序的平滑停止

java应用程序退出的触发机制有:1.自动结束:应用没有存活线程或只有后台线程时;2.System.exit(0);3.kill 或 ctrl+C;4.kill -9 强制退出; 如何做到应用程序平滑停止程序的退出就像关机一样,我们希望关机时平滑关机,保证所有应用程序的数据都保存了。就像现在在写得blog,希望关机的时候能被保存好到草稿箱里。我们的的jav...

2012-03-05 23:44:30 200

【java并发】juc Executor框架详解

Executor框架是juc里提供的线程池的实现。前两天看了下Executor框架的一些源码,做个简单的总结。线程池大概的思路是维护一个的线程池用于执行提交的任务。我理解池的技术的主要意义有两个:1.  资源的控制,如并发量限制。像连接池这种是对数据库资源的保护。2.  资源的有效利用,如线程复用,避免频繁创建线程和线程上下文切换...

2012-02-26 13:55:32 341 1

【java并发】juc高级锁机制探讨

  最近在看一些juc相关的设计和源码,接上文:【java并发】基于JUC CAS原理,自己实现简单独占锁本文探讨一下juc里面提供的一些高级锁机制和基本原理。 JUC高级锁机制简介Juc提供了高级锁的一些特性和应用,如:ReentrantLock:和synchronized具有差不多的语义,独占锁,同时只有一个线程能...

2012-02-23 00:52:45 151

【java并发】基于JUC CAS原理,自己实现简单独占锁

synchronized的基本原理回顾在jvm内部,所有对象都含有单一的锁,jvm负责跟踪监视被加锁次数,叫做对象监视器。当线程第一次给对象加锁的时候,计数器会加1,离开时会减1.同样任务是可重入的,每次重入也是加1,离开减1.  synchronized是独占式的,拿到对象锁才能继续,没有获取到锁就会阻塞。JUC CAS乐观锁基本原理synchronized就是一种独占锁,会导致...

2012-02-14 13:47:56 229

[NoSQL]MongoDB初体验

因为未来业务发展的一个需求里的,考虑要用到NoSql,所以做了一些预研。今天简单体验了下mongdb,感觉挺合适的,有点热血沸腾。简单记录下mongoDB的一些初体验。mongoDB的特性有哪些?以下是官网的定义:MongoDB (from "humongous") is a scalable, high-performance, open source NoSQL da...

2012-01-05 16:06:34 99

【JDBC,数据库】Oracle date和timestamp类型混用时需要注意的索引失效问题

1.关于 Oracle date和timestamp类型Date:只能精确到秒。TimeStamp:可以精确到微秒。关于具体类型不过多介绍。可以参考:http://www.databasejournal.com/features/oracle/article.php/2234501/A-Comparison-of-Oracles-DATE-and-TIMESTAMP-Datat...

2011-12-14 15:27:47 1160

【JVM】HotSpot JVM内存管理和GC策略总结

JVM的相关知识是学习java高级特性必须要去深入学习的。平时也有一些学习和实践,不过总结比较少。今天有时间总结一下最基础的内存模型和GC策略的知识,在此记录一下。 hotspot jvm内存模型1.内存模型hotspot的内存模型很多地方都有类似总结,我也简单总结了一下,大概可以用下图表示: 关于几个分区的描述定义1.线程栈:线程创建是会为每个线程创建一个线程栈,...

2011-12-13 22:05:48 373

【性能】JDBC PreparedStatement和连接池PreparedStatement Cache学习记录

之前看JDBC规范的时候对PreparedStatement只是简单的知道会进行sql预编译,能提高性能。具体原理也没怎么理解。最近在性能测试遇到一个连接池的调优刚好是和PreparedStatement和PreparedStatementCache相关的。固重新系统的看了点资料学习了点,简单记录一下。 1.java.sql.PreparedStatement 首先看wiki对使...

2011-12-08 17:20:32 488

32位机器下的一个java.lang.OutOfMemoryError错误分析

昨天在本人windows机器(32位的 )上调试一个代码的时候报了一个如下错误java.lang.OutOfMemoryError: unable to create new native thread 第一眼看上去是OOM,有点傻眼,因为我的内存启动参数是“-Xms1024m -Xmx1024m -Xss45m”,而我很清楚这个代码大概的内存消耗。奇怪的是进程还没退出,于是打开v...

2011-10-17 11:19:17 156

【Spring】IOC核心源码学习(三):bean标签和自定义标签实现原理

接上文:【Spring】IOC核心源码学习(二):容器初始化过程  本文将解析spring bean定义标签和自定义标签的解析实现原理。这里说的标签仅限于以xml作为bean定义描述符的spring容器,继承AbstractXmlApplicationContext的一些子容器,如XmlApplicationContext、ClassPathXmlApplicationCo...

2011-09-25 11:13:30 139

【Spring】IOC核心源码学习(二):容器初始化过程

 接上文 啃啃老菜: Spring IOC核心源码学习(一) ,本文将以ClassPathXmlApplicationContext这个容器的实现作为基础,学习容器的初始化过程。ClassPathXmlApplicationContext类体系结构以下是ClassPathXmlApplicationContext的类继承体系结构,理解这个结构有助于后...

2011-09-21 21:03:18 324

[监控]Btrace监控简单笔记

前阵子看了公司网站的一个cache 命中率统计的btrace监控脚本,感觉这个玩意功能挺强大,对应用监控有很大实践意义。也顺便把btrace简单学习了一下,未涉及原理方面的内容,只是使用层面的东西,简单笔记总结一下。 安装Linux下:在http://kenai.com/projects/btrace下载btrace-bin.tar.gz,并解压,设置环境变量:e...

2011-09-09 10:57:05 141

【设计】一个有意思的服务方法入参设计

今天晚上和项目组的几个同学讨论一个服务方法的入参设计,觉得挺有意思的,在此记录一下! 背景我们的场景需要对外暴露一个远程服务写入接口,用于给几个外部同步数据的场景。由于历史的原因,需要被写入的这个业务对象很大,字段很多(100多个字段,也会涉及多个表)。以下是场景提取出来的一些要求:1.这个场景只需要同步更新几个字段到该主表里。为了数据安全和方便理解,不希望把整个业务...

2011-09-01 22:40:11 190

DBCP数据源配置项记录

 网站最近发生了数据库连接爆掉的问题。排查了下各个应用存在空闲连接过多的情况。我们部门的一个应用使用dbcp连接池,也存在空闲连接过多情况。之前是根据网站的统一配置,存在空闲连接保持过多的情况,在修改过程中在官网上把这些配置项重新看了一遍。在此记录一下! 官方参考url: http://commons.apache.org/dbcp/configuration.html...

2011-09-01 20:22:43 187

JavaScript关键特征,你了解几个?

(两年前本人在CSDN博客上的文章,那边都不维护了,今天顺便转过来) JavaScript 相信做web编程的程序员没有人不熟悉。不管是.net还是JavaEE,作为前端的重要技术到处都会用到。大学开始学web编程的时候,感觉JavaScript这个玩意挺神奇的。能用来写一些简单验证,如判断空、邮箱格式判断、用正则表达...

2011-08-28 21:07:04 173

【性能】Java BigDecimal和double性能比较

 我们知道java里面有个BigDecimal,可以解决我们的精度丢失问题。但是很少关注其性能情况,因为一般来说可以忽略不计的。也确实,解决大数据量运算java本身并不适合。 本人愚笨,很早之前用java解决一个大数据量运算的算法,对性能要求很高。中间用了BigDecimal,注意到其性能的一些情况,发现其性能是dou...

2011-08-28 20:06:30 2892 3

【Spring】IOC容器并发条件下,可能发生死锁

  1.背景 上周在生产环境应用启动时,发生应用频频发生死锁的现象。原因是因为spring IOC容器还未初始化完成,就有工作线程调用context.getBean()来获取容器里的对象。具体产生死锁的原因条件有:1.      应用启动的时候Main线程进行spring容器初始化。2.      ...

2011-08-28 17:07:49 572

JDK7 AIO 初体验

JDK7 AIO初体验JDK7已经release一段时间了,有个重要的新特性是AIO。今天趁闲暇,简单体验了下,简单分享如下:关于AIO的概念理解关于AIO的概念,仅谈谈个人的一点理解。可能不到位,请大家指出。Io的两个重要步骤:发起IO请求,和实际的IO操作。在unix网络编程的定义里异步和非异步概念的区别就是实际的IO操作是否是由操作系统完成。如果是就是异步...

2011-08-17 19:20:01 152

啃啃老菜:Spring IOC核心源码学习(一)

啃啃老菜:Spring IOC核心源码学习(一) 本文主要以spring ioc容器基本代码骨架为切入点,理解ioc容器的基本代码组件结构,各代码组件细节剖析将放在后面的学习文章里。关于IOC容器  IoC容器:最主要是完成了完成对象的创建和依赖的管理注入等等。先从我们自己设计这样一个视角来考虑:...

2011-08-14 13:57:28 237

如果要用java实现算法,一定慎用递归

 现象:递归是我们很经典的一种算法实现,可以很好的描述一个算法的原理!对于算法的描述、表现和代码结构理解上,递归都是不错的选择!但是本文想说的是java实现一个递归算法的时候尽量不要用递归实现,而是转换成的非递归实现。最近在实现一个比较复杂算法的时候,尝试了一下,非递归实现相比递归实现速度上能提升1/3。以下面一个简单的例子来说:(注:为了描述简单,所以这里只用一个简单...

2011-04-06 20:41:25 301

java日志,需要知道的几件事(commons-logging,log4j,slf4j,logback)

java日志,需要知道的几件事如果对于commons-loging、log4j、slf4j、LogBack等都已经非常清楚了,可以忽略本文。几次解决日志冲突问题时对这几个概念的简单总结,希望对这块基础没有理解透的同学能有所帮助,当然如果对这块有更深刻理解的同学,也贡献出自己的知识和见解。一、    概念Commons-lo...

2011-02-28 17:12:46 465

JVM问题诊断常用命令:jinfo,jmap,jstack

1.jinfo描述:输出给定java进程所有的配置信息。包括java系统属性和jvm命令行标记等。用法:jinfo [ option ] pidjinfo [ option ] executable corejinfo [ option ] [server-id@]remote-hostname-o...

2010-08-17 17:55:34 160

java 浮点数为什么精度会丢失

由于对float或double 的使用不当,可能会出现精度丢失的问题。问题大概情况可以通过如下代码理解:public class FloatDoubleTest { public static void main(String[] args) { float f = 20014999; double d = f; double...

2010-07-15 22:30:21 353

原创 一个枚举类的方法设计

public enum ActionType { A, B, C, D, E; public static boolean isWillUpdate(ActionType type) { if (A.equals(type) || B.equals(type)) { return true;...

2010-06-21 15:28:12 139

原创 Inside tomcat(二)-------Top level view

Tomcat 分为很多组件,这些组件一起协同工作。 这些组件包括: Server,Service,Connector,Engine,Host,Context,Wrapper. 这么一堆组件,看起来比较复杂,怎么去理解呢?本文主要来个top level view 。   回到我们最初的对servlet 容器的理解,一个servlet 容器最重要的功能无非就是接受http 请求,解析h...

2010-06-20 16:20:25 119

Inside tomcat(一)-------你所认识的容器是怎样的?

最近在研究tomcat容器,打算写一系列文章和大家一起分享。本文第一篇作为引子,不涉及任何tomcat的底层实现。 我们知道servlet规范:规定servlet的生命周期:init->service->doXXX-->destory()。还规定一个请求必须被封装成HttpServletRequest再由servlet的service方法来处理,并用HttpSer...

2010-06-19 21:26:25 92

java内部字符编码浅析

 java内部字符编码浅析  本周遇到一个java乱码问题,于是对java的编码问题做了一些实验和了解。简单分析如下:先看下如下代码:import java.io.UnsupportedEncodingException; public class CharSetTest { public static void main(String[] args) ...

2010-06-07 21:43:00 140

JDK反射之JDK动态proxy

JDK动态代理 JDK 动态代理是 java 反射的一个重要特性。它在某种方面为 java 提供了动态性的特性,给应用带来了无限的空间。大名鼎鼎的 Hessian 、 Spring AOP 基于动态代理实现。本文将简单的介绍 JDK 动态代理使用。   1.关于代理模式  代理模式是非常常用的一种设计模式,在我们的应用中经常被使用。一般场景是,我们有一个现成的类,它的功能比...

2010-06-07 21:27:22 122

java Enum 基本原理

Java Enum 基本原理 1. 关于 Java Enum学过 C/C++ 等语言的人,应该都对 Enum 类型略知一二。 Enum 一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用 ”==” 来替换 equals 。是一种好的习惯。 JDK1.5 之前没有 Enum 这个类型,那时候一般用接口常量来替代。...

2010-06-07 21:03:22 108

J2ME中文指南(J2ME的中文教程,介绍了相关API)

该电子书介绍了JavaME的基本知识和API,适合于各种使用该平台进行嵌入式开发的人员!做手机游戏、机顶盒应用等可以参考借鉴该文档!

2009-03-10

JSTL标签帮助文档

JSTL的帮助文档,详细介绍了JSTL的各种标签库的使用和功能,适合于所有的JavaWeb开发人员!

2009-03-10

空空如也

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

TA关注的人

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