<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[abing37的专栏]]></title><description><![CDATA[融会贯通，永无止境！一起寻找技术之美！]]></description><link>https://blog.csdn.net/abing37</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; abing37]]></copyright><item><title><![CDATA[【ruby】ruby实践之实现文件检索小工具]]></title><link>https://blog.csdn.net/abing37/article/details/84369787</link><guid>https://blog.csdn.net/abing37/article/details/84369787</guid><author>abing37</author><pubDate>Wed, 19 Dec 2012 14:14:59 +0800</pubDate><description><![CDATA[ 
ruby学习进入实践阶段。花了点时间用ruby实现了一个文件检索功能。小工具没什么好去说的，主要是本人通过这个熟悉ruby的一些api。
 
需求：根据输入的关键字在指定的目录下，搜索指定格式的文件。返回文件名或文件内容包含该关键子的文件列表。
 
输入：关键字 keyword，指定目录 path,文件格式 filepattern
输出：文件名或文件内容包含keyword的文件列表...]]></description><category></category></item><item><title><![CDATA[【ruby】ruby对象模型]]></title><link>https://blog.csdn.net/abing37/article/details/84361192</link><guid>https://blog.csdn.net/abing37/article/details/84361192</guid><author>abing37</author><pubDate>Tue, 27 Nov 2012 10:18:53 +0800</pubDate><description><![CDATA[学习ruby，最基础的是理解ruby的对象模型，经过这几天抽空学习，大致总结了下。
 
先看一下代码示例
 
class Bird
	@@legs=2
	
	def eat
	   puts &quot;i am eating&quot;
	end

	def comefrom(location)
	   @birthplace=location
	   puts &quot;i am come fr...]]></description><category></category></item><item><title><![CDATA[【ruby】ruby 动态方法总结]]></title><link>https://blog.csdn.net/abing37/article/details/84291269</link><guid>https://blog.csdn.net/abing37/article/details/84291269</guid><author>abing37</author><pubDate>Tue, 18 Sep 2012 11:07:50 +0800</pubDate><description><![CDATA[本文对ruby动态方法特性进行探讨。
结合以下例子：
 
#dynamic methods
class Dynamic
   def a
     puts &quot;this is method a&quot;
   end
   def b(bob)
     puts &quot;this is method b:#{bob}&quot;
   end
   def c
     puts &quot;this i...]]></description><category></category></item><item><title><![CDATA[【ruby】ruby语言的几个特性总结]]></title><link>https://blog.csdn.net/abing37/article/details/84289144</link><guid>https://blog.csdn.net/abing37/article/details/84289144</guid><author>abing37</author><pubDate>Thu, 13 Sep 2012 16:16:23 +0800</pubDate><description><![CDATA[最近在学习ruby，我觉得学习一门语言要先了解语言的基本特性，然后再深入语法、细节特性等。
所以先从ruby语言的特性入手，结合例子简单总结了几点，才真正开始学没多久，绝对不全面，还需后续的学习再补充。
 
 
1.纯面向对象的

在ruby世界里所有的都是对象，包括方法、类、模块。也包括字符、数字、bool等基本类型。
如 
3.times { puts &quot;Hi!&quot; }  #完成...]]></description><category></category></item><item><title><![CDATA[【总结】近期的几点技术心得总结]]></title><link>https://blog.csdn.net/abing37/article/details/84286248</link><guid>https://blog.csdn.net/abing37/article/details/84286248</guid><author>abing37</author><pubDate>Sun, 09 Sep 2012 09:29:15 +0800</pubDate><description><![CDATA[ 
近期做了好长时间的项目，很久没写文档了，这次的项目很难得的自己做了很多的技术方案，且以前有些不一样，现成直接可用方案并没有。 今天闲来总结几点：
 
1.技术方案大部分从应用场景出来的
技术方案是为了解决一个现成的问题。一个现成的很好的方案，可能在实施成本、冲突方面和项目不符。针对当前的场景也许一个现成的方案可行，但并不一定是最合适的。
 
2.新的技术方案往往面临需要不断修正
...]]></description><category></category></item><item><title><![CDATA[【web】跨域cookie同步方案]]></title><link>https://blog.csdn.net/abing37/article/details/84211625</link><guid>https://blog.csdn.net/abing37/article/details/84211625</guid><author>abing37</author><pubDate>Mon, 30 Apr 2012 22:58:13 +0800</pubDate><description><![CDATA[最近因为项目，需要了解在不同的域名下，同步登陆状态等cookie。
于是兄弟公司那了解了一种跨域同步cookie的方案。
 
场景：
有时一个公司可能有多个不同域名的网站，比如sina.com和weibo.cn,比如taobao.com和tmall.com。
这些网站背后很多是同一套会员体系。由于http协议规定cookie是跟着域名走的，这时就需要在不同的域名下同步登陆状态，避免出现用...]]></description><category></category></item><item><title><![CDATA[【java规范】Java spi机制浅谈]]></title><link>https://blog.csdn.net/abing37/article/details/84209008</link><guid>https://blog.csdn.net/abing37/article/details/84209008</guid><author>abing37</author><pubDate>Tue, 24 Apr 2012 23:04:35 +0800</pubDate><description><![CDATA[最近看到公司的一些框架和之前看到的开源的一些框架的一些服务发现和接入都采用了java的spi机制。
所以简单的总结下java spi机制的思想。
 
我们系统里抽象的各个模块，往往有很多不同的实现方案，比如日志模块的方案，xml解析模块、jdbc模块的方案等。面向的对象的设计里，我们一般推荐模块之间基于接口编程，模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类，就违反了可拔插的原则，...]]></description><category></category></item><item><title><![CDATA[Xml ResourceBundle简单实现]]></title><link>https://blog.csdn.net/abing37/article/details/84188317</link><guid>https://blog.csdn.net/abing37/article/details/84188317</guid><author>abing37</author><pubDate>Tue, 17 Apr 2012 21:45:04 +0800</pubDate><description><![CDATA[ResourceBundle主要是用于和本地语言环境相关的一些资源绑定。特别是String资源。
从国际化的设计角度看，一般在代码里不编写和语言环境相关的东西。比如在代码里编写和语言环境相关的错误提示或信息。
以下面枚举为例：
public enum WeekdayEnum {
    Monday, Tuesday, Wednesday, Thursday, Friday, Saturd...]]></description><category></category></item><item><title><![CDATA[【shell】串行执行批量任务脚本]]></title><link>https://blog.csdn.net/abing37/article/details/84181126</link><guid>https://blog.csdn.net/abing37/article/details/84181126</guid><author>abing37</author><pubDate>Fri, 06 Apr 2012 09:18:48 +0800</pubDate><description><![CDATA[前阵放假时候，帮人跑实验，需要在一台服务器上跑一堆java实验程序。
为了实验结果的公正性，要保证每次只跑一个实验，也就是需要串行的跑完所有java程序。
刚开始的时候，我每跑一个程序，隔一段时间去服务器上检查一下是否跑完，需要时时留意，实在有点不爽，人也不能走开。
于是写了个shell脚本：串行的去执行一批java程序任务列表。
过程如下：
1.新建任务列表

以实验为例的task...]]></description><category></category></item><item><title><![CDATA[【maven】多子模块maven模板工程archetype创建过程]]></title><link>https://blog.csdn.net/abing37/article/details/84179961</link><guid>https://blog.csdn.net/abing37/article/details/84179961</guid><author>abing37</author><pubDate>Mon, 02 Apr 2012 20:55:11 +0800</pubDate><description><![CDATA[最近项目里需要创建一个多模块(子工程)的模板项目，所以研究了一下maven的archetype plugin。
创建了一个包含多个子模块工程的项目模板。记录下过程。
 
 
一个模板工程任务就是创建一个或多个默认的工程，并为每个工程填充好默认的一些文件和配置。同时要抽象出生成的工程需要的一些属性，做到这些属性可动态配置。

在maven里通过定制的archetype来生成项目模板。ma...]]></description><category></category></item><item><title><![CDATA[【vim】我的vim常用命令总结]]></title><link>https://blog.csdn.net/abing37/article/details/84170400</link><guid>https://blog.csdn.net/abing37/article/details/84170400</guid><author>abing37</author><pubDate>Sun, 18 Mar 2012 09:44:51 +0800</pubDate><description><![CDATA[vim是linux下的开发利器，相信很多人都感受到了他的强大。
作为一款强大的编辑器，本人用得也蛮多的，不过不能算非常的精通。平时偶尔有些用法忘记了还得去查查。
以下是本人总结平常用得最多的几个，记录一下：
 
普通模式：

j：上移  5j上移5行
k：下移 5k下移5行
G：到文档的最后一行
nG:到第n行
gg: 到文档的第一行
h：左移，5h，左移5字符。
l：右移...]]></description><category></category></item><item><title><![CDATA[【java基础】如何设计java应用程序的平滑停止]]></title><link>https://blog.csdn.net/abing37/article/details/84163567</link><guid>https://blog.csdn.net/abing37/article/details/84163567</guid><author>abing37</author><pubDate>Mon, 05 Mar 2012 23:44:30 +0800</pubDate><description><![CDATA[java应用程序退出的触发机制有：
1.自动结束：应用没有存活线程或只有后台线程时；
2.System.exit(0);
3.kill 或 ctrl+C；
4.kill -9 强制退出；
 

如何做到应用程序平滑停止


程序的退出就像关机一样，我们希望关机时平滑关机，保证所有应用程序的数据都保存了。就像现在在写得blog，希望关机的时候能被保存好到草稿箱里。
我们的的jav...]]></description><category></category></item><item><title><![CDATA[【java并发】juc  Executor框架详解]]></title><link>https://blog.csdn.net/abing37/article/details/84158941</link><guid>https://blog.csdn.net/abing37/article/details/84158941</guid><author>abing37</author><pubDate>Sun, 26 Feb 2012 13:55:32 +0800</pubDate><description><![CDATA[Executor
框架是
juc
里提供的线程池的实现。前两天看了下
Executor
框架的一些源码，做个简单的总结。

线程池大概的思路是维护一个的线程池用于执行提交的任务。我理解池的技术的主要意义有两个：

1.  


资源的控制，如并发量限制。像连接池这种是对数据库资源的保护。

2.  


资源的有效利用，如线程复用，避免频繁创建线程和线程上下文切换...]]></description><category></category></item><item><title><![CDATA[【java并发】juc高级锁机制探讨]]></title><link>https://blog.csdn.net/abing37/article/details/84157334</link><guid>https://blog.csdn.net/abing37/article/details/84157334</guid><author>abing37</author><pubDate>Thu, 23 Feb 2012 00:52:45 +0800</pubDate><description><![CDATA[ 
 


最近在看一些juc相关的设计和源码，接上文
：【java并发】基于JUC CAS原理,自己实现简单独占锁



本文探讨一下juc里面提供的一些高级锁机制和基本原理。

 
JUC高级锁机制简介
Juc
提供了高级锁的一些特性和应用，如：

ReentrantLock

：和
synchronized
具有差不多的语义，独占锁，同时只有一个线程能...]]></description><category></category></item><item><title><![CDATA[【java并发】基于JUC CAS原理,自己实现简单独占锁]]></title><link>https://blog.csdn.net/abing37/article/details/84153007</link><guid>https://blog.csdn.net/abing37/article/details/84153007</guid><author>abing37</author><pubDate>Tue, 14 Feb 2012 13:47:56 +0800</pubDate><description><![CDATA[synchronized的基本原理回顾
在jvm内部，所有对象都含有单一的锁，jvm负责跟踪监视被加锁次数,叫做对象监视器。当线程第一次给对象加锁的时候，计数器会加1，离开时会减1.同样任务是可重入的，每次重入也是加1，离开减1.  
synchronized是独占式的，拿到对象锁才能继续，没有获取到锁就会阻塞。
JUC CAS乐观锁基本原理
synchronized就是一种独占锁，会导致...]]></description><category></category></item><item><title><![CDATA[[NoSQL]MongoDB初体验]]></title><link>https://blog.csdn.net/abing37/article/details/84124945</link><guid>https://blog.csdn.net/abing37/article/details/84124945</guid><author>abing37</author><pubDate>Thu, 05 Jan 2012 16:06:34 +0800</pubDate><description><![CDATA[因为未来业务发展的一个需求里的，考虑要用到NoSql，所以做了一些预研。今天简单体验了下mongdb，感觉挺合适的，有点热血沸腾。简单记录下mongoDB的一些初体验。
mongoDB的特性有哪些？以下是官网的定义：
MongoDB (from &quot;humongo
us&quot;) is a scalable,
    high-performance, open source
 NoSQL da...]]></description><category></category></item><item><title><![CDATA[【JDBC,数据库】Oracle date和timestamp类型混用时需要注意的索引失效问题]]></title><link>https://blog.csdn.net/abing37/article/details/84114684</link><guid>https://blog.csdn.net/abing37/article/details/84114684</guid><author>abing37</author><pubDate>Wed, 14 Dec 2011 15:27:47 +0800</pubDate><description><![CDATA[1.关于 Oracle date和timestamp类型
Date
：只能精确到秒。TimeStamp：可以
精确到微秒。
关于具体类型不过多介绍。可以参考：
http://www.databasejournal.com/features/oracle/article.php/2234501/A-Comparison-of-Oracles-DATE-and-TIMESTAMP-Datat...]]></description><category></category></item><item><title><![CDATA[【JVM】HotSpot JVM内存管理和GC策略总结]]></title><link>https://blog.csdn.net/abing37/article/details/84114294</link><guid>https://blog.csdn.net/abing37/article/details/84114294</guid><author>abing37</author><pubDate>Tue, 13 Dec 2011 22:05:48 +0800</pubDate><description><![CDATA[JVM的相关知识是学习java高级特性必须要去深入学习的。平时也有一些学习和实践，不过总结比较少。
今天有时间总结一下最基础的内存模型和GC策略的知识，在此记录一下。
 
hotspot jvm内存模型
1.内存模型
hotspot的内存模型很多地方都有类似总结,我也简单总结了一下，大概可以用下图表示：

 关于几个分区的描述定义
1.线程栈：线程创建是会为每个线程创建一个线程栈，...]]></description><category></category></item><item><title><![CDATA[【性能】JDBC PreparedStatement和连接池PreparedStatement Cache学习记录]]></title><link>https://blog.csdn.net/abing37/article/details/84096663</link><guid>https://blog.csdn.net/abing37/article/details/84096663</guid><author>abing37</author><pubDate>Thu, 08 Dec 2011 17:20:32 +0800</pubDate><description><![CDATA[之前看JDBC规范的时候对PreparedStatement只是简单的知道会进行sql预编译，能提高性能。具体原理也没怎么理解。
最近在性能测试遇到一个连接池的调优刚好是和PreparedStatement和PreparedStatementCache相关的。固重新系统的看了点资料学习了点，简单记录一下。
 

1.java.sql.PreparedStatement 
首先看wiki对使...]]></description><category></category></item><item><title><![CDATA[32位机器下的一个java.lang.OutOfMemoryError错误分析]]></title><link>https://blog.csdn.net/abing37/article/details/84048671</link><guid>https://blog.csdn.net/abing37/article/details/84048671</guid><author>abing37</author><pubDate>Mon, 17 Oct 2011 11:19:17 +0800</pubDate><description><![CDATA[
昨天在本人windows机器(32位的 )上调试一个代码的时候报了一个如下错误
java.lang.OutOfMemoryError: unable to create new native thread
 
第一眼看上去是OOM，有点傻眼，因为我的内存启动参数是“-Xms1024m -Xmx1024m -Xss45m”，而我很清楚这个代码大概的内存消耗。奇怪的是进程还没退出，于是打开v...]]></description><category></category></item></channel></rss>