| 
 1 为什么说arraylist比vector 快?(除线程安全不安全问题) 2 在mybatis 和 hibernate 两者里面, 它们各自有什么东西 是对方实现不了的?  | 
|
![]() 10分  | 
 第一个看了源码,都是通过数组实现的,get、add方法除了synchronized,似乎没有啥其它区别,难道是指其它方法实现方面?
 
第二个,确实没怎么系统思考过,找到一篇博文:http://blog.csdn.net/firejuly/article/details/8190229  | 
![]()  | 
 你应聘的什么职位?mybatis和hibenate和游戏开发有什么关系? 
 | 
![]()  | 
 1.扩容 
2.mb的sql配置化,,hb的hql  | 
![]()  | 
 大家看看:ArrayList与Vector的线程保险  
http://www.myexception.cn/program/1045146.html 我不明白 那个 null 为何有时 出来 有时候不出来 
import java.util.ArrayList;
import java.util.Vector;
/**
 * Copyright(c), 2011-2100
 * <p>Cwc System
 * @description:Synchronized of Vector and ArrayList  
 * @file name:	com.cwc.util.SynchronizedCollection.java
 * @create:		by author axis on Mar 2, 2011 5:53:52 PM
 * @since: 		JDK1.6u21
 */
public class SynchronizedCollection {
	@SuppressWarnings("unchecked")
	static ArrayList arrayList = new ArrayList(20);
	@SuppressWarnings("unchecked")
	static Vector vector = new Vector();
	public static void main(String[] args) {
		Thread threadOne = new Thread(){
			@SuppressWarnings("unchecked")
			public void run(){
				for (int i = 0; i < 10; i++) {
					arrayList.add(arrayList.size(),new Integer(i));
					vector.add(vector.size(),new Integer(i));
					try {
						Thread.sleep(10);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}
		};
		Thread threadTwo= new Thread(){
			@SuppressWarnings("unchecked")
			public void run(){
				for (int i = 0; i < 10; i++) {
					arrayList.add(arrayList.size(),new Integer(i));
					vector.add(vector.size(),new Integer(i));
					try {
						Thread.sleep(10);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}
		};
		try {
			threadOne.start();
			threadTwo.start();
			threadOne.join();
			threadTwo.join();
			System.out.println(arrayList);
			System.out.println(vector);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
}
 
[0, 0, 1, 1, 2, null, 3, 3, 4, 4, 5, 5, 6, 6, 7, null, 8, 8, 9, 9] [0, 1, 2, 3, 3, 4, null, 5, 6, 6, 7, 7, 8, 8, 9, 9] i < size ??  | 
![]()  | 
 arraylist和vector都是集合类,但是一个是线程安全的,一个是不安全的 
 | 
![]()  | 
 vector是枚举过时的方法,为线程同步,因此方法里面都加了sysn同步锁,每次运行代码都要访问这个锁,里面是否有内容在执行,若有程序停止,若没有,继续运行。 
而arraylist集合没有同步锁,为线程不安全的,程序一直运行。  | 
![]() 18分  | 
 1.应该就是5楼说的扩容了,vector成倍扩容,arraylist按50%扩容。在查询插入删除元素上,两个的复杂度是一样的。 
 | 
![]()  | 
 学习一下!!!! 
 | 
![]()  | 
 第一个不清楚; 
第二个不知道;  | 
![]()  | 
 过来学习一下 
 | 
![]()  | 
 涨知识了。。。。 
 | 
![]()  | 
 1、同步必然导致性能下降,但是JDK1.5之后,synchronized的效率有了很高的提升 
2、mybatis sql配置化,hibernate hql  | 
![]()  | 
 learning 
 | 
![]()  | 
 先顶再看,学学经验 
 | 
![]()  | 
 页游啊?
 
我还是以为是端游呢。  | 
![]()  | 
 我面试的游戏的公司,基本都在问并发、多线程、优化,代码基本不问。 
 | 
![]()  | 
 看看..学习学习 
 | 
![]()  | 
 进来学习一下。。。 
 | 
![]() 2分  | 
 学习中~~知道了Vector扩容是成倍增长的,而ArrayList是50%增长。同步的就不用说了~~ 
 | 
![]()  | 
 学习来了 
 | 
![]()  | 
 路过,学习了 
 | 
![]()  | 
 过了N年以后再回来看,哇,这么简单!但现在是真不会啊..学习学习… 
 | 
![]()  | 
 学习了  
 | 
![]()  | 
 第一题让我想起了当初去阿里面试的时候。那个面试官让我写arraylist的源码~结果我不知道是多少扩容的~so~ 
 | 
![]()  | 
 一个是线程安全的,一个是不安全的 ! 
 | 
![]()  | 
 你面试的”复读机”职位吗?  | 
![]()  | 
 这面试时候不是很常见么?能扯到复读机上去?  | 
![]()  | 
 我是来看评论的 
 | 
![]()  | 
 想学习一下,结果也没看大神级的回答,期待… 
 | 
![]()  | 
 游戏 从来不用这2个。 
 | 
![]()  | 
 服务端要用数据库啊。。  | 
![]()  | 
 直接插入写SQL语句就好,hi什么bernate呢  | 
![]()  | 
 不明觉历啊a 
 | 
![]()  | 
 学习了 
 | 
![]()  | 
 新年大吉啊啊啊啊 
 | 
![]()  | 
 mybatis sql全在配置文件便于管理,弊端在于不利于跟踪代码定位。  hb的hql都是写在代码里面的 后期要是改下条件什么的找起来麻烦 但是便于跟踪,纠错。 
 | 
![]()  | 
 学习了 
 | 
![]()  | 
 且学且珍惜,得认学习真正消化 
 | 
![]()  | 
 感觉不错,很好,学习了 
 | 
                    
