摘要:
在java多线程程序中,所有线程都不允许抛出未捕获的checked exception,也就是说各个线程需要自己把自己的checked exception处理掉。这一点是通过java.lang.Runnable.run()方法声明(因为此方法声明上没有throws exception部分)进行了... 阅读全文
摘要:
对于因为编程错误而导致的异常,或者是不能期望程序捕获的异常(引用一个空指针,数组越界,除零,等等),为了使开发人员免于处理这些异常,一些异常被命名为非检查型异常(即那些继承自 RuntimeException 的异常)并且不需要进行声明(throws)。Checked Exception和Unc... 阅读全文
摘要:
首先看一下Thrift的整体架构,如下图: 如图所示,黄色部分是用户实现的业务逻辑,褐色部分是根据thrift定义的服务接口描述文件生成的客户端和服务器端代码框架(前篇2中已分析了thrift service生成代码),红色部分是根据Thrift文件生成代码实现数据的读写操作。红色部分以下是... 阅读全文
摘要:
一:HashMap 谈论Consistent Hashing前,先回顾一下HashMap. 当使用HashMap时,key会被均匀的映射到hashMap内部数组中(Entry【】),映射方法利用key的hash值做移位运算,和entry数组的长度(Length-1)做与运算(和hashtabl... 阅读全文
摘要:
代码生成类解析: Thrift--facebook RPC框架,介绍就不说了,百度,google一大把,使用也不介绍,直接上结构和分析吧。 Hello.thrift文件内容如下:namespace java com.tomsun.thrift.generated.demoservice H... 阅读全文
摘要:
1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377' \0:空字符2.Unicode转义字符:\u +四个十六进制数字;0~65535 \u0000:空字符3.特殊字符:就3个 \" :双引号 \' :单引号 \\ :反斜线4.控制字符:5个 \'单引号字符\\反斜杠字... 阅读全文
摘要:
JSON :Javascript Object Notation,一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XM... 阅读全文
摘要:
一:protobuf编码基本数据类型 public enum FieldType { DOUBLE (JavaType.DOUBLE , WIRETYPE_FIXED64 ), FLOAT (JavaType.FLOAT , WIRETYPE_F... 阅读全文
摘要:
Enum用法: 1:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED, GREEN, BLANK, YE... 阅读全文
摘要:
Protobuf 的优点 Protobuf 有如 XML,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。只需使用 Protobuf 对数据结构进行一次描述,即可利用各种不同语言或从各种不同数... 阅读全文