- 浏览: 231643 次
- 性别:
- 来自: 上海
最新评论
-
hanmiao:
我在IBM网站上找到这篇文章,比较详细的介绍了信息分片与信息分 ...
Websphere MQ -
lancezhcj:
...
Oracle索引 -
shaier:
讲的很不错啊!
SERVICE_NAME, SID和schema区别 -
echohfut:
好久没有关注了。但是取下来的代码怎么导入Eclipse呢?
liferay笔记 -
webee:
已经有ide了!命令都可以不要了!
liferay笔记
文章列表
1. perfMon
图形显示CPU,内存,磁盘/网络 I/O使用情况
类似于Linux平台下的ps/top命令
1. 有的性能调优文章中建议-Xms和-Xmx参数调整到相同值是考虑到物理Server上主要只有一个Java应用,没必要初始堆比较小慢慢调整堆大小。
相反不适合的情况是如果一台物理Server上安装有多个Java 应用的时候,JVM的这两个参数应该不同,这个各个JVM动态调整各自堆的大小,物理机内存得到最大的利用。
2. -Xms -Xmx 参数大小决定了GC时间间隔和Pause Time
堆大小偏小的话,GC间隔时间小,Pause Time也小
堆大小偏大的话,GC间隔时间大,Pause Time也大。
具体情况要多尝试找到平衡点。
如何避免两个对象的相互引用引起的堆栈溢出
- 博客分类:
- JDK
两个对象相互引用,并且这种引用关系定义在构造函数中时,初始化这种对象会引起堆栈溢出。因为对象1的初始化调用了对象2的初始化,反之亦然。这样会构成死循环。解决方法是用一个无参数的构造函数代替。对象的引用依赖关系通过Set方法在对象初始化之后设置进去。当然一个缺点是需要注意无参数构造函数生成的对象是一个不完整的对象。
考量的是Non Functional factors, 其中有:
1. Response Time
处理一次请求的时间或者平均时间
2. Throughput
一般以 hits per second or transactions per second 度量
3. Scalability
Scale up(Vertical Scalability) and Scale out ( horizontal scalability )
Vertical Scalability我的理解是提高服务器硬件配置比如CPU和内存,同时也包括在一台 ...
lazy loading实现
- 博客分类:
- design
在进行O-R mapping时经常会碰到加载a graph of objects. 这是lazy loading应用的场景。你不想把所有数据库中关联的表对象都一次性load到内存吧?
可用的方法有:
1. lazy initialization
简单来说就是使用前判断目标对象是否为null,是则真正从数据库加载。缺点是非null时并不总是代表对象加载了。还有一个缺点是domain类中加入了调用数据库的逻辑。
2. virtual proxy
主要考虑one-many 关系,对应有一个List或者Set需要做lazy loading. 一般可以继承List/S ...
对象一共有六种状态:
强引用有三种,
可触及的:从根节点出发可到达该对象
可复活的: 已经没有对象引用它了,但可能从finalize()终结函数中调用使其复活
不可触及的: 没有其他对象引用,也不会因为终结函数复活
三个引用对象,
软引用
弱引用
影子引用
引用对象指向目标对象。强引用的目标对象不会被GC回收,弱引用并不禁止目标对象被回收。这里的强弱是正对目标对象来说的。
我们知道,java是不支持多继承的。要实现此目的,
方法一:
改为接口,Java支持实现多个接口
方法二:
采用内部类,内部类可以访问外部类的成员,达到继承同样的目的。
云计算在以下几个方面应用:
存储,内存,计算,网络
IAAS/PAAS/SAAS
软件/硬件 随需应用
计费/SLA
相濡以沫不如相忘于江湖
- 博客分类:
- Diary
新人类的观念吗?说的总并做容易。不过如果不快乐,放手相忘于红尘未尝不是一件幸事!
实际编程中如果代码需要同时考虑Android1/2的API时,如何在同一份代码中做到兼容?
其实在Android2.2的开发包Sample (/ApiDemos/src/com/example/android/apis/app/ForegroundService.java)中就有很好的例子。
此处主要考虑Android 2.2中 Service类中新添加的接口
startForeground(int id, Notification notification)
stopForeground(boolean removeNotification)
...
背景知识:类的初始化前还需要有两个阶段:load和连接。连接又分为验证(),准备(类型 内存),解析(符号引用解析成直接引用)三个阶段。
动态加载类有java.lang.Class.forName() 和 自定义ClassLoader的loadClass()两种方式。区别是loadClass方式并不能保证类被初始化了(有个带resolve参数的接口已经被废弃了)。而forName方式有个参数initialize=true参数可以保证该类被连接,初始化了。
接口如下:
public static Class forName(String className, boolean in ...
1. 能否自己写一个java.lang.Virus类用?该类能否获取java.lang包的包访问权限?
问题一答案是yes, 这个自定义的Virus类可以由用户类类装载器装载(就是不是启动类,扩展类,classpath类装载器的那个装载器)
问题二答案是No,因为包访问权限必须是同一个类装载器下的包中的类。位于java.lang中的系统类都是由启动类装载器装载的,自定义的java.lang.Virus是用用户类类装载器装载的,两者之间不能拥有包访问权限。
目前网络上有一些基于Web发布的Service接口,此处不一定特指基于SOAP的Web Service接口。大多时候我更喜欢暴露出一个URL,开发者传入查询参数返回XML或者jason数据的接口。比如:
1. Wiki接口
http://en.wiktionary.org/w/api.php?action=query ...
这是Javascript中的三个对URL进行编码的方法,区别如下:
1. escape()
采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。unescape方法与此相反。
不会被此方法编码的字符: @ * / +
2. encodeURL
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。
不会被此方法编码的字符:! @ # $&am ...
转自:http://hi.baidu.com/xu_yunan/blog/item/7ce5d93bb279d22c96ddd843.html
1. 用户名正则表达式模式
^[a-z0-9_-]{3,15}$
^ # 行开始
[a-z0-9_-] # 匹配列表中的字符,a-z,0–9,下划线,连字符
{3,15} # 长度至少3个字符,最大长度为15
$ # 行结束
2. 密码正则表达式模式
((?=.*\ ...