<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Beryl_Song的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Beryl_Song</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Beryl_Song]]></copyright><item><title><![CDATA[深入探索Factory模式与Prototype模式的异同]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5595605</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5595605</guid><author>Beryl_Song</author><pubDate>Sat, 15 May 2010 17:07:00 +0800</pubDate><description><![CDATA[ 原型模式与工厂模式的定义，本文不想在这讲太多，本文主要想在这讲一下对原型模式的一些误解－－将原型模式等价于工厂模式；    为什么会产生这种误导呢？其实也不是我们的错，关键在于设计模式这本书以及网上的其它资料很喜欢将原型和工厂方法进行比较，从而导致我们误解了原型引入的本质意义。按我的理解，原型引入的根本原因就是在于它可以利用一个原型对象（在这，我指的是实例，而非类），快速地生成一批和原型对象一样]]></description><category></category></item><item><title><![CDATA[深入探索Factory模式与Prototype模式的异同]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5595559</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5595559</guid><author>Beryl_Song</author><pubDate>Sat, 15 May 2010 16:55:00 +0800</pubDate><description><![CDATA[之所以写这篇续集，是因为，上篇文章登出后，自己才发现，上次对于工厂模式与原型模式的比较，仅仅只是限于用原型模式来模仿工厂模式的功能上，其实并未指出工厂模式与原形模式的真正差别。因此，本着把问题说清楚的初衷，便有了现在的这篇续。      在原先的那篇文章中，我曾提到，可以用Prototype来实现Factory的功能。但实际上，Prototype所模仿的工厂模式的功能，只是“形似而神不似”。我们并]]></description><category></category></item><item><title><![CDATA[使用clone( )和Cloneable接口]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5595520</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5595520</guid><author>Beryl_Song</author><pubDate>Sat, 15 May 2010 16:45:00 +0800</pubDate><description><![CDATA[　　　　由Object类定义的绝大部分方法在本书其他部分讨论。而一个特别值得关注的方法是clone( )。clone( )方法创建调用它的对象的一个复制副本。只有那些实现Cloneable接口的类能被复制。　　　　Cloneable接口没有定义成员。它通常用于指明被创建的一个允许对对象进行位复制（也就是对象副本）的类。如果试图用一个不支持Cloneable接口的类调用clone( )方法，将引发一]]></description><category></category></item><item><title><![CDATA[JAVA技术专题综述之构造方法篇 ]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5595438</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5595438</guid><author>Beryl_Song</author><pubDate>Sat, 15 May 2010 16:19:00 +0800</pubDate><description><![CDATA[   类的继承机制使得子类可以使用父类的功能（即代码），并且子类也具有父类的类型。下面介绍类在继承关系上的初始化的顺序问题。     示例1：     class   SuperClass     {     SuperClass()     {     System.out.println("SuperClass   constructor");     }     }     public  ]]></description><category></category></item><item><title><![CDATA[动态链接库dll 静态链接库lib 动态导入库lib]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5556586</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5556586</guid><author>Beryl_Song</author><pubDate>Tue, 04 May 2010 16:59:00 +0800</pubDate><description><![CDATA[目前以lib后缀的库有两种，一种为静态链接库(Static Libary，以下简称“静态库”)，另一种为动态连接库(DLL，以下简称“动态库”)的导入库(Import Libary，以下简称“导入库”)。 静态库是一个或者多个obj文件的打包，所以有人干脆把从obj文件生成lib的过程称为Archive，即合并到一起。比如你链接一个静态库，如果其中有错，它会准确的找到是]]></description><category></category></item><item><title><![CDATA[lib和dll区别]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5556564</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5556564</guid><author>Beryl_Song</author><pubDate>Tue, 04 May 2010 16:54:00 +0800</pubDate><description><![CDATA[相信很多人都用过VC6.0与Visual Studio系列产品。也有很多牛B人士用它们创造过很人的神话，铸就许多美丽的传说。那你们知道为何你能用它创始出那么多的奇迹，这是你一个人的成功?你是否关心过你是如何能动态的链接它给你提供的内库，它是如何控制你的IO流的？为何C++的语法是这么规定的，它又是如何实现这些语法的呢？本文和接下来的文章很肤浅的介绍了这些东西，让基本上还在一]]></description><category></category></item><item><title><![CDATA[dll、Lib、obj、.h文件的区别与作用]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5556319</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5556319</guid><author>Beryl_Song</author><pubDate>Tue, 04 May 2010 16:04:00 +0800</pubDate><description><![CDATA[  obj:        目标文件，一般是程序编译后的二进制文件，通过链接器和资源文件链接后就成为exe文件(链接器将使用这些文件生成EXE文件)。　　  obj只给出了程序的相对地址，而EXE是绝对地址。          CPP对应的二进制代码格式，是未经重定位的！  lib:是若干个obj的集合，本质与obj相同！          lib有静态lib和动态lib之分。]]></description><category></category></item><item><title><![CDATA[堆和栈]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5552364</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5552364</guid><author>Beryl_Song</author><pubDate>Mon, 03 May 2010 15:29:00 +0800</pubDate><description><![CDATA[堆(heap)和栈(stack)是C/C++编程不可避免会碰到的两个基本概念。首先，这两个概念都可以在讲数据结构的书中找到，他们都是基本的数据结构，虽然栈更为简单一些。     在具体的C/C++编程框架中，这两个概念并不是并行的。对底层机器代码的研究可以揭示，栈是机器系统提供的数据结构，而堆则是C/C++函数库提供的。     具体地说，现代计算机(串行执行机制)，都直接在代码底层支]]></description><category></category></item><item><title><![CDATA[静态区和栈区和堆区]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5552350</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5552350</guid><author>Beryl_Song</author><pubDate>Mon, 03 May 2010 15:20:00 +0800</pubDate><description><![CDATA[静态区：保存自动全局变量和static变量（包括static全局和局部变量）。静态区的内容在总个程序的生命周期内都存在，由编译器在编译的时候分配。堆：由malloc系列函数或new操作符分配的内存，其生命周期由free或delete决定。在没有释放之前一直存在，直到程序结束，其特点是使用灵活，空间比较大，但容易出错栈：保存局部变量，栈上的内容只在函数的范围内存在，当函数运行结束，这些内]]></description><category></category></item><item><title><![CDATA[详细解析Java中抽象类和接口的区别]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5550288</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5550288</guid><author>Beryl_Song</author><pubDate>Sun, 02 May 2010 16:51:00 +0800</pubDate><description><![CDATA[在Java语言中， abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在，才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性，甚至可以相互替换，因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实，两者之间还]]></description><category></category></item><item><title><![CDATA[简单工厂，工厂方法和抽象工厂的区别总结]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5550148</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5550148</guid><author>Beryl_Song</author><pubDate>Sun, 02 May 2010 15:23:00 +0800</pubDate><description><![CDATA[最近这三个模式有点搞混了，而且网上也有类似情况。总结一下。简单工厂：严格说并不是一个设计模式。简单工厂没有抽象类，只有一个具体工厂类如MyFactory，然后MyFactory里面有个工厂方法CreateProduct返回一个基类产品，具体返回什么具体实例通过传入参数然后用case判断。用手机生产做个例子：比如Nokia简单工厂就是只有NokiaFactory工厂类，工厂方法就是Cre]]></description><category></category></item><item><title><![CDATA[码率控制中的一些概念]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5454729</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5454729</guid><author>Beryl_Song</author><pubDate>Tue, 06 Apr 2010 15:07:00 +0800</pubDate><description><![CDATA[虚拟缓存模型Virtual Buffer Model解码器都有一个缓存来平滑码率变换和数据的到达时间。 相应编码器产生的比特流须满足解码器的限制，所以用一个虚拟缓存模型来仿真实际解码器的满度。 虚拟缓存满度的改变即编码成流的总比特数的差异。缓存满度的下届为0，上界为缓存容量。用户需根据解码器支持的级别设置缓存容量和初始值。 PicInterlace 和 MbInterlace的区别]]></description><category></category></item><item><title><![CDATA[DC系数和AC系数]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5449012</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5449012</guid><author>Beryl_Song</author><pubDate>Sun, 04 Apr 2010 09:55:00 +0800</pubDate><description><![CDATA[离散余弦正变换（FDCT）可看作为一个谐波分析仪，把离散余弦逆变换（IDCT）看作一个谐波合成器。每个8×8二维原图像采样数据块，实际上是64点离散信号，该信号是空间二维参数x和y的函数。FDCT把这些信号作为输入，然后把它分解成64个正交基信号，每个正交基信号对应于64个二维（2D）空间频率中的一个，这些空间频率是由输入信号的频谱组成。FDCT的输出是64个基信号的幅值（即DCT系数），每个系数]]></description><category></category></item><item><title><![CDATA[H.264中的NAL技术]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5444970</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5444970</guid><author>Beryl_Song</author><pubDate>Fri, 02 Apr 2010 15:14:00 +0800</pubDate><description><![CDATA[NAL技术1.NAL概述NAL全称Network Abstract Layer, 即网络抽象层。在H.264/AVC视频编码标准中，整个系统框架被分为了两个层面：视频编码层面（VCL）和网络抽象层面（NAL）。其中，前者负责有效表示视频数据的内容，而后者则负责格式化数据并提供头信息，以保证数据适合各种信道和存储介质上的传输。现实中的传输系统是多样化的，其可靠性，服务质量，封装方式等特征各不相同，N]]></description><category></category></item><item><title><![CDATA[一个 .Net Hashtable 的锁的疑惑和解决]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5437974</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5437974</guid><author>Beryl_Song</author><pubDate>Wed, 31 Mar 2010 16:29:00 +0800</pubDate><description><![CDATA[锁 hashtable 应该锁它的 SyncRoot 属性而不应该锁它的实例, 例如:Hashtable ht = new Hashtable();lock(ht.SyncRoot){...}看了 .Net Framework 文档, 给的例子也是锁 SyncRoot 属性, 说如果锁实例的话不能保证在并发情况下的同步, 我很疑惑, 为什么不能锁 hashtable 实例本身呢?做了个]]></description><category></category></item><item><title><![CDATA[sip URI与sips URI的区别]]></title><link>https://blog.youkuaiyun.com/Beryl_Song/article/details/5410719</link><guid>https://blog.youkuaiyun.com/Beryl_Song/article/details/5410719</guid><author>Beryl_Song</author><pubDate>Wed, 24 Mar 2010 10:15:00 +0800</pubDate><description><![CDATA[The SIP URI follows the same form as an email address: user@domain. There are twoURI schemes:1〉sip:bob.smith@nokia.com is a SIP URI. This is the most common form and wasintroduced in [RFC2543].2〉sips:]]></description><category></category></item></channel></rss>