`
langlanglanglang
  • 浏览: 31548 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
文章列表
先从有限状态机说起。    什么是有限状态机?    有限状态机是一种模拟现实生活中人或者动物思考的一种模型。我们在思考过程中总是随着外界环境的变化或者内在因素的变化而进入一种状态,而相应的状态会触发相应的行为,我们总是处于这样那样的状态,并且不停切换。如早上天气冷,进入冷的状态,当处于冷的状态时,大脑就会做出加衣服、开热气等操作,到了中午太阳出来了,又会热起来,这个时候你会处于一种热的状态,并做出脱衣等反应。这是我个人的理解。     在Mat.Buckland编著的著名的书籍《游戏人工智能编程案例精粹》里,他是这么定义的。有限状态机是一个设备模型,它具有有限数量的状态,它可以在任 ...
1、对象冒充 function ClassA(sColor) { this.color = sColor; this.sayColor = function () { alert(this.color); }; } function ClassB(sColor, sName) { this.newMethod = ClassA; this.newMethod(sColor); delete this.newMethod; this.name = sName; this.sayName = ...
javascript如何定义类和对象 1、原始方式   var oCar = new Object; oCar.color = "blue"; oCar.doors = 4; oCar.mpg = 25; oCar.showColor = function() { alert(this.color); };     2、工厂方法   function createCar(sColor,iDoors,iMpg) { var oTempCar = n ...
java中整型数据存储时是以补码的方式进行的。 1.何为原码,反码,补码? 首先java中的整型数值都是有符号的,规定数据的二进制形式第一位为符号位。0为正,1为负。则十进制3的原码为:0000 0011,十进制-3的原码为: 1000 0011 。 反码是原码符号位不变,其它位按位取反。即十进制3的反码为: 0111 1100  ;十进制-3的反码为:1111  1100。 补码,我们规定正数的补码与原码相同,负数的补码是反码加1。即十进制3的补码为: 0000 0011  ;十进制-3的补码为:1111  1101。 2.二进制的数据已经可以运算,为什么还要用补码? 这是为了方便计算 ...
Java的运算符可分为4类:算术运算符、关系运算符、逻辑运算符和位运算符。 1.算术运算符     Java的算术运算符分为一元运算符和二元运算符。一元运算符只有一个操作数;二元运算符有两个操作数,运算符位于两个操作数 ...
为什么要用线程池? 诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网络协议(例如 HTT ...
用分阶段的生命周期计划严格管理:把软件生命周期分成若干阶段,并相应制定出切实可行的计划,然后严格按照计划对软件的开发和维护进行管理。 坚持进行阶段评审:统计结果显示:大部分错误是在编码之前造成的,大约占63%错误发现的越晚,改正它要付出的代价就越大,要差2到3个数量级。 因此,软件的质量保证工作不能等到编码结束之后再进行,应坚持进行严格的阶段评审,以便尽早发现错误。 实行严格的产品控制:开发人员最痛恨的事情之一就是改动需求。但是实践告诉我们,需求的改动往往是不可避免的。这就要求我们要采用科学的产品控制技术来顺应这种要求。也就是要采用变动控制,又叫基准配置管理。当需求变动时,其它各个阶段的文档或 ...
最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。 下面是参考网络资源总结的一些在Java编程中 ...
JAVA里面, x=1,y=2,z=3 请问 1.        y+=z--/++x+z--; 经过上面的表达式计算后,,,各变量的值? 由1得出 2. y=y+z--/++x+z--  注: 这里面也等价于 y=y+(z--)/(++x)+(z--)  加不加括号,,都是一样的 =>  3.  y=2+3--/++1+(--3)-- 因为 ++,-- 在变量后的话,则在该变量所在的表达式运算完毕之后,,才再做该变量的运算,, 所以得出  y=2+3/2+2 y=5.5 开始算 (z--)--,++x 得出 z=1 x=2 测试用例如下 pac ...
寄存器:在cpu内部,速度最快,程序员不能通过编程来控制寄存器的分配,由编译器自动分配。 栈:栈是向低地址扩展的数据结构,是一种连续的内存区域。 优点:由系统自动分配,速度较快。 缺点:数据的生命周期和大小必须确定的,不够灵活,并且数据可以共享。 存放基本数据类型和对象数组的引用。 堆:堆是向高地址扩展的数据结构,是不连续的数据结构。 优点:可以动态的分配数据大小,不必事先告诉编译器生存期,由gc自动回收,比较灵活。 缺点:存取速度慢。 存放通过new等实例化的对象。 静态存储区域与常量存储区域 静态存储区域用来存储静态变量 常量存储区域用来存储final类型变量。 非Ram存储 流对 ...
   为了解决一个问题,我们首先要找到问题,然后对问题进行分析,最后通过分析找到解决问题的方案。软件开发是为了满足一系列业务需求进行的过程,怎样更好地满足并实现业务需求,怎样高效率地实现这个过程,是软件 ...
首先了解下,什么叫作clone,以及深拷贝和浅拷贝的区别? 对象clone机制,是指根据源对象clone一个对象,这个clone对象与原来的对象相互隔离,但是内容相同。 即: source != source.clone(); source.getClass()=source.clone().getClass(); source.equalWith(source.clone()); 浅拷贝:浅拷贝是指对象的引用类型成员变量拷贝的只是变量所存的内存地址,而不是引用类型成员变量所指内存的内容。即拷贝对象与原对象引用类型成员变量指向同一个内存。 a为原对象,b是拷贝对象 深拷贝:是不仅基本数据类型被 ...
jvm:java虚拟机 jre:java runtime environment,包括jvm、并有java程序运行所需的相关api。 jdk:java development toolkit,java开发工具包。提供java开发工具,如javac。
java是编译型与解释性语言的混合体。 首先来解释下编译性语言和解释性语言: 编译性语是指程序执行前需要一个专门的翻译过程,将源程序翻译成能够直接运行的目标文件,一般是指机器语言,以后在执行时不需要再翻译目标文件,直接用目标文件在机器上直接运行,效率较高,现在的语言一般都是编译语言,如c、c++、vf、pascal、delphi. 解释性语言:是指程序执行时再翻译,这个翻译过程是由特定的软件叫作解释器来完成的。例如basic语言,由专门的解释器逐条翻译,每执行一句翻译一句。解释性语言没执行一次就得翻译一次,效率较低。 那么为什么说java是编译性与解释性语言的混合体? java语言源代码写好后, ...
当ActionServlet接收到一个客户请求时,将执行如下流程。 (1) 检索和用户请求相匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效信息。 (2) 如ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。 (3) 根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm的validate()方法。 (4) 如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActionErrors对象,就表示表单验证成功。 ...
Global site tag (gtag.js) - Google Analytics