java
zhangxzhi
这个作者很懒,什么都没留下…
展开
-
简明OPhone/Android入门体验(有图有源码)
主要参考[url]http://code.google.com/p/androidbmi/wiki/DiveIntoAndroid[/url]这个教程是一个比较好的教程,但是天下没有人人满意的东西。主要而言,对某些读者,该教程有两个小小的不足,1是繁体字,2是作者照顾了很多刚入门的程序员,写的太细致了,比如还要抽空讲一讲java,xml的一些语法。本文的特点就是,1普通话,2面...2009-09-25 00:34:35 · 79 阅读 · 0 评论 -
xml encoding和实际编码不同导致xml解析异常
发现一个xml encoding和实际编码不同导致xml解析异常。对于市 使用了utf-8 getBytes后得到一个byte[],然后使用xml解析。由于xml解析器会自动识别xml中的GBK,然后使用GBK解码,导致xml解析失败。市 utf-8 3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E...2014-04-10 09:52:02 · 766 阅读 · 0 评论 -
按照bit读取或写入java的IO流
写了个按照bit读取或写入java的IO流的简单代码,保留在博客里备忘。[code="java"]/** * 按bit读取的input。 * */public class BitInput { private InputStream input; private int value; private int ne...2012-11-18 22:00:54 · 645 阅读 · 0 评论 -
类构造函数clinit尽量简单化
java的类构造方法只能执行一次(不考虑多个类加载器和类卸载的情况),由jvm隐式加锁保护完成。因此,在clinit方法的实现时,要尽量简单,避免复杂的操作,尤其是加锁的操作,避免monitor lock和clinit的隐式锁构成死锁。以下是一些验证代码。[code="java"]import org.junit.Test;class User { //一个类...2012-01-29 16:30:10 · 124 阅读 · 0 评论 -
使用ImageIO.write存储png格式图片性能较差问题
目前加载一个png格式的图片,做一些绘图工作,发现ImageIO.write存储png性能较差,转为存储jpg格式图片,性能可以提高6,7倍。代码如下。[code="java"]package test;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import jav...2011-12-27 19:06:27 · 5581 阅读 · 4 评论 -
[gc] java内存管理以及GC
[b]目录内存管理简介 GC简介 好的Collector的特性 设计或选择Collector GC性能指标 分代GC Java Collector 快速内存分配GC根集合 Serial Collector Parallel Collector/Throughput Collector Parallel Compacting Collector C...2011-03-27 13:25:44 · 115 阅读 · 0 评论 -
[gc] GC调优及awk脚本分析GC日志
原有GC参数JAVA_OPTS="-server -XX:+UseParNewGC -Xms768m -Xmx1280m -XX:MaxNewSize=128m -XX:NewSize=128m -XX:PermSize=96m -XX:MaxPermSize=128m -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -verbos...2011-07-20 19:26:31 · 197 阅读 · 0 评论 -
jvm性能查看工具
jps查看所有java进程。jconsolejvisualVMjmap pid 查看共享对象。 jmap -heap pid 查看java进程堆的相关信息。 jmap -histo pid 查询各种对象占用的内存大小。 jmap -permstat pid 查看Class Loader。 jmap -dump:file=filename,format=b p...2011-06-18 11:48:55 · 96 阅读 · 0 评论 -
java集合框架类源代码阅读体会(Java Collections Framework)
忘了什么原因突然想看下JCF,于是就有了这个阅读体会。java版本基于sun jdk1.6.0_18[b]1 通用接口[/b][img]http://dl.iteye.com/upload/attachment/555922/d431911b-0fda-3d24-b8de-5d61f656cb39.jpg[/img]public interface Iterab...2011-09-17 23:55:03 · 145 阅读 · 0 评论 -
object的hash code
sun的jvm默认的hash code返回的是对象的内部地址构造的int。那么就有了2个问题。1 会不会重复。2 同一个对象的hash code在gc移动了该对象之后会不会改变。当然会重复了。无限的对象,有限的地址空间,hash是可以重复的。同一个对象的hash code即使gc移动了该对象也不会改变。jvm内部在object上加了标识位(2bits加上按需分配的存...2011-01-03 19:40:48 · 89 阅读 · 0 评论 -
[code] 大量只读线程安全的FastHashMap
org.apache.commons.collections.FastHashMap是java.util.HashMap的一个实现。其适用的环境是有大量的读,而很少有map结构的改动的环境,并且在这种环境下为线程安全。它之所以快,是因为在读取的时候是不加锁的。而改动分三步:1 克隆现有map 2 改动克隆map 3 用克隆map替换现有map。FastHas...原创 2010-06-25 17:27:44 · 284 阅读 · 0 评论 -
Enum简介
java的Enum不同于c的命名整型常量,它本身是有类型的,而且Enum不能用new生成。Enum不能extends其他类型,因为它本身extends了java.lang.Enum,也不能被其他类型明确extends,好像final类一样。但是其实Enum还是可以被隐式继承的,constant-specific class bodies。Enum可以实现接口,默认实现了Serial...2010-08-16 21:51:45 · 70 阅读 · 0 评论 -
java1.5中{@inheritDoc}的使用
java1.5中@Override还不能用在interface上,只能用在class上。给我们的代码注释带来了一定的烦恼。为了表明一个方法是实现一个interface,我们可以使用{@inheritDoc}来标识,同时,该tag会把super type的注释复制下来。[code="java"]public interface A { /** * F method. * @p...2010-07-12 23:14:39 · 442 阅读 · 0 评论 -
[code] 继承TableRowSorter的一个小陷阱
在一个JTable里面想做sorting。继承了TableRowSorter覆盖了getComparator方法。返回了基于底层model的各个列特化的Comparator。原本期望就可以sorting了,但是失败了,抛ClassCast异常。因为底层model有一个列里面的类型是没有实现Comparable的。有问题,问源码。DefaultRowSorter的compare方法调...2010-01-09 21:54:29 · 147 阅读 · 0 评论 -
深入理解ReferenceQueue GC finalize Reference
[url=http://zhang-xzhi-xjtu.iteye.com/blog/484934]关于对象如何销毁以及finalize更详细的信息[/url][b]目录[/b]概述1 先看一个对象finalize的顺序问题。2 对象再生及finalize只能执行一次3 SoftReference WeakReference4 PhantomReference5...2009-06-22 22:55:37 · 126 阅读 · 0 评论 -
[code] 多个线程写入,单线程读出的Stream对
今天想做一个System.out的重定向,想要得的结果是有很多个线程写System.out,利用PipedStread重定向一个JPanel,结果拿到一堆IOException("Write end dead").看看PipedStream的code,发现里面有些东东值得探讨。原有的PipedOutputStream和PipedInputStream的工作原理是这样的。发往Pi...2009-11-06 10:38:28 · 171 阅读 · 0 评论 -
深入理解java的finalize
[b]目录[/b]基本预备相关知识对象的销毁过程对象重生的例子对象的finalize的执行顺序何时及如何使用finalize参考[b]基本预备相关知识[/b]1 java的GC只负责内存相关的清理,所有其它资源的清理必须由程序员手工完成。要不然会引起资源泄露,有可能导致程序崩溃。2 调用GC并不保证GC实际执行。3 finalize抛出的...2009-10-11 01:23:29 · 234 阅读 · 0 评论 -
深入理解java的clone
[b]目录[/b]预备知识为什么要cloneObject的clone以及为什么如此实现如何clone对clone的态度其他的选择和Serializable的比较性能[b]预备知识[/b]为了理解java的clone,有必要先温习以下的知识。java的类型,java的类型分为两大类,一类为primitive,如int,另一类为引用类型,如Str...2009-10-09 14:13:38 · 238 阅读 · 0 评论 -
java对象的大小_基础知识
[b]引言[/b]Java的对象被jvm管理,单个对象如何布局,大小如何,程序员可以不用关心。但是,掌握一些相关的知识,可以让我们对应用中使用的对象大小有一个大致的估计,做到心中有数,当遇到内存敏感型应用时,可以通过适当的参数调节和应用优化减少内存占用。另外,just for fun。[b]声明[/b]以下讨论大部分都是基于32bits Java Hotspot VM,...原创 2014-09-14 16:51:33 · 150 阅读 · 0 评论