上一页 1 ··· 4 5 6 7 8 9 下一页
摘要: 生成能自动判别类型的Vector: 1 import java.util.*; 2 class Gopher { 3 private int gopherNumber; 4 Gopher(int i) { 5 gopherNumber = i; 6 } 7 void print(String msg) { 8 if(msg != null) 9 System.out.println(msg);10 System.out.println("Gopher number " + gopherNumber);11 }12 }13 class GopherTrap {14 stati 阅读全文
posted @ 2011-07-27 23:15 GG大婶 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 虽然是第二次看,感觉这部分还是要仔细看。多形性是面向对象编程语言的第三中特性。首先是上溯造型(这个是什么意思就不说了),为什么需要上溯造型呢?很多书上都会用“画图”或者“乐器”的程序来和大家解释:class Note{ private int value; private Note(int val) { value = val; } public static final Note middleC = new Note(0), cSharp = new Note(1), cFlat = new Note(2);} // Etc.class Instrument { public void pl 阅读全文
posted @ 2011-07-26 22:45 GG大婶 阅读(479) 评论(0) 推荐(0) 编辑
摘要: HTTP协议是基于“请求与响应”模式的无状态、应用层的协议,常基于TCP。 HTTP请求分为三个部分:请求行、消息报头、请求正文。在接收和接收请求消息之后,服务器返回一个HTTP响应消息,包括三个部分:状态行、消息报头、响应正文。下面分别说这三个部分。 请求行的格式是“请求方式”“资源路径”“HTTP版本号”,一个例子:GET /test.html HTTP/1.1。请求的方式可以是“GET”,“POST”,“PUT”,“DELETE”,“OPTIONS”,“TRACE”,“HEAD”。(现在大部分框架是基于“GET”和“POST”,不过现在也有框架是根据HTTP协议的初衷来做的,在哪里看到. 阅读全文
posted @ 2011-07-25 22:13 GG大婶 阅读(273) 评论(0) 推荐(0) 编辑
摘要: Java的一个引人注意的特性就是代码的重复使用或者再生。 Java有两种方法来实现:合成和继承。合成看起来比较简单,也就是声明一个新的类型,其中包括了几个现在以后的类型。用汽车的例子来说明就是避免“重复制造轮子”。至于“轮子”应该什么时候被造出来?可以是在准备生产汽车之前就造(在定义处)、可以边造汽车边造(构建器内)、可以早完汽车然后等到要用轮子的时候(在使用之前)。 继承的实现很简单:“extends”。虽然简单,不过还是要想几个问题,这样一串的东西,先初始化哪个?其实写个简单的程序就可以验证了(基类的初始化完成之后才开始衍生类的初始化,其实简单想想也应该是这样的): 1 class Ar. 阅读全文
posted @ 2011-07-25 21:21 GG大婶 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 在“库”之类的程序的设计中,只有部分的代码是公布给使用者的。可以通过访问权限的控制来实现。“库”是由一个一个的“包”组成的,用“package”打包(这句话必须在非注释的第一行),而使用者用“import”引入就可以了。在封装包的时候用反过来的域名的唯一的标志一个包(因为域名是唯一的,所以所发行的包名也是唯一的)。Java解释器在执行的时候,先找到“CLASSPATH”,以此为根目录开始找“.class”文件。Java中的“访问控制符”只有一个是比较特别的:如果一个变量前面什么都不写(也就是默认)说明这个变量是“包”级访问权限。“private”的用法还有下面的这种情况,可以使得对象“new” 阅读全文
posted @ 2011-07-24 14:39 GG大婶 阅读(174) 评论(0) 推荐(0) 编辑
摘要: #!/bin/sh#当前程序的名称echo $0#当前程序的第n个参数echo $1#当前程序的所有参数echo $*#当前程序的参数个数echo $##当前程序的PIDecho $$#执行上一个指令的PIDecho $!#上个指令的返回值echo $?#!/bin/sh#shell中字符串的比较s1="abc "s2="abc"s3="bcd"s4=""if [ "$s1"="$s2" ];then echo "s1等于s2"fiif [ "$ 阅读全文
posted @ 2011-07-23 20:51 GG大婶 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 用构建器自动初始化构造函数不需要返回参数。在new一个对象的时候就调用构造函数来初始化一个对象。在没有定义构造函数的时候会有一个默认的构造函数。“在程序中什么时候调用哪个构造函数”?这个在下面详细说明。方法过载不同的方法用同一个名称,不过它们的参数必须不同。public class test { public static void func(int a){ System.out.println("int"); } public static void func(long a){ System.out.println("long"); } public 阅读全文
posted @ 2011-07-23 16:51 GG大婶 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 用句柄操纵对象JVM是怎么通过句柄访问对象的(或者说句柄究竟是个什么东西),给我的感觉就像指针或者引用。也有人说句柄就是“受到了严格限制和防范的指针”。在给方法传参数的时候需要注意。所有的对象必须创建程序运行时可以保存数据的六个地方:寄存器、堆栈(对象句柄)、堆(对象)、静态存储(JAVA对象永远不会置于静态存储空间)、常熟存储、非RAM存储。8种不用new初始化的变量:boolean、byte、short、char、int、float、long、double。从小到大排序。java里面是没有unsigned类型的,曾今写加密程序的时候在这个问题上的纠结,好菜。另外还有两种高精度:BigInt 阅读全文
posted @ 2011-07-23 13:53 GG大婶 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 数据读取流程Cassandra会根据需要读取的ColumnFamily查询该ColumnFamily下的Memtable以及所有的SSTable,合并查询结果,将最新的结果返回给客户端。Cassandra从SSTable中读取数据时,先要读取Bloom Filer文件判断该Key是否在被SSTable中,如果在,再从Index文件中定位到数据的位置,最后从Data文件中读取需要查询的信息。弱读取的执行流程如下:从集群中找出一台最适合读取的服务器。从这个服务器读取数据,如果是本机则对本机的数据进行异步读取。如果不是本机,向该服务器请求需要的数据,并根据一定的概率进行计算是否进行读取修复操作。等待 阅读全文
posted @ 2011-07-23 10:29 GG大婶 阅读(934) 评论(0) 推荐(0) 编辑
摘要: 其实看了上个文章这个流程就基本能猜到了哈。数据更新流程更新数据写入Commitlog。更新数据写入Memtable。更新数据写入SSTable。集群数据跟新策略为了保证高可用性,写入操作不必等待所有的服务器都相应写入成功,提供六种一致性写入策略:ANY:有一个成功响应就通知客户端成功(包括HINT消息)。ONE:和ANY不同的是不包括HINT消息。QUORUM:成功的服务器数目不小于“ReplicationFactor/2+1”(不包括HINT消息)。LOCAL_QUORUM:与3不同的是写入成功的节点中有一台与接受写入操作的服务器处于同一个数据中心时返回更新成功。EACH_QUORUM:与4 阅读全文
posted @ 2011-07-21 23:32 GG大婶 阅读(585) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 下一页