- 浏览: 536296 次
- 性别:
- 来自: 杭州
最新评论
-
飞天奔月:
public List<String> gener ...
实践中的重构30_不做油漆匠 -
在世界的中心呼喚愛:
在世界的中心呼喚愛 写道public class A {
...
深入理解ReferenceQueue GC finalize Reference -
在世界的中心呼喚愛:
在世界的中心呼喚愛 写道在世界的中心呼喚愛 写道在classB ...
深入理解ReferenceQueue GC finalize Reference -
在世界的中心呼喚愛:
在世界的中心呼喚愛 写道在classB的finalize上打断 ...
深入理解ReferenceQueue GC finalize Reference -
在世界的中心呼喚愛:
iteye比较少上,如果可以的话,可以发e-mail交流:ch ...
深入理解ReferenceQueue GC finalize Reference
文章列表
https://github.com/zhang-xzhi/simplehbase/
https://github.com/zhang-xzhi/simplehbase/wiki
simplehbase的主要功能
数据类型映射:java类型和hbase的bytes之间的数据转换。
简单操作封装:封装了hbase的put,get,scan等操作为简单的java操作方式。
hbase query封装:封装了hbase的filter,可以使用sql-like的方式操作hbase。
动态query封装:类似于myibatis,可以使用xml配置动态语句查询hbase。
insert,update支 ...
create Htable
put
hbase rpc
HBaseClient call
hbase中的CoprocessorProtocol机制.
CoprocessorProtocol的原理比较简单,近似于一个mapreduce框架。由client将scan分解为面向多个region的请求,并行发送请求到多个region,然后client做一个reduce的操作,得到最后的结果。
先看一个例子,使用hbase的AggregationClient可以做到简单的面向单个column的统计。
@Test
public void testAggregationClient() throws Throwable {
LongColumnInterpreter colu ...
引言
Java的对象被jvm管理,单个对象如何布局,大小如何,程序员可以不用关心。
但是,掌握一些相关的知识,可以让我们对应用中使用的对象大小有一个大致的估计,做到心中有数,当遇到内存敏感型应用时,可以通过适当的参数调节和应用优化减少内存占用。
另外,just for fun。
声明
以下讨论大部分都是基于32bits Java Hotspot VM,关于64bits的会特殊声明。
本文查看java对象的内存输出来自工具包memoryutil
http://zhang-xzhi-xjtu.iteye.com/admin/blogs/2116347
Java对象内存组成
对象内存由以下几部 ...
HBase Client使用注意点:
1 HTable线程不安全。
建议使用HTablePool,或者每次new一个HTable出来。
2 HTable和HConnection的关系。
注意HTable对象之间通过Configuration共享HConnection。
好吧,我偷懒了,实际上是通过HConnectionKey来共享HConnection的。
因此,相同的Configuration(更精准的说法是连接相关参数相同,参阅HConnectionKey)实际上使用的是同一个HConnection。
HConnectionKey可以查看源码。
...
由于很多软件都不能准确自动识别文件编码,因此写了个文件编码识别和转换工具.
编码知识见:
http://zhang-xzhi-xjtu.iteye.com/admin/blogs/1770285
代码见
https://github.com/zhang-xzhi/encodingchecker
目前支持如下编码格式
GBK
US-ASCII
ISO-8859-1
utf-8_withoutBom
utf-8_withBom
UTF-16BE_withBom
UTF-16BE_withoutBom
UTF-16LE_withBom
UTF-16LE_withoutBom
UTF-32BE_wi ...
[置顶] 编码知识ppt1.4
- 博客分类:
- 编程杂谈
编码知识的一个PPT,时隔1年重新更新一个版本。
检测编码的工具可以见
http://zhang-xzhi-xjtu.iteye.com/blog/1547584
[置顶] 多线程文本文件排序
- 博客分类:
- 算法相关
网上看到一道题。https://github.com/Skinney/WordSorter
简单的描述就是,对一个已知的文本文件按行字符串自然序进行排序,结果输出到另一个文件。
设计了一系列算法。
先搞一个最简单的。
Allen01_SimpleSort
1 读取数据。
2 排序。
3 写回。
4 单线程完成所有任务。
数据都是字符串,可以使用桶排先预排序一下。
Allen02_String_Bucket
桶排。按照每一行字符串的前2个字符分为26*26个桶。
数据读取和数据入桶线程分开。
写文件线程必须等待数据入桶线程完成任务。并且对桶内数据进行排序。
面向字符串处理。
...
忘了什么原因突然想看下JCF,于是就有了这个阅读体会。
java版本基于sun jdk1.6.0_18
1 通用接口
public interface Iterable<T>
public interface Iterator<E>
一个典型的iterator模式的应用。
注意注释中提到的Iterator和enumerations一个不同点是方法名的提高,命名还是很重要的。
public interface Collection<E>
extends Iterable<E>
比较有意思。
线程策略由实现类决定。
注意contai ...
目录
内存管理简介
GC简介
好的Collector的特性
设计或选择Collector
GC性能指标
分代GC
Java Collector
快速内存分配
GC根集合
Serial Collector
Parallel Collector/Throughput Collector
Parallel Compacting Collector
Concurrent Mark Sweep Collector (CMS)
4种Collector的对比和适用场景。
Ergonomics
GC调优
OutOfMemoryError
freeMemory(),totalMem ...
这两天一直做code review,经常看着看着就有一种要死的冲动。
好的代码,一个老生常谈的问题。结合最近的实践,总结一下常见的问题。
1 了解你的代码
很多程序员并不了解自己的代码。
比如null!=Object,很多人已经不知道为什 ...
改进了以前的一个代码统计工具,主要是加入ui。这样操作时比较方便。
主界面如下
parser配置界面如下
以下是开发时的一些体会。
1 整体架构的进化
2 该写UT的地方还是要写的
3 对ResultItem的重构
4 UI的添加
5 参考其它的同类型程序
6 保持一个简单的核心概念模型
1 整体架构的进化
刚开始的时候考虑的比较简单,只是说想统计一下写的代码.
当时用的是.net开发的,一两个源文件就做完了.
但是后来不管怎么看都不灵活,主要是感到以下三个方面不太好.
1 对统计什么文件的设置不灵活,最早只能统计一个目录,可以从命令行读该目录,也可以跳过一些特殊的子目 ...
自己一直喜欢玩珠珠,就是把同色的球移到一排消掉的休闲小游戏.
用java做了一个,加了一些新的功能
1 进度的save/load
2 进化的难度系统(随着游戏的进行越来越难)
3 妨碍玩家的特殊球
4 帮助玩家的魔法球
上图
目录
基本预备相关知识
对象的销毁过程
对象重生的例子
对象的finalize的执行顺序
何时及如何使用finalize
参考
基本预备相关知识
1 java的GC只负责内存相关的清理,所有其它资源的清理必须由程序员手工完成。要不然会引起资 ...
目录
预备知识
为什么要clone
Object的clone以及为什么如此实现
如何clone
对clone的态度
其他的选择
和Serializable的比较
性能
预备知识
为了理解java的clone,有必要先温习以下的知识。
java的类型,java的类型分为两大类,一类为primiti ...