<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cangchen的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cangchen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cangchen]]></copyright><item><title><![CDATA[百度爱番番实时CDP平台架构实践]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/123108404</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/123108404</guid><author>cangchen</author><pubDate>Thu, 24 Feb 2022 11:43:31 +0800</pubDate><description><![CDATA[随着营销3.0时代的到来，企业愈发需要依托强大CDP能力解决其严重的数据孤岛问题，帮助企业加温线索、促活客户。但什么是CDP、好的CDP应该具备哪些关键特征？本文在回答此问题的同时，详细讲述了爱番番租户级实时CDP建设实践，既有先进架构目标下的组件选择，也有平台架构、核心模块关键实现的介绍。]]></description><category></category></item><item><title><![CDATA[【Dubbo之基本配置和运行（1）】zookeeper安装]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/46745363</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/46745363</guid><author>cangchen</author><pubDate>Fri, 03 Jul 2015 20:12:30 +0800</pubDate><description><![CDATA[转：http://blog.youkuaiyun.com/lin_fs/article/details/7395307

zookeeper是需要安装的，dubbo直接使用jar就可以了


http://zookeeper.apache.org/ 官网下载，然后安装




dubbo是阿里的一个开源soa框架，详细介绍http://code.alibabatech.com/wiki/d]]></description><category></category></item><item><title><![CDATA[【Dubbo之基本配置和运行（2）】Dubbo zookeeper基本配置和运行]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/46745311</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/46745311</guid><author>cangchen</author><pubDate>Fri, 03 Jul 2015 20:07:11 +0800</pubDate><description><![CDATA[转：http://blog.youkuaiyun.com/u011270461/article/details/12144623

建议参考资料：



http://blog.youkuaiyun.com/lin_fs/article/details/7395307

http://blog.youkuaiyun.com/goliathray/article/details/8565801

http://zy]]></description><category></category></item><item><title><![CDATA[【Spring之配置propertie资源文件】Maven整合spring profiles功能配置propertie资源文件更灵活、简单]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/46745275</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/46745275</guid><author>cangchen</author><pubDate>Fri, 03 Jul 2015 20:02:14 +0800</pubDate><description><![CDATA[spring 框架的xml文件如何读取properties文件数据

第一步：在spring配置文件中

  注意：value可以多配置几个properties文件

<bean id="propertyConfigurer"
              class="org.springframework.beans.factory.config.PropertyPlaceholde]]></description><category></category></item><item><title><![CDATA[【Java基础之重写equals、hashCode和compareTo方法】什么时候需要重写重写equals方法？为什么重写equals方法，一定要重写HashCode方法？]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/46742063</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/46742063</guid><author>cangchen</author><pubDate>Fri, 03 Jul 2015 15:16:21 +0800</pubDate><description><![CDATA[1.何时需要重写equals()
当一个类有自己特有的“逻辑相等”概念（不同于对象身份的概念）。
2.设计equals()
[1]使用instanceof操作符检查“实参是否为正确的类型”。
[2]对于类中的每一个“关键域”，检查实参中的域与当前对象中对应的域值。
[2.1]对于非float和double类型的原语类型域，使用==比较；
[2.2]对于对象引用域，递归调用equals方]]></description><category></category></item><item><title><![CDATA[【SpringMVC之配置文件（一）】spring 里面的ApplicationContext.xml 和 xxx-servlet.xml分别的作用是什么？]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/46741409</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/46741409</guid><author>cangchen</author><pubDate>Fri, 03 Jul 2015 14:37:12 +0800</pubDate><description><![CDATA[ApplicationContext.xml  是spring
 全局配置文件，用来控制spring 特性的、比如：aop,sessionFactory

xxx-servlet.xml 是spring
 mvc里面的，控制器、拦截uri转发view
注：
（1）如果直接使用SpringMVC是可以不添加applicationContext.xml文件的。
只需要把所有相关配置放到x]]></description><category></category></item><item><title><![CDATA[【SpringMVC之FreeMark（二）】FreeMark指令使用教程]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/46727947</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/46727947</guid><author>cangchen</author><pubDate>Thu, 02 Jul 2015 16:15:19 +0800</pubDate><description><![CDATA[freemarker学习笔记--指令参考


一：if指令：
condition>
...
condition2>
...
condition3>
...
...

...


二：switch
value>
refValue1>
...

refValue2>
...

...
refValueN>
...


...


三：lis]]></description><category></category></item><item><title><![CDATA[【SpringMVC之FreeMark（一）】spring mvc中使用freemark的方法]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/46727597</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/46727597</guid><author>cangchen</author><pubDate>Thu, 02 Jul 2015 15:59:27 +0800</pubDate><description><![CDATA[jsp的第一次运行,就要运行servlet,如果开发时频繁的修改jsp,会导致开发速度比较慢;(每改一次,要重新编译一次);

编译过后,模板的速度也要比jsp快.

具体的freemark页面上的使用:见http://blog.youkuaiyun.com/nengyu/article/details/6829244

最近做的项目中要在spring mvc中实现freemark 加载html模]]></description><category></category></item><item><title><![CDATA[【MySQL之查询】***重要***数据库查询优化经验总结]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/45673223</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/45673223</guid><author>cangchen</author><pubDate>Tue, 12 May 2015 18:33:29 +0800</pubDate><description><![CDATA[优化数据库的注意事项：

1、关键字段建立索引。

2、使用存储过程，它使SQL变得更加灵活和高效。

3、备份数据库和清除垃圾数据。

4、SQL语句语法的优化。（可以用Sybase的SQL Expert，可惜我没找到unexpired的序列号）

5、清理删除日志。

SQL语句优化的基本原则：

1.查询的模糊匹配


尽量避免在一个复杂查询里面使用 LIK]]></description><category></category></item><item><title><![CDATA[【MySQL之设计表（二）】一个典型的数据库设计问题]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/45673015</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/45673015</guid><author>cangchen</author><pubDate>Tue, 12 May 2015 18:13:02 +0800</pubDate><description><![CDATA[假如我有好多间房屋，每个房屋需要收不同的费用，如管理费、网费、电费、水费...等。但是每间房屋的收费标准和收费项目都不一样。而且，很有可能以后还会增加其它费用。有的要收网费，有的不需要收网费。怎样设计数据库？




我有两个方案，

第一个方案是把所有的费用都设一个列，并且增加很多个预留字段

不足之处：要有很多个列，并且有很多个预留字段，表太长。




房屋收费表]]></description><category></category></item><item><title><![CDATA[【MySQL之设计表（一）】**重要***MySQL数据库表设计中的注意事项]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/45672643</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/45672643</guid><author>cangchen</author><pubDate>Tue, 12 May 2015 17:45:11 +0800</pubDate><description><![CDATA[一、设计原则

1.选择优化的数据类型

MySQL支持很多种不同的数据类型，并且选择正确的数据类型对于获得高性能至关重要。不管选择何种类型，下面的简单原则都会有助于做出更好的选择：

(1).更小通常更好

一般来说，要试着使用正确地存储和表示数据的最小类型。更小的数据类型通常更快，因为它们使用了更少的磁盘空间、内存和CPU缓存，而且需要的CPU周期也更少。

但是要确保不人]]></description><category></category></item><item><title><![CDATA[【MySQL之字段类型（一）】MySQL中char和varchar的区别，以及varchar最大长度是多少？]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/45672259</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/45672259</guid><author>cangchen</author><pubDate>Tue, 12 May 2015 17:21:55 +0800</pubDate><description><![CDATA[一. varchar存储规则：

4.0版本以下，varchar(20)，指的是20字节，如果存放UTF8汉字时，只能存6个（每个汉字3字节） 
5.0版本以上，varchar(20)，指的是20字符，无论存放的是数字、字母还是UTF8汉字（每个汉字3字节），都可以存放20个，最大大小是65532字节 
Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同。]]></description><category></category></item><item><title><![CDATA[【SQL之SQL语句】操作MySQL数据库的dateTime类型，存储和获取完整时间字符串的方法]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/45603883</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/45603883</guid><author>cangchen</author><pubDate>Sat, 09 May 2015 19:33:03 +0800</pubDate><description><![CDATA[1、插入：
（1）获取特定格式的时间类型：
java.util.Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));//获取系统时间
（2）插入数据库：
其实向mysql数据库里插入时间字段也是]]></description><category></category></item><item><title><![CDATA[【Java之多线程（二）】（***重要***）Java多线程中常见方法的区别，如object.wait()和Thread.sleep()的区别等]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/45198069</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/45198069</guid><author>cangchen</author><pubDate>Wed, 22 Apr 2015 17:34:43 +0800</pubDate><description><![CDATA[1、Java中Thread和Runnable的区别？？？


区别：

在程序开发中只要是多线程肯定永远以实现Runnable接口为主，因为实现Runnable接口相比继承Thread类有如下好处：


避免点继承的局限，一个类可以继承多个接口。
适合于资源的共享

联系：

public class Thread extends Object implements Ru]]></description><category></category></item><item><title><![CDATA[【Java之多线程（一）】java中的多线程总结]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/45198007</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/45198007</guid><author>cangchen</author><pubDate>Wed, 22 Apr 2015 17:29:33 +0800</pubDate><description><![CDATA[java中的多线程
在java中要想实现多线程，有两种手段，一种是继续Thread类，另外一种是实现Runable接口。
对于直接继承Thread的类来说，代码大致框架是：






1
2
3
4
5
6
7
8
9
10
11
12



class 类名 extends Thread{
方法1;
方法2；
…
public void]]></description><category></category></item><item><title><![CDATA[【Java之并发】ReentrantLock和synchronized区别]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/45197817</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/45197817</guid><author>cangchen</author><pubDate>Wed, 22 Apr 2015 17:19:06 +0800</pubDate><description><![CDATA[1、ReentrantLock和synchronized区别：

相同：ReentrantLock提供了synchronized类似的功能和内存语义。

 不同：

1.ReentrantLock功能性方面更全面，比如时间锁等候，可中断锁等候，锁投票等，因此更有扩展性。在多个条件变量和高度竞争锁的地方，用ReentrantLock更合适，ReentrantLock还提供了Conditi]]></description><category></category></item><item><title><![CDATA[【Java之Servlet（二）】servlet是单例多线程，以及多线程下如何保证线程安全]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/45197125</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/45197125</guid><author>cangchen</author><pubDate>Wed, 22 Apr 2015 16:45:26 +0800</pubDate><description><![CDATA[Servlet 单例多线程

1、Servlet如何处理多个请求访问？
答：Servlet容器默认是采用单实例多线程的方式处理多个请求的：
	1.当web服务器启动的时候（或客户端发送请求到服务器时），Servlet就被加载并实例化(只存在一个Servlet实例)；
	2.容器初始化化Servlet主要就是读取配置文件（例如tomcat,可以通过servlet.xml的设置线程池中线程数目，初始]]></description><category></category></item><item><title><![CDATA[【Java之Servlet（一）】Servlet生命周期与工作原理]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/45196739</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/45196739</guid><author>cangchen</author><pubDate>Wed, 22 Apr 2015 16:22:52 +0800</pubDate><description><![CDATA[一、Servlet生命周期

1、Servlet生命周期分为三个阶段：

　　（1）初始化阶段  调用init()方法

在Servlet实例化之后，容器将调用Servlet的init()方法初始化这个对象。初始化的目的是为了让Servlet对象在处理客户端请求前完成一些初始化的工作，如建立数据库的连接，获取配置信息等。对于每一个Servlet实例，init()方法只被调用一次。在初始]]></description><category></category></item><item><title><![CDATA[【算法之数组（一）】求子数组最大和的解决方法详解]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/45045655</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/45045655</guid><author>cangchen</author><pubDate>Tue, 14 Apr 2015 17:48:01 +0800</pubDate><description><![CDATA[题目：


输入一个整形数组，数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组，每个子数组都有一个和。


求所有子数组的和的最大值。
例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5，和最大的子数组为3, 10, -4, 7, 2，


因此输出为该子数组的和18。




第一种方法：

很容易想到的，就是使用双重循环:]]></description><category></category></item><item><title><![CDATA[【算法之动态规划（五）】DP规划思想学习：从《算法导论》到《算法设计》]]></title><link>https://blog.youkuaiyun.com/cangchen/article/details/45045633</link><guid>https://blog.youkuaiyun.com/cangchen/article/details/45045633</guid><author>cangchen</author><pubDate>Tue, 14 Apr 2015 17:46:35 +0800</pubDate><description><![CDATA[像所有的新手一样，对一种算法思想的理解需要经历从肤浅（流于表面形式）到逐渐触摸到本质的过程。为什么说逐渐触摸到本质，是因为很多时候你并不确定一个解释是不是最本质的，有时候会有好几个等价的解释，各自在不同的场景下具有。

　　动态规划经典题集转]动态规划与排列组合，比如对动态规划（DP）的理解，一开始我理解为递推，但实际上这是最肤浅的理解，对于如何在特定的问题中找到递推关系毫无帮助和。换言之，这]]></description><category></category></item></channel></rss>