- 浏览: 562517 次
- 性别:
- 来自: 杭州
最新评论
-
hanjiyun:
本人水平还有待提高,进步空间很大,看这些文章给我有很大的指导作 ...
JVM的内存管理 Ⅲ -
liuxinglanyue:
四年后的自己:这种方法 不靠谱。 使用javaagent的方式 ...
计算Java对象占用内存空间的大小(对于32位虚拟机而言) -
jaysoncn:
附件在哪里啊test.NoCertificationHttps ...
使用HttpClient过程中常见的一些问题 -
231fuchenxi:
你好,有redis,memlink,mysql的测试代码吗?可 ...
MemLink 性能测试 -
guyue1015:
[color=orange][/color][size=lar ...
JAVA同步机制
文章列表
package java.util;
public class HashSet<E>
extends AbstractSet<E>
implements Set<E>, Cloneable, java.io.Serializable
{
static final long serialVersionUID = -5024744406713321676L;
private transient HashMap<E,Object> map;
// Dummy value to a ...
他们的相同点都是继承了AbstractStringBuilder类,所有方法基本相同,但是StringBuffer是线程安全的,方法前有synchronized关键字。他们的初始化大小都是16,扩容机制是新容量=(旧容量+1)×2
Java代码
public StringBuilder() {
package java.util;
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {
protected AbstractList() {
}
/**
* 添加元素方法
*/
public boolean add(E e) {
add(size(), e);
return true;
}
/**
...
package java.util;
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
private static final long serialVersionUID = 8683452581122892189L;
/**
*ArrayList储存元素用的数组,显然该类是基于数组实现的
* ...
Vector类源代码欣赏
- 博客分类:
- java综合
Vector类和ArrayList都是基于数组实现的,但是Vector是线程安全的,所有大部分方法和ArrayList一样,只是多了个synchronized关键字。还有不同的地方是扩容机制不一样,如下方法所示
/**
* 确定容量的方法,如果capacityIncrement>0则新的容量=老的容量+capacityIncrement,
否则新的容量=老的容量×2
*/
private void ensureCapacityHelper(int minCapacity) {
int oldCapacity = elementDa ...
package java.util;
import java.io.*;
public class HashMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable
{
/**
* 默认的初始化大小,一定要2的几次方.
*/
static final int DEFAULT_INITIAL_CAPACITY = 16;
/**
*最大的容量
...
首先他们的相同点都实现了Map接口,不同点有很多: 1. Hashtable 继续了抽象类Dictionary,所有Hashtable是线程安全的,而HashMap不是
Java代码
public class Hashtable<K,V>
http://www.iteye.com/topic/553199
结合API文档和网上搜索来的ArrayList的特效来总结下:
API文档是如此介绍ArrayList的:
接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector 类,除了此类是不同步的。)
Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差。
List允许有相同的元素
ArrayList的方法都没有同步,所以在多线程中是不安全的,必须自己同步
toArray()方法返回的是和原列 ...
删除指定位置的元素,返回被删除的元素,由于ArrayList采用一个对象数组存储元素,所以在删除一个元素时需要把后面的元素前移。删除一个元素时只是把该元素在elementData数组中的引用置为null,具体的对象的销毁由垃圾收集器负责
Java代码
public E remove(int index) {
clone一个副本:
Java代码
public Object clone() {
try {
ArrayList是我们使用得最多的一个集合类之一
一般用来做包装DTO到view层来显示数据.
ArrayList继承了AbstractList类,实现了List,RandomAccess,Cloneable接口
Java代码
public class ArrayList<E> extends Abstrac
oracle中执行sql文件关键字:
数据库操作 在oracle中,执行sql文件,可以写一个批处理文件 如:oracle.bat
sqlplus scott/tiger@orcl @e:\example.sql
执行批处理文件就行了
今天学习了一个spring和Hibernate访问Dao,发现还是蛮多问题需要解决的。首先就是HibernateDaoSupport和 HibernateTemplate的选择问题。整理了一下大家的资料和自己的总结共享一下。
HibernateTemplate提供非常多的常用方法来完成基本的操作,比如,添加删除、增加等
spring 2.0更增加对命名sql查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate 的常规用法,就可完成大多数DAO对象的CRUD操作。
CRUD
Introduction
Memlink用于持久化存储论坛中forum=>thread list,thread=>post list数据,下面对比了不同数据存储引擎存储上述逻辑关系的查询性能和内存开销。
Details
硬件
OS:CentOS release 4.6 (Final) 内存:4G CPU:Intel(R) Xeon(R) CPU E5405 @ 2.00GHz (四核)硬盘:250G SATA
数据模型
CREATE TABLE `ThreadList` (
`forumid` int(11) NOT NULL,
`threa ...