- 博客(18)
- 收藏
- 关注
原创 Class Loader
学习ClassLoader有几个关注点:From: http://www.ibm.com/developerworks/cn/java/j-lo-classloader/index.html 1. java.lang.ClassLoader 中的关键方法 方法说明getParent() 返回该类加载器的父类加载器。...
2010-11-26 14:18:31 98
原创 ClassNotFoundException and NoClassDefFoundError
From: http://jroller.com/sjivan/entry/difference_between_classnotfoundexception_and_noclassdeffounderror A ClassNotFoundException is thrown when the reported class is not found by the ClassLoad...
2010-11-26 13:51:16 137
原创 CAS
CAS is an authentication system originally created by Yale University to provide a trusted way for an application to authenticate a user. CAS is an enterprise Single Sign-On solution for web serv...
2010-11-26 12:36:57 91
原创 OpenID and OAuth
From http://cakebaker.42dh.com/2008/04/01/openid-versus-oauth-from-the-users-perspective/ In this article I want to show the differences between OpenID and its younger cousin OAuth by providing...
2010-11-26 11:49:15 94
原创 Session 在Cluster情况下的管理
1. in-memory replication 2. database based session 一个具体的Case是购物车程序中购物车,选择的商品放到session中的管理。
2010-11-21 12:08:13 106
原创 线程池与对象池
1. Web Servlet Container之线程池 一个request会有一个线程来处理,Servlet实例只有一个,因此servlet需要考虑多线程问题。 Thread Pool Size需要设置合理。太小浪费CPU处理能力。 2. SLSB之与对象池...
2010-11-21 12:04:30 146
原创 -Xms -Xmx 参数
1. 有的性能调优文章中建议-Xms和-Xmx参数调整到相同值是考虑到物理Server上主要只有一个Java应用,没必要初始堆比较小慢慢调整堆大小。 相反不适合的情况是如果一台物理Server上安装有多个Java 应用的时候,JVM的这两个参数应该不同,这个各个JVM动态调整各自堆的大小,物理机内存得到最大的利用。 2. -Xms -Xmx 参数大小决定了GC时间间隔和Pau...
2010-11-21 10:21:21 136
原创 如何避免两个对象的相互引用引起的堆栈溢出
两个对象相互引用,并且这种引用关系定义在构造函数中时,初始化这种对象会引起堆栈溢出。因为对象1的初始化调用了对象2的初始化,反之亦然。这样会构成死循环。解决方法是用一个无参数的构造函数代替。对象的引用依赖关系通过Set方法在对象初始化之后设置进去。当然一个缺点是需要注意无参数构造函数生成的对象是一个不完整的对象。...
2010-11-21 07:38:02 732
原创 架构考虑的
考量的是Non Functional factors, 其中有: 1. Response Time 处理一次请求的时间或者平均时间 2. Throughput 一般以 hits per second or transactions per second 度量 3. Scalability Scale up(Vertical Scalabili...
2010-11-20 14:02:09 83
原创 lazy loading实现
在进行O-R mapping时经常会碰到加载a graph of objects. 这是lazy loading应用的场景。你不想把所有数据库中关联的表对象都一次性load到内存吧? 可用的方法有:1. lazy initialization 简单来说就是使用前判断目标对象是否为null,是则真正从数据库加载。缺点是非null时并不总是代表对象加载了。还有一个缺点是domai...
2010-11-20 08:31:48 657
原创 java 对象状态
对象一共有六种状态: 强引用有三种, 可触及的:从根节点出发可到达该对象可复活的: 已经没有对象引用它了,但可能从finalize()终结函数中调用使其复活不可触及的: 没有其他对象引用,也不会因为终结函数复活 三个引用对象,软引用弱引用影子引用引用对象指向目标对象。强引用的目标对象不会被GC回收,弱引用并不禁止目标对象被回收。这里的强弱是正对目标对...
2010-11-15 17:43:26 142
原创 java 中多继承
我们知道,java是不支持多继承的。要实现此目的,方法一:改为接口,Java支持实现多个接口 方法二:采用内部类,内部类可以访问外部类的成员,达到继承同样的目的。...
2010-11-14 09:58:04 61
原创 如何同一份代码兼顾新老的API
实际编程中如果代码需要同时考虑Android1/2的API时,如何在同一份代码中做到兼容? 其实在Android2.2的开发包Sample (/ApiDemos/src/com/example/android/apis/app/ForegroundService.java)中就有很好的例子。 此处主要考虑Android 2.2中 Service类中新添加的接口startFore...
2010-11-09 21:45:21 101
原创 动态加载类的方式
背景知识:类的初始化前还需要有两个阶段:load和连接。连接又分为验证(),准备(类型 内存),解析(符号引用解析成直接引用)三个阶段。 动态加载类有java.lang.Class.forName() 和 自定义ClassLoader的loadClass()两种方式。区别是loadClass方式并不能保证类被初始化了(有个带resolve参数的接口已经被废弃了)。而forName方式有个参...
2010-11-08 12:29:30 98
原创 深入Java虚拟机
1. 能否自己写一个java.lang.Virus类用?该类能否获取java.lang包的包访问权限? 问题一答案是yes, 这个自定义的Virus类可以由用户类类装载器装载(就是不是启动类,扩展类,classpath类装载器的那个装载器)问题二答案是No,因为包访问权限必须是同一个类装载器下的包中的类。位于java.lang中的系统类都是由启动类装载器装载的,自定义的java.lan...
2010-11-03 09:27:50 77
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人