`
文章列表
         里氏代换原则要求任何基类能出现的地方,子类都可以出现。换句话说也就是子类可以  完全替代基类。当我们在继承复用的时侯应该好好考虑这一原则,它对设计出面向对象的系 统有很大的好处。          在JAVA语言中提供了继承机制。当我们要从一个基类继承的时候,我们不能改变被覆盖   (重写)方法的可见性。编译器强制要求我们这么做。而这么做的好处,也可以说是原因就  是我们可以符合里氏代换原则。假如我们把某个用基类的地方改用子类,那么基类代码就通 过JAVA的动态方法绑定机制来调用子类的方法,而这时候如果可见性变小的话,就会造成不 能访问的错误。         当我们在代码重构 ...
         进程是操作系统中很重要的一个概念,操作系统为了能方便管理进程,所以将进程实现为了一种数据结构。进程又两个最基本的元素组成:第一,程序代码。第二,与代码相关联的数据集。操作系统正是通过将进程封装为某个数据结构才达到方便管理的目标。          操作系统中有一个控制表。这个控制表里面有内存表,IO表,文件表,以及进程表。而这个进程表中就保存了与进程相关联的进程映像。其中进程映像包括以下内容:           1 用户数据 (user data)           2 用户程序 (user program)           3 系统栈 (System stack)   ...
面向对象的设计原则: 第一 : 开闭原则 第二 :里氏代换原则 第三 :依赖倒转原则 第四 :迪米特法则        开闭原则:一个系统要对扩展开放,而对修改关闭。这里的所指的意思就是在不修改以前已经写好的代码或者尽量不改的情况下来扩展系统的功能。       如何做到开闭原则:        第一 : 我们就要对系统进行分析,抽象出最本质的东西。抽象的越深,系统的可扩展性就越好。在当今主流软件开发平台(J2EE&.NET)中都提供了具体的语法来支持抽象。       第二 :对可变性的封装。要想做到做尽量小修改来扩展系统,我们就要发现哪些东西是可变的,那些东西是不会变的,或者也可以说 ...
C/C++语言谱系图
C#(C-Sharp)是Microsoft的新编程语言,被誉为“C/C++家族中第一种面向组件的语言”。然而,不管它自己宣称的是什么,许多人认为C#更像是Java的一种克隆,或者是Microsoft用来替代Java的产品。事实是否是这样的呢? 本文的比较结果表明,C#不止是Java的同胞那么简单。如果你是一个Java开发者,想要学习C#或者了解更多有关C#的知识,那么本文就是你必须把最初10分钟投入于其中的所在。 一、C#、C++和Java C#的语言规范由Microsoft的Anders Hejlsberg与Scott Wiltamuth编写。在当前Microsoft天花乱坠的宣传中 ...
如果经常使用Struts,并做过国际化操作的人来说,对于中文资源文件的处理应该不会感到陌生的。比如下面两个文件,一个是英文的,一个是中文的。对于英文的,一切照常;对于中文的,一般需要用JDK的native2ascii工具进行转换。 application_en.properties # Resources for the Hello sample application hello.title=A first Struts program hello.prompt. ...
         Java中加载器的种类大致可以分为四种:Bootstrap ClassLoader(由C++语言写成),系统加载器(也就是内部类AppClassLoader),ExtClassLoader,以及java.net.UrlClassLoader.           当我们运行一个程序时,首先是找到JDK安装目下的jvm.dll来启动JAVA虚拟机,而后Bootstrap ClassLoader产生,接下来就是Bootstrap ClassLoader来加载ExtClassLoader,并且指定ExtClassLoader的父加载器为Bootstrap ClassLoader,但是 ...
                                   春望                                                           -------杜甫  国破山河在,                                   城春草木深。 感时花溅泪,                                   恨别鸟惊飞。 烽火连三月,                                   家书抵万金。 白头搔更短,                                   浑欲不胜簪。    ...
     JAVA中类文件加载是动态的。JVM指令是被封装在了. class文件里面,而.class文件的加载过程是动态的,也就是说当我们用到的时候才会去加载,如果不用的话,就不会去加载我们的类。这里所说的用到包括两种方式,第一种 ...
偶前段时间写的小游戏。呵呵。。
呵呵,今天早上很早就醒了。。记录一下这早起的早晨。
        散列是无需查找,只用元素的查找键来确定元素索引的方法。散列函数就是一种用来实现散列的函数,它接受一个查找键,计算出该键的散列码,然后再将此散列码压缩到散列表的范围内。在用散列来实现某种数据结 ...
                                                                西施咏                                  艳色天下重,                         西施宁久微。                                  朝为越溪女,                         暮作吴宫妃。                                  贱日岂殊众,                         贵来方悟稀。                     ...
ProtoType属于创建模式,所以当我们需要创建对象的时候可以考虑使用它,尤其是在程序中动态加载类时。在JAVA语言中是用克隆机制来实现的。此模式也是充分运用了OO语言的多态性,我们在创建对象时只与基类打交道,也就是只与我们打算创建的对象打交道。比如我们打算创建汽车,而我们又不想知道汽车是怎么创建的,我们就可以采用此模式。 public abstract class Car implements Cloneable{      public abstract  Car cloneCar(){      } } public  class Lincoln  extends Car{     ...
                                                                           赠卫八处士                                                                      ...
Global site tag (gtag.js) - Google Analytics