`
jianchen
  • 浏览: 334843 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
引子: RandomAccess在类Collections的shuffle()方法中的使用:(jdk源码如下) /** * Randomly permute the specified list using the specified source of * randomness. All permutations occur with equal likelihood * assuming that the source of randomness is fair.<p> * * This implementation tr ...
在对一个继承的等级结构做重构时,一个应当遵从的原则便是将行为尽量移动到结构的高端,而将状态尽量移动到结构的低端。 1995年,Auer曾在文献【AUER95】中指出: 应当根据行为而不是状态定义一个类。也就是说,一个类的实现首先建立在行为的基础之上,而不是建立在状态的基础之上。 在实现行为时,是用抽象状态而不是用具体状态。如果一个行为涉及到对象的状态时,使用间接的引用而不是直接的引用。换言之,应当使用取值方法而不是直接引用属性。 给操作划分层次。一个类的行为应当放到一个小组核心方法(Kernel Methods)里面,这些方法可以很方便地在子类中加以置换。  将状态属性的确认 ...

UML图

通用准则 当行为的改变和状态有关时才创建状态图。
一 个WEB站点每天可能要接收到上百万的用户请求,为了提高系统的效率,HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪 ...
    大三了,很多人都在为是否考研做出抉择,有些人可能一开始就下了决心自己不考研,还有人却仍在踌躇之中.无论考研与否,作出了决定总是好的,起码不用每天还花时间为这件事烦心.自己平时也听了很多,在网上也看了很多人写 ...
ArrayList<String> ls = new ArrayList<String>(); // xx为自定义类 ... ArrayList<String> clone = (ArrayList<String>)ls.clone(); // 此语句报如下Warning    Type   Safety:   The   cast   from   ArrayList   to   Ar ...
虽然大概一两年前我还在夸夸其谈桌面应用程序是将来的潮流,大学生们现在还是偶尔向我请教职业发展的问题。所以我把我的建议写下来。以供学生们阅读,嘲笑,忽略。 大多数锐气十足的学生从来不向前辈征求意见。在计算机科学领域,这样做是正确的。因为前辈们很可能说些“在2010年前,市场对于那些只会敲击键盘的代码工人的需求将会超过一亿(因此前景是乐观的)”,或者诸如“Lisp语言现在真的很热门”。 我和那些前辈也差不多,当我给别人建议时,实际上我不知道自己在说些什么。我是如此的落后于时尚,以至于连AIM也搞不明白,而不得不使用 email(恐龙时代的产品,在那个时代,音乐是刻在扁扁的的圆圆的盒子上,噢,那 ...
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package myjava; import java.util.HashMap; import java.util.Iterator; import java.util.Set; public class LetterCount { public static void main(String[] args) { String str = "ajsfkjj ...
编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 package myjava; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.logging.Level; import java.util.logging.Logger; public c ...
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package myjava; public class BinarySearch { static void find(int[] A, int low, int high, int num) { if (high - low <= 0 ) { if(A[high] == num) System.out.p ...
“盗链”的定义是:此内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内 容。 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址(比如一些音乐、图片、软件的下载地址)然后放置在自己的网站中,通过这种方法盗取大网站的 空间和流量。   为什么会产生盗链   一般浏览有一个重要的现象就是一个完整的页面并不是一次全部传送到客户端的。如果请 求的是一个带有许多图片和其它信息的页面,那么最先的一个Http请求被传送回来的是这个页面的文本,然后通过客户端的浏览器对这段文本的解释执行,发现 其中还有图片,那么客 ...
百度的时候发现很多网友都在搜索“SINO是什么意思?”,这个SINOBLOG就比较感兴趣了,因为SINOBLOG也是众多SINO组合词中的一员,呵呵。 第一次知道SINO这么一个词是因为SINOPEC(中国石化),后来又知道SINOTRUCK(中国重 汽),然后又有SINOSTEEL(中钢),最后还有一个大家特别需要注意的SINOBLOG(中国博客,哈哈),今天特意在网上查了一下SINO这个 词,发现在维基百科和百度百科里面都没有收录这条词目,我将搜索到的关于SINO的释义整理了一下,如下: SINO就是中国,多用于组合词的前缀,如表达中美,中日等场合:sino-US,sino-japan ...
                                                                                进程与输入输出重定向 shell是如何运行程序的? 根据用户输入的字符串进行解析后,传给execvp系统函数,启动一个新的进程。比如execvp("ls",arglist)。不过exec(execvp是一组基于execve系统调用函数中的一个,他们统称为exec)系统调用从当前进程中把当前程序的机器指令清除,然后在空的进程中载入调用时指定的代码,最后运行这个新的程序。exec调整进程的内存分配使之适应新的程序对内存 ...
                                                                                                       设备编程: stty用来让用户检测,修改控制键盘和显示器连接属性。对Unix来说,声卡,鼠标和磁盘文件是同一个对象。在Unix系统中,每个设备都被当作一个文件。每个设备都有一个文件名,一个i-节点号,一个文件所有者,一个权限位的集合和最近修改时间。你所了解的和文件有关的内容都将运用于终端和其他的设备。 tty*文件是终端,程序通过读取这些文件获得用户的键盘的输入,通过写入这些文件向终端屏幕发 ...
                                                                                                  文件系统篇 文件系统可以用来存储文件内容,文件属性(文件所有者,日期等)和目录,这些不同类型的数据是如何存储在被编号的磁盘块上的呢? Unix使用了一个简单的方法。它将这些磁盘块分成了3部分: 1,超级块 文件系统中的第一个块被称为超级块。这个块存放文件系统本身的结构信息。例如,超级块记录了每个区域的大小。超级块也存放未被使用的磁盘块的信息。不同版本的Unix的超级块的内容和结构稍有不同。 2,i- ...
Global site tag (gtag.js) - Google Analytics