<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zcrystalspring的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zcrystalspring</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zcrystalspring]]></copyright><item><title><![CDATA[游戏中的人工智能（一）：有限状态机]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84628301</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84628301</guid><author>zcrystalspring</author><pubDate>Sun, 24 Aug 2014 15:08:26 +0800</pubDate><description><![CDATA[
先从有限状态机说起。
    什么是有限状态机？
    有限状态机是一种模拟现实生活中人或者动物思考的一种模型。我们在思考过程中总是随着外界环境的变化或者内在因素的变化而进入一种状态，而相应的状态会触发相应的行为，我们总是处于这样那样的状态，并且不停切换。如早上天气冷，进入冷的状态，当处于冷的状态时，大脑就会做出加衣服、开热气等操作，到了中午太阳出来了，又会热起来，这个时候你会处于一种热的...]]></description><category></category></item><item><title><![CDATA[java script 面向对象--javascript实现继承]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84628300</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84628300</guid><author>zcrystalspring</author><pubDate>Sun, 24 Aug 2014 15:01:11 +0800</pubDate><description><![CDATA[
1、对象冒充
function ClassA(sColor) {
    this.color = sColor;
    this.sayColor = function () {
        alert(this.color);
    };
}
function ClassB(sColor, sName) {
    this.newMethod = ClassA;
...]]></description><category></category></item><item><title><![CDATA[java script 面向对象--javascript如何定义类和对象]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84628292</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84628292</guid><author>zcrystalspring</author><pubDate>Sun, 24 Aug 2014 14:38:22 +0800</pubDate><description><![CDATA[
javascript如何定义类和对象
1、原始方式
 
var oCar = new Object; 
oCar.color = &quot;blue&quot;; 
oCar.doors = 4;
oCar.mpg = 25;
oCar.showColor = function() { 
   alert(this.color); 
};
 
 
2、工厂方法
 
function ...]]></description><category></category></item><item><title><![CDATA[何为原码，反码，补码？]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84382363</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84382363</guid><author>zcrystalspring</author><pubDate>Wed, 16 Jan 2013 23:36:39 +0800</pubDate><description><![CDATA[java中整型数据存储时是以补码的方式进行的。

1.何为原码，反码，补码？
首先java中的整型数值都是有符号的，规定数据的二进制形式第一位为符号位。0为正，1为负。则十进制3的原码为：0000 0011，十进制-3的原码为： 1000 0011 。

反码是原码符号位不变，其它位按位取反。即十进制3的反码为： 0111 1100  ；十进制-3的反码为：1111  1100。

...]]></description><category></category></item><item><title><![CDATA[java运算符]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84382260</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84382260</guid><author>zcrystalspring</author><pubDate>Wed, 16 Jan 2013 18:25:33 +0800</pubDate><description><![CDATA[Java的运算符可分为4类：算术运算符、关系运算符、逻辑运算符和位运算符。

 
1.算术运算符 
    Java的算术运算符分为一元运算符和二元运算符。一元运算符只有一个操作数；二元运算符有两个操作数，运算符位于两个操作数之间。算术运算符的操作数必须是数值类型。

    (1)一元运算符： 
    一元运算符有：正（+）、负（－）、加1（++）和减1（－－）4个。
    ...]]></description><category></category></item><item><title><![CDATA[ 为什么要用线程池？]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84380987</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84380987</guid><author>zcrystalspring</author><pubDate>Mon, 14 Jan 2013 10:57:39 +0800</pubDate><description><![CDATA[ 为什么要用线程池？
 
 诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器，这种方式可能是通过网络协议（例如 HTTP、FTP 或 POP）、通过 JMS 队列或者可能通过轮询数据库。不管请求如何到达，服务器应用程序中经常出现的情况是：单个任务处理的时间很短而请求的数目却是巨大的。
 
...]]></description><category></category></item><item><title><![CDATA[软件工程的七条基本原理]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84170567</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84170567</guid><author>zcrystalspring</author><pubDate>Sun, 18 Mar 2012 18:43:41 +0800</pubDate><description><![CDATA[用分阶段的生命周期计划严格管理：把软件生命周期分成若干阶段，并相应制定出切实可行的计划，然后严格按照计划对软件的开发和维护进行管理。
坚持进行阶段评审：统计结果显示：大部分错误是在编码之前造成的，大约占63%错误发现的越晚，改正它要付出的代价就越大，要差2到3个数量级。 因此，软件的质量保证工作不能等到编码结束之后再进行，应坚持进行严格的阶段评审，以便尽早发现错误。 
实行严格的产品控制：开发...]]></description><category></category></item><item><title><![CDATA[java中提高性能《转摘》]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84168030</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84168030</guid><author>zcrystalspring</author><pubDate>Tue, 13 Mar 2012 23:50:34 +0800</pubDate><description><![CDATA[最近的机器内存又爆满了，除了新增机器内存外，还应该好好review一下我们的代码，有很多代码编写过于随意化，这些不好的习惯或对程序语言的不了解是应该好好打压打压了。
 
 
 
下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。

 

1. 尽量在合适的场合使用单例 




使用单例可以减轻加载的负担，缩短加载的时间，提高加载的效率，但并不是所有地方...]]></description><category></category></item><item><title><![CDATA[自加自减运算符的一个例子]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84166825</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84166825</guid><author>zcrystalspring</author><pubDate>Mon, 12 Mar 2012 09:13:18 +0800</pubDate><description><![CDATA[JAVA里面, x=1,y=2,z=3

请问

1.        y+=z--/++x+z--;

经过上面的表达式计算后,,,各变量的值?


由1得出

2. y=y+z--/++x+z--  注: 这里面也等价于 y=y+(z--)/(++x)+(z--)  加不加括号,,都是一样的


=&gt;  3.  y=2+3--/++1+(--3)--

因为 ++...]]></description><category></category></item><item><title><![CDATA[java的几种存储区域]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84158778</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84158778</guid><author>zcrystalspring</author><pubDate>Sat, 25 Feb 2012 17:47:10 +0800</pubDate><description><![CDATA[寄存器：在cpu内部，速度最快，程序员不能通过编程来控制寄存器的分配，由编译器自动分配。

栈：栈是向低地址扩展的数据结构，是一种连续的内存区域。
优点：由系统自动分配，速度较快。
缺点：数据的生命周期和大小必须确定的，不够灵活，并且数据可以共享。
存放基本数据类型和对象数组的引用。

堆：堆是向高地址扩展的数据结构，是不连续的数据结构。
优点：可以动态的分配数据大小，不必事先告诉...]]></description><category></category></item><item><title><![CDATA[面向对象编程及其特点]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84158736</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84158736</guid><author>zcrystalspring</author><pubDate>Sat, 25 Feb 2012 15:57:51 +0800</pubDate><description><![CDATA[   为了解决一个问题，我们首先要找到问题，然后对问题进行分析，最后通过分析找到解决问题的方案。软件开发是为了满足一系列业务需求进行的过程，怎样更好地满足并实现业务需求，怎样高效率地实现这个过程，是软件开发的终极目标。传统的编程语言因为针对过程编程程，使得程序往往不满足用户需求、可维护性差、可重用性差。世界都是由对象组成的，万物皆对象，现实生活中的业务都是由一个个对象协作的过程，面向对象编程更能模...]]></description><category></category></item><item><title><![CDATA[java的clone机制]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84151486</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84151486</guid><author>zcrystalspring</author><pubDate>Fri, 10 Feb 2012 16:26:34 +0800</pubDate><description><![CDATA[[b]首先了解下，什么叫作clone，以及深拷贝和浅拷贝的区别？[/b]
对象clone机制，是指根据源对象clone一个对象，这个clone对象与原来的对象相互隔离，但是内容相同。
即：
source ！= source.clone();
source.getClass()=source.clone().getClass();
source.equalWith(source.clone...]]></description><category></category></item><item><title><![CDATA[jvm、jre、jdk三者的区别]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84151036</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84151036</guid><author>zcrystalspring</author><pubDate>Thu, 09 Feb 2012 21:13:59 +0800</pubDate><description><![CDATA[jvm：java虚拟机
jre：java runtime environment，包括jvm、并有java程序运行所需的相关api。
jdk：java development toolkit，java开发工具包。提供java开发工具，如javac。...]]></description><category></category></item><item><title><![CDATA[java运行机制和java虚拟机以及语言特点]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84151018</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84151018</guid><author>zcrystalspring</author><pubDate>Thu, 09 Feb 2012 20:51:15 +0800</pubDate><description><![CDATA[java是编译型与解释性语言的混合体。
[b]首先来解释下编译性语言和解释性语言：[/b]
编译性语是指程序执行前需要一个专门的翻译过程，将源程序翻译成能够直接运行的目标文件，一般是指机器语言，以后在执行时不需要再翻译目标文件，直接用目标文件在机器上直接运行，效率较高，现在的语言一般都是编译语言，如c、c++、vf、pascal、delphi.
解释性语言：是指程序执行时再翻译，这个翻译过程...]]></description><category></category></item><item><title><![CDATA[当ActionServlet接收到一个客户请求时，将执行如下流程。]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84147923</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84147923</guid><author>zcrystalspring</author><pubDate>Thu, 02 Feb 2012 21:57:22 +0800</pubDate><description><![CDATA[当ActionServlet接收到一个客户请求时，将执行如下流程。

(1) 检索和用户请求相匹配的ActionMapping实例，如果不存在，就返回用户请求路径无效信息。 

(2) 如ActionForm实例不存在，就创建一个ActionForm对象，把客户提交的表单数据保存到ActionForm对象中。 

(3) 根据配置信息决定是否需要表单验证。如果需要验证，就调用Actio...]]></description><category></category></item><item><title><![CDATA[osi七层协议]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84133507</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84133507</guid><author>zcrystalspring</author><pubDate>Thu, 02 Feb 2012 12:17:53 +0800</pubDate><description><![CDATA[物理层：为它的上一层提供物理链接，以及规定通信节点之间的机械和电气等特性，如规定的电缆和接头的类型，传送的电压。在这一层，传送的都是bit流。本层的典型设备是集线器。
简单的讲就是规定通信节点的机械和电气特性。
数据链路层：负责在相邻节点的线路上，无差错地传送以帧为单位的数据。每一帧包括一定的数据和一些必要的控制信息。并负责建立维持和释放数据链路的连接。简单地讲就是无差错地传送帧。
网络层：...]]></description><category></category></item><item><title><![CDATA[java 中堆与栈的区别]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84132556</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84132556</guid><author>zcrystalspring</author><pubDate>Tue, 31 Jan 2012 20:15:16 +0800</pubDate><description><![CDATA[stack 和 heep 都是内存的一部分
stack 空间小，速度比较快， 用来放对象的引用
heep 大，一般所有创建的对象都放在这里。

栈(stack):是一个先进后出的数据结构,通常用于保存方法(函数)中的参数,局部变量.
在java中,所有基本类型和引用类型都在栈中存储.栈中数据的生存空间一般在当前scopes内(就是由{...}括起来的区域).
堆(heap):是一个可动...]]></description><category></category></item><item><title><![CDATA[final、finally、finalize的区别]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84048864</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84048864</guid><author>zcrystalspring</author><pubDate>Mon, 17 Oct 2011 15:43:24 +0800</pubDate><description><![CDATA[[b]final：[/b]如果一个变量或方法参数被final修饰，就表示它只能被赋值一次，但是JAVA虚拟机为变量设定的默认值不记作一次赋值。
 
     [b]final的用途[/b]      
       1、可用来定义变量，包括静态变量和非静态变量。
        2、可用来定义方法传入的参数。
        3、可用来定义类。
        4、可用来定义方法。
...]]></description><category></category></item><item><title><![CDATA[java标识符]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84048568</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84048568</guid><author>zcrystalspring</author><pubDate>Mon, 17 Oct 2011 09:47:14 +0800</pubDate><description><![CDATA[java标识符以字母下划线或美元符号开头，由字母数字下划线和美元符号组成，区分大小写，长度没有限制，中间不允许有空格，也不允许出现以上所列其他符号。在程序中，标识符用来做变量名方法名常量名类名。 

...]]></description><category></category></item><item><title><![CDATA[jvm]]></title><link>https://blog.youkuaiyun.com/zcrystalspring/article/details/84043054</link><guid>https://blog.youkuaiyun.com/zcrystalspring/article/details/84043054</guid><author>zcrystalspring</author><pubDate>Thu, 06 Oct 2011 21:06:54 +0800</pubDate><description><![CDATA[为什么要了解jvm：

jvm,即java virtual machine，是在计算机上再虚拟一个计算机。众所周知，计算机分为运算器、控制器、存储器、输入输出设备，jvm也具备这些元素。运算器自然是cpu来处理，只是为了适应“一次编译，随处运行”，jvm有自己的命令集，跟汇编命令差不多，根据不同cpu翻译成不同机器语言。这里的存储器是指内存，因为虚拟机是运行在内存上的。...]]></description><category></category></item></channel></rss>