- 博客(27)
- 收藏
- 关注
原创 二叉树
二叉树:每个结点最多有两个子树的有序树树和二叉树的2个主要差别: 1. 树中结点的最大度数没有限制,而二叉树结点的最大度数为2; 2. 树的结点无左、右之分,而二叉树的结点有左、右之分。…… 完全二叉树:若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的节点都连续集中在最左边,这就是完全二叉树 满二叉树...
2010-12-31 23:34:05 155
原创 serialVersionUID
为了在反序列化时,确保类版本的兼容性,最好在每个要序列化的类中加入private static final long serialVersionUID这个属性,具体数值自己定义。这样,即使某个类在与之对应的对象已经序列化出去后做了修改,该对象依然可以被正确反序列化。否则,如果不显式定义该属性,这个属性值将由JVM根据类的相关信息计算,而修改后的类的计算结果与修改前的类的计算结果往往...
2010-11-16 23:16:53 130
原创 讲synchronized和ReentrantLock 使用场景
http://www.ibm.com/developerworks/cn/java/j-jtp10264/index.html
2010-10-30 20:07:47 581
原创 classLoad有关的问题
1. Foo.class 代表什么 Whenever we compile any Java file, the compiler will embed a public, static, final field named class, of the type java.lang.Class, in the emitted byte code. Since this field is ...
2010-09-04 18:23:08 158
原创 Synchronized 同步方法和同步代码块
public class Foo implements Runnable{ private static byte[] lock = new byte[0]; @Override public void run() { methodA(); } public synchronized void methodA(){...
2010-06-02 15:56:29 171
原创 实现常量接口
把常量定义在接口中,要用到的类里实现它,就可以直接用这些常量EffectiveJava第17条对这种方式提出反对,理由如下1.接口被用作一个类型,通过此类型可以引用这个类的实例,为了其他目的定义接口不合适。2.类中使用常量,这是实现细节,实现常量接口后,把这个实现细节泄漏到该类的API中,对类的用户也没有价值3.将来中类不需要这些常量了,仍必须实现这个接口,以保证兼容性。4.常...
2010-06-02 00:43:47 201
原创 cdn工作原理
在描述CDN的实现原理,让我们先看传统的未加缓存服务的访问过程,以便了解CDN缓存访问方式与未加缓存访问方式的差别:由上图可见,用户访问未使用CDN缓存网站的过程为:用户向浏览器提供要访问的域名;浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址;浏览器使用所得到的IP地址,域名的服务主机发出数据访问请求;浏览器根据域名主机返回的数据显示网页的内容。...
2010-05-06 10:36:19 110
break 加标签
public class NewGrame { public void test() { scan: { for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { System.out.println("i:" + i+"---j:" + j); if (...
2010-05-05 01:06:28 143
为什么有的异常不用捕获
继承自RuntimeException的都不用捕获或者再次抛出,例如 NullPointerException IllegalArgumentException Error也不用,不过Error不建议程序中捕获,因为抛出Error一般都是些严重的错误。 《Spring in Action》说到 DataAccessException ,这个异常是spring DAO层异常的父类。也是...
2010-04-30 13:30:27 595
用匿名内部类实现回调
public interface SqlMapCallback { void doInsert();} public class SqlMapTemplate { public void doInsert() { execute(new SqlMapCallback() { @Override public void doInsert() {...
2010-04-30 13:27:36 186
看下classpath是在哪个目录
用spring的ClassPathXmlApplicationContext加载容器配置文件的时候经常不知道是去哪个目录加载,加载配置文件时需要借助JDK的ClassLoader.getResources(String name)方法ClassLoader loader = Thread.currentThread().getContextClassLoader(); Enumerat...
2010-04-21 23:02:49 157
使用HtmlAdaptor和Jconsole管理Mbean
先创建个要管理的MBeanpublic interface HelloMBean { public String getName(); public void setName(String name); public void printHello(); public void printHello(String whoName);} 实现这个MBean...
2010-04-17 16:47:03 243
影响hashMap性能的因素
Capacity:hash表里bucket的数量Initial capacity:创建hash表的时 bucket的数量 (java使用2的整数次方,对处理器来说,除法和取模是最慢的两种操作,所以如果hash表长度是2的整数次方,就能用掩码代替除法。)Size : 当前表的数量Load factor:size/ capacity 负载教轻的表会有较少的冲突,因此插入和查找速度会比较...
2010-03-22 23:57:46 982
原创 @Override
重写父类或接口的方法时 加上@Override 系统可以帮你检查方法的正确性@Override public String tostring(){...}编译器可以检测出这种写法是错误的 这样能保证你的确重写的方法正确 而如果不加@Override public String tostring(){...}这样编译器是不会报错的 它只会认为这是你自己新加的一个方法而已 ...
2010-01-31 01:11:18 117
原创 看完《高性能网站建设指南》
这本书封面写的是 前端工程师技能精髓,对前端工程师应该是本入门好书,里面介绍了14个性能黄金法则,让你有这些理念,要具体实现或源码的,没有,哈哈,很薄。这里记录一下我认为有用的,备忘。身为一个伪ued,调试页面的工具要专业,我一般装 firefox,ie7,绿色版ie6.插件用ietab,firebug,yslow,httpwatch。基本这些就够了,平时这些就能搞定页面。以下是读后觉得有...
2010-01-06 00:06:14 133
原创 classLoader 的整理
转载 http://blog.csdn.net/turkeyzhou/archive/2008/08/19/2792876.aspx ClassLoader分类:类装载器是用来把类(class)装载进JVM的。JVM规范定义了两种类型的类装载器:启动内装载器(bootstrap)和用户自定义装载器(user-defined class loader)。 JVM在运行时会产生三个...
2010-01-03 20:20:32 82
原创 简单的从文件系统中加载类
package com.hong.classLoader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;public class FileClassLoader extends ClassLoader { private static int byteLengt...
2010-01-02 11:24:54 159
原创 复习单例模式
基本的单例模式: public class SingletonTest{ private static SingletonTestinstance; private SingletonTest() { } public static SingletonTest getInstance() { if (instance == null) { in...
2010-01-02 01:08:07 118
原创 Load负载
系统平均负载,在特定时间间隔内运行队列中的平均进程数。如果一个进程满足以下条件就会在运行队列中1.没有在等待I/O操作的结果2.它没有主动进入等待状态(也就是没有调用wait)3.没有被停止...
2009-12-19 23:38:19 114
原创 会引起全表扫描的几种SQL
1、模糊查询效率很低: 原因:like本身效率就比较低,应该尽量避免查询条件使用like;对于like ‘%...%’(全模糊)这样的条件,是无法使用索引的,全表扫描自然效率很低;另外,由于匹配算法的关系,模糊查询的字段长度越大,模糊查询效率越低。 解决办法:首先尽量避免模糊查询,如果因为业务需要一定要使用模糊查询,则至少保证不要使用全模糊查询,对于右模糊查询,即like ‘…...
2009-12-12 18:08:20 568
原创 maven 下载源码
使maven2在下载依赖包的同时下载其源代码包的方法:使用maven命令:mvn dependency:sources 下载依赖包的源代码。构建web项目 D:\>mvn archetype:create -DgroupId=com.hong.test -DartifactId=webTest -DarchetypeArtifactId=maven-archetype-we...
2009-11-22 22:13:42 74
java安装环境
环境变量中 设置 JAVA_HOME,PATH,CLASSPATHJAVA_HOME:jdk安装目录Path使得系统可以在任何路径下识别java命令,设为: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin PATH:指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到...
2009-11-15 02:32:58 129
原创 处理超出打开游标的最大数异常(ORA-01000: maximum open cursors exceeded)(转)
在执行如下代码时,经常会出现ora-01000: maximum open cursors exceeded异常for(int i=0;i show parameter open_cursors; NAME TYPE VALUE ------------------------------------ -...
2009-08-17 19:13:13 126
servlet 输出流
PrintWriter out = response.getWriter();如果你打算返回一个文本型的(text/*)页面,不论是HTML还是纯文本,通常都需要调用response.getWriter()方法。然而该方法必须在charset被设置之后调用,为什么呢?因为Writer必须知道如何将Java内部的Unicode字符转换成字节流。假如你选择了GBK,一个汉字将被输出成两个字节的编码...
2009-08-11 14:38:45 426
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人