<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[aigoleague的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/aigoleague</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; aigoleague]]></copyright><item><title><![CDATA[Log4思想]]></title><link>https://blog.csdn.net/aigoleague/article/details/11203483</link><guid>https://blog.csdn.net/aigoleague/article/details/11203483</guid><author>aigoleague</author><pubDate>Fri, 06 Sep 2013 11:19:45 +0800</pubDate><description><![CDATA[from http://wenwen.soso.com/z/q155536878.htm

Log4j的主要思想

Log4j真的很简单，简单到令人发指的地步。不是要记录日志吗？那就给你一个Log，然后你用Log来写东西就行了，先来一个完整类示例：

packagetest;

importorg.apache.commons.logging.Log;
importorg.apa]]></description><category></category></item><item><title><![CDATA[zookeeper是什么]]></title><link>https://blog.csdn.net/aigoleague/article/details/11176097</link><guid>https://blog.csdn.net/aigoleague/article/details/11176097</guid><author>aigoleague</author><pubDate>Thu, 05 Sep 2013 19:40:18 +0800</pubDate><description><![CDATA[from http://ronghao.iteye.com/blog/1461798


一、            zookeeper是什么

官方说辞：Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目，它主要是用来解决分布式应用中经常遇到的一些数据管理问题，如：统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。

好抽象，我们改变一下方式]]></description><category></category></item><item><title><![CDATA[Java优化-StringBuilder类]]></title><link>https://blog.csdn.net/aigoleague/article/details/11128773</link><guid>https://blog.csdn.net/aigoleague/article/details/11128773</guid><author>aigoleague</author><pubDate>Thu, 05 Sep 2013 13:36:54 +0800</pubDate><description><![CDATA[from http://developer.51cto.com/art/200906/132698.htm


字符串连接可以通过两种方法实现，其中一种是在Java中提供的一个StringBuilder类（这个类只在J2SE5及以上版本提供，以前的版本使用StringBuffer类）。

字符串是Java程序中最常用的一种数据结构之一。在Java中的String类已经重载的"+"。也就是]]></description><category></category></item><item><title><![CDATA[网络广告计费方式]]></title><link>https://blog.csdn.net/aigoleague/article/details/11128599</link><guid>https://blog.csdn.net/aigoleague/article/details/11128599</guid><author>aigoleague</author><pubDate>Thu, 05 Sep 2013 13:33:10 +0800</pubDate><description><![CDATA[from http://news.xinhuanet.com/internet/2007-02/26/content_5772512.htm

 一个网络媒体（网站）会包含有数十个甚至成千上万个页面，网络广告所投放的位置和价格就牵涉到特定的页面以及浏览人数的多寡。这好比平面媒体（如报纸）的“版位”、“发行量”，或者电波媒体（如电视）的“时段”、“收视率”的概念。
    1.CPM（Cost]]></description><category></category></item><item><title><![CDATA[spring - constructor-arg 的使用]]></title><link>https://blog.csdn.net/aigoleague/article/details/10473113</link><guid>https://blog.csdn.net/aigoleague/article/details/10473113</guid><author>aigoleague</author><pubDate>Wed, 28 Aug 2013 21:00:23 +0800</pubDate><description><![CDATA[from http://hi.baidu.com/at87958208/item/dbd64575259291460d0a0724

 Spring使用spring-beans.dtd文件来定义BeanFactory的XML配置规范。可以在http://www.springframework.org/dtd/spring-beans.dtd找到该dtd文件，当然，Spring的下载文件中也已经]]></description><category></category></item><item><title><![CDATA[JAVA注解]]></title><link>https://blog.csdn.net/aigoleague/article/details/10416331</link><guid>https://blog.csdn.net/aigoleague/article/details/10416331</guid><author>aigoleague</author><pubDate>Tue, 27 Aug 2013 20:46:36 +0800</pubDate><description><![CDATA[from http://blog.csdn.net/rj042/article/details/6399965

  本文介绍J2SE5.0中的新特性之一：注解。
一、什么是注解
    说起注解，得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说，元数据是描述数据的。就象数据表中的字段一样，每个字段描述了这个字段下的数据的含义。而J2SE5.0中提供的注解就是]]></description><category></category></item><item><title><![CDATA[Eclipse快捷键组合]]></title><link>https://blog.csdn.net/aigoleague/article/details/10364259</link><guid>https://blog.csdn.net/aigoleague/article/details/10364259</guid><author>aigoleague</author><pubDate>Mon, 26 Aug 2013 21:42:27 +0800</pubDate><description><![CDATA[转载源


选中了几行记录，按住ALT，加上光标，可以将选中的行上下移动。

一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码，使得整体的开发效率和质量得到提升。

    1. ctrl+shift+r：打开资源

    这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件，而你]]></description><category></category></item><item><title><![CDATA[Java中的Enum的使用与分析]]></title><link>https://blog.csdn.net/aigoleague/article/details/10363627</link><guid>https://blog.csdn.net/aigoleague/article/details/10363627</guid><author>aigoleague</author><pubDate>Mon, 26 Aug 2013 21:09:20 +0800</pubDate><description><![CDATA[示例：

public enum EnumTest {
     FRANK("The given name of me"),
     LIU("The family name of me");
     private String context;
     private String getContext(){
     return this.context;]]></description><category></category></item><item><title><![CDATA[ubuntu的apt-get下载慢]]></title><link>https://blog.csdn.net/aigoleague/article/details/10251897</link><guid>https://blog.csdn.net/aigoleague/article/details/10251897</guid><author>aigoleague</author><pubDate>Sat, 24 Aug 2013 10:00:26 +0800</pubDate><description><![CDATA[from: http://www.ha97.com/4950.html

用apt-get下载只有几百B/s,实在无法忍受，查了下，才发现是源的原因，下面的源是前辈找出来的，速度快多了，感谢ing
1、修改源地址：

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vi /etc/apt/sources.list]]></description><category></category></item><item><title><![CDATA[autoload机制概述]]></title><link>https://blog.csdn.net/aigoleague/article/details/9344141</link><guid>https://blog.csdn.net/aigoleague/article/details/9344141</guid><author>aigoleague</author><pubDate>Tue, 16 Jul 2013 16:14:12 +0800</pubDate><description><![CDATA[在使用PHP的OO模式开发系统时，通常大家习惯上将每个类的实现都存放在一个单独的文件里，这样会很容易实现对类进行复用，同时将来维护时也很便利。这也是OO设计的基本思想之一。在PHP5之前，如果需要使用一个类，只需要直接使用include/require将其包含进来即可。下面是一个实际的例子：

/* Person.class.php */

 class Person {
  var $]]></description><category></category></item><item><title><![CDATA[C++的#和##]]></title><link>https://blog.csdn.net/aigoleague/article/details/8720593</link><guid>https://blog.csdn.net/aigoleague/article/details/8720593</guid><author>aigoleague</author><pubDate>Tue, 26 Mar 2013 10:37:08 +0800</pubDate><description><![CDATA[# 和 ## 操作符是和#define宏使用的. 使用# 使在#后的首个参数返回为一个带引号的字符串. 例如, 命令 
#define to_string( s ) # s
将会使编译器把以下命令 
cout 
理解为 
cout 
使用##连结##前后的内容. 例如, 命令 
#define concatenate( x, y ) x ## y
...
int xy = 10;]]></description><category></category></item><item><title><![CDATA[C++异常机制]]></title><link>https://blog.csdn.net/aigoleague/article/details/8719530</link><guid>https://blog.csdn.net/aigoleague/article/details/8719530</guid><author>aigoleague</author><pubDate>Mon, 25 Mar 2013 23:08:48 +0800</pubDate><description><![CDATA[一、 概述
C++自身有着非常强的纠错能力，发展到如今，已经建立了比较完善的异常处理机制。C++的异常情况无非两种，一种是语法错误，即程序中出现了错误的语句，函数，结构和类，致使编译程序无法进行。另一种是运行时发生的错误，一般与算法有关。
关于语法错误，写代码时心细一点就可以解决。C++编译器的报错机制可以让我们轻松地解决这些错误。
第二种是运行时的错误，常见的有文件打开失败、数组下标溢出、]]></description><category></category></item><item><title><![CDATA[关于set_new_handler]]></title><link>https://blog.csdn.net/aigoleague/article/details/8719475</link><guid>https://blog.csdn.net/aigoleague/article/details/8719475</guid><author>aigoleague</author><pubDate>Mon, 25 Mar 2013 22:51:23 +0800</pubDate><description><![CDATA[当运算符new找不到足够大的连续内存块来为对象分配内存时将会发生什么？一个称为 new-handler的函数被调用。
对于new-handler的缺省动作是抛出一个异常。然而，如果我们在程序里用堆分配，至少要用“内存已用完”的信息代替 new-handler，并异常中断程序。用这个办法，在调试程序时会得到程序出错的线索。
通过包含NEW. H，然后以我们想装入的函数地址为参数调用set_new]]></description><category></category></item><item><title><![CDATA[boost智能指针]]></title><link>https://blog.csdn.net/aigoleague/article/details/8719461</link><guid>https://blog.csdn.net/aigoleague/article/details/8719461</guid><author>aigoleague</author><pubDate>Mon, 25 Mar 2013 22:50:29 +0800</pubDate><description><![CDATA[boost::scoped_ptr和std::auto_ptr非常类似，是一个简单的智能指针，它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用：

#include 
#include 
#include 

class implementation
{
public:
    ~implementation() { std::cout 
    void]]></description><category></category></item><item><title><![CDATA[编写php扩展]]></title><link>https://blog.csdn.net/aigoleague/article/details/8717085</link><guid>https://blog.csdn.net/aigoleague/article/details/8717085</guid><author>aigoleague</author><pubDate>Mon, 25 Mar 2013 15:14:30 +0800</pubDate><description><![CDATA[翻译：taft@wjl.cn 最后修改日期 2006/1/19 WJL Studio @ wjl.cn 2006
简 介
PHP取得成功的一个主要原因之一是她拥有大量的可用扩展。web开发者无论有何种需求，这种需求最有可能在PHP发行包里找到。PHP发行包包括支持各种数据库，图形文件格式，压缩，XML技术扩展在内的许多扩展。
       扩展API的引入使PHP3取得了巨大的进展，扩展AP]]></description><category></category></item><item><title><![CDATA[linux中文件描述符fd和文件指针flip的理解]]></title><link>https://blog.csdn.net/aigoleague/article/details/8659049</link><guid>https://blog.csdn.net/aigoleague/article/details/8659049</guid><author>aigoleague</author><pubDate>Mon, 11 Mar 2013 13:41:03 +0800</pubDate><description><![CDATA[[from]http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html

简单归纳：fd只是一个整数，在open时产生。起到一个索引的作用，进程通过PCB中的文件描述符表找到该fd所指向的文件指针filp。
文件描述符的操作(如: open)返回的是一个文件描述符,内核会在每个进程空间中维护一个文件描述符表, 所有打开的文件都将通]]></description><category></category></item><item><title><![CDATA[算法题目]]></title><link>https://blog.csdn.net/aigoleague/article/details/8626985</link><guid>https://blog.csdn.net/aigoleague/article/details/8626985</guid><author>aigoleague</author><pubDate>Fri, 01 Mar 2013 17:18:04 +0800</pubDate><description><![CDATA[给你一个数组A[1..n]，请你在O(n)的时间里构造一个新的数组B[1..n]，使得B[i]=A[1]*A[2]*...*A[n]/A[i]。不能使用除法运算。

问题的关键在于不能使用除法运算。。。只能用乘法。。
B[i]=A[1]*A[2]*...*A[n]/A[i]=A[1]*A[2]*...*A[i-1]*A[i+1]*...*A[n]
分解开来，也就是分别计算
A[1]*A[]]></description><category></category></item><item><title><![CDATA[一致性hash算法]]></title><link>https://blog.csdn.net/aigoleague/article/details/8622734</link><guid>https://blog.csdn.net/aigoleague/article/details/8622734</guid><author>aigoleague</author><pubDate>Thu, 28 Feb 2013 16:34:05 +0800</pubDate><description><![CDATA[from http://blog.csdn.net/sparkliang/article/details/5279393?reload

一致性hash算法（consistenthashing）
consistent hashing算法早在1997年就在论文Consistenthashing and random trees中被提出，目前在cache系统中应用越来越广泛；
1基本场景
比]]></description><category></category></item><item><title><![CDATA[指针函数与函数指针的区别]]></title><link>https://blog.csdn.net/aigoleague/article/details/8622665</link><guid>https://blog.csdn.net/aigoleague/article/details/8622665</guid><author>aigoleague</author><pubDate>Thu, 28 Feb 2013 16:29:49 +0800</pubDate><description><![CDATA[一、指针函数：指返回值是指针的函数
     类型标识符    *函数名(参数表)
      int *f(x，y);
首先它是一个函数，只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受，也就是说，指针函数一定有函数返回值，而且，在主调函数中，函数返回值必须赋给同类型的指针变量。
注意指针函数与函数指针表示方法的不同，千万不要混淆。最简单的辨别方式就是看函数名前]]></description><category></category></item><item><title><![CDATA[以太网原理与最小帧长（傻瓜版）]]></title><link>https://blog.csdn.net/aigoleague/article/details/8621245</link><guid>https://blog.csdn.net/aigoleague/article/details/8621245</guid><author>aigoleague</author><pubDate>Thu, 28 Feb 2013 11:32:44 +0800</pubDate><description><![CDATA[熟悉了最小帧长，可以说就明白了为什么基于CSMA/CD协议的以太网有网段长度限制，同时也掌握了以太网的精髓。
在这之前，我们应该先了解一下CSMA/CD协议。
      什么是CSMA/CD协议(载波侦听多路访问/冲突检测协议)？一个房间有很多人，如果同时说话，就谁也听不清楚别人说什么，于是大家约定了一个机制：每个人在说话之前先听一下有没有其他人说话(载波侦听)，如果有，自己就先不说话，如果]]></description><category></category></item></channel></rss>