- 浏览: 103179 次
- 性别:
- 来自: 北京
最新评论
public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable 里面的方法 多为 synchronized 的因此Vector是线程安全的 Vector里面的好多api和 ArrayList是相似的 区别是线程安全与否 与 动态增长的时候的增长速率不同 动态增长会申请大的空间然后调用Arrays.copyOf()复制过去 这里又调用了System.arrayCopy() 这个是个native 方法 4个构造函数 public Vector() { this(10); } public Vector(int initialCapacity) { this(initialCapacity, 0); } public Vector(int initialCapacity, int capacityIncrement) { super(); if (initialCapacity < 0) throw new IllegalArgumentException("Illegal Capacity: "+ initialCapacity); this.elementData = new Object[initialCapacity]; this.capacityIncrement = capacityIncrement; } protected int capacityIncrement; //与自动增长有关的一个量 public Vector(Collection<? extends E> c) { elementData = c.toArray(); elementCount = elementData.length; // c.toArray might (incorrectly) not return Object[] (see 6260652) if (elementData.getClass() != Object[].class) elementData = Arrays.copyOf(elementData, elementCount, Object[].class); } 与自动增长有关的方法 public synchronized void ensureCapacity(int minCapacity) { modCount++; ensureCapacityHelper(minCapacity); } private void ensureCapacityHelper(int minCapacity) { int oldCapacity = elementData.length; if (minCapacity > oldCapacity) { Object[] oldData = elementData; int newCapacity = (capacityIncrement > 0) ? // vector 中的 capacityIncrement若是被设定了 就增长这么多 (oldCapacity + capacityIncrement) : (oldCapacity * 2); 若是没有就增长2倍 if (newCapacity < minCapacity) { newCapacity = minCapacity; } elementData = Arrays.copyOf(elementData, newCapacity); } } public synchronized void setSize(int newSize) {// 可能扩充 可能裁剪 modCount++; if (newSize > elementCount) { ensureCapacityHelper(newSize); } else { for (int i = newSize ; i < elementCount ; i++) { elementData[i] = null; } } elementCount = newSize; } public synchronized boolean add(E e) { modCount++; ensureCapacityHelper(elementCount + 1); elementData[elementCount++] = e; return true; } public synchronized int capacity() { //返回可容纳的容量 return elementData.length; } public synchronized int size() { // 返回现有元素个数 return elementCount; }
发表评论
-
hibernate中htm.xml注意的一个问题
2011-06-08 12:00 880遇到了这个问题 总是报 org.hibernate ... -
罗马数字转成阿拉伯数字
2011-06-02 13:15 2617首先得知道罗马数字是怎么回事: http://520920. ... -
有关于验证码的
2011-06-01 13:00 634验证码 是怎么出来的呢 应该有很多种方式,今天看到了一段代码中 ... -
转系统架构的一片文章
2011-05-13 14:27 718原文其实应该是.NET上面的 但是我觉得架构上同样适用 ... -
java中从汉字得到拼音的函数【转载】
2011-05-11 10:17 889public class GB2Alpha { ... -
后缀树 后缀数组 字符串的 那些面试题... 【烂,别点进来】
2011-04-24 16:28 1580最近在总结点面试题,好像放在公司里,忘记拷到U盘上了。回去传到 ... -
海量数据的匹配 bloom filter 【别进来 很烂】
2011-04-22 10:30 1018引出 是老张说的腾讯的面试题 说 昨天有一亿个QQ登陆 ... -
Hello mina 【别进来 烂 会后悔】
2011-04-18 17:46 758mina nio 开源代码 以上是关键字 感觉 ... -
java nio & reactor
2011-04-15 14:26 848想看 java io很久了 菜的很 两个文章和一本书 小了解一 ... -
vm到jsp
2011-02-14 14:54 2115http://www.iteye.com/topic/1355 ... -
json&jsonP&跨域
2011-01-10 15:58 776http://www.ibm.com/developerwor ... -
PermGen space
2010-12-14 11:59 714http://blog.csdn.net/Jerry_R ... -
编程珠玑课后题,吝啬的初始化
2010-12-05 16:20 1043在这里,我们有一个稀疏的数组需要访问,并且在第一次访问的时 ... -
BitSet 原理&位操作&基本类型的大小
2010-12-05 11:52 1864因为在看编程珠玑 第一章讲到了 用BitSet来对N多数字进行 ... -
JVM 小总结
2010-11-25 14:22 652http://www.iteye.com/topic/8218 ... -
jdk5.0 6.0新特性
2010-11-25 08:18 566也许会被蛋疼的人问道吧 http://qwzhl100 ... -
对象的复制:ezmorph
2010-11-17 10:59 734ezmoph组件 http://blog.csdn.net/ ... -
how tomcat works
2010-11-16 17:36 976http://jarfield.iteye.com/blog/ ... -
ThreadLocal
2010-11-14 22:05 772起因还是那天培训 对这个了解不深刻 赶紧看看 ... -
ConcurrentHashMap记录
2010-11-14 21:09 836那天的讲座中 武祥提到了 ConcurrentHashMap ...
相关推荐
作者目录Java基础Java基础学习(1)——引用Java基础学习(2)——注解Java基础学习(3)——泛型Java基础学习(4)——动态代理《Java多线程核心技术》读书笔记JDK源Java集合框架源码解读(1)——ArrayList、LinkedList和...
每个JDK版本都包含源码,这对于学习Java的开发者来说极其宝贵,可以深入理解Java的内部工作原理。32位和64位版本的提供,确保了不同硬件环境下的兼容性。通过这个压缩包,开发者可以追溯Java的发展历程,了解每个...
本仓库记录了我的Java学习进阶之路,涵盖了Java基础、JDK源码、JVM中的重要知识,附有代码和博客讲解,旨在提供一个Java在线共享学习平台,帮助更多的Java学习入门者进阶。 Java学习 本仓库记录了我的Java学习进阶...
综上所述,"java源码收集-depthgoods"资源是一个全面学习和提升Java并发、JDK源码理解和JVM知识的好材料。通过深入学习和实践,开发者能够更好地应对多线程环境下的编程挑战,优化代码性能,并具备更深层次的系统级...
Sun公司提供了JDK的源码,虽然隐藏较深,但通过探索可以获得宝贵的学习资源。 在Java Web开发领域,阅读Tomcat源码前,需要有扎实的Servlet和JSP基础,理解Servlet规范,并了解HTTP协议。可以先从简单的Struts框架...
学习笔记(持续更新中) 所有文章均同步发布到微信公众号【JavaRobot】,关注微信公众号,及时得到文章推送,谢谢支持。 说明:如无特别说明,所有代码都基于JDK8 JavaSE(Java基础) Java Core 关键字 synchronized...
源码是开发者的智慧结晶,通过阅读和学习源码,我们可以深入理解游戏的运行机制、编程逻辑以及Android应用开发的实践技巧。 首先,我们要了解在Android平台上开发游戏的基本流程。这通常涉及到以下几个关键步骤: ...
深入理解JDK源码有助于提升对Java语言的理解。例如,Vector、ArrayList既继承了AbstractList又实现了List接口,这是因为接口实现提供了默认实现,而直接继承AbstractList可以获取更多的抽象方法实现,节省代码量。...
Java集合框架是Java编程语言中一个非常重要的组成部分,它提供了数据结构和算法的抽象,使得开发者...在阅读《分布式Java应用:基础与实践》或其他相关资料时,结合JDK源码进行深入学习,可以进一步提升你的编程能力。
Spring源码分析之IoC.docx 关于线程和线程池的学习与使用.docx 深入理解JVM垃圾回收机制.docx 深入理解多线程实现的另一种方式Callable.docx 红黑树简介.docx 线程死锁及解决办法.docx 线程锁之重入锁.docx 线程间的...
在编译过程中可能会遇到语法错误,比如使用了不兼容的Java特性(如`vector<object>`)。如果遇到这种情况,检查并确保项目设置中的JDK版本被设置为1.5或更高版本,因为某些较旧的Weka代码可能不兼容更新的Java版本。...
在使用和学习这个开源项目时,开发者首先需要安装Java Development Kit (JDK) 和相应的构建工具(如Maven或Gradle)。然后,通过解压文件、设置环境变量、导入到IDE(如IntelliJ IDEA或Eclipse)或使用命令行构建...
从提供的文件内容来看,我们可以梳理出一系列关于Java技术的知识...其中不仅包含了大量关于Java核心知识点的解析,还涉及了并发编程、JVM原理以及源码层面的深度理解,非常适合即将参加Java技术面试的开发者参考学习。
Java集合框架是Java库的基石,包括Collection、List、Set、Map及其子类,如ArrayList、LinkedList、Vector、HashSet、TreeSet、HashMap和TreeMap等。深入分析这些类的源码有助于理解它们的工作原理。Java NIO(非...
* JDK源码中的集合类实现 5. JVM和类加载机制: * JVM的结构和类加载原理 * 类加载机制的理解 6. 设计模式: * 观察者模式的实现 * 其他设计模式的理解和应用 7. 分布式系统和负载均衡: * 分布式系统的设计和...
6. 集合API:深入学习Collection、List、Set、Map及其子类如ArrayList、LinkedList、Vector、HashSet、TreeSet、HashMap和TreeMap等,分析其源代码并结合数据结构加深理解。 7. AWT和Swing:理解这两个图形用户界面...
- **StringBuilder**:JDK 5.0新增,非线程安全,效率高于StringBuffer,适用于单线程环境。 3. **字符串分隔函数**:题目中的函数`split(String str, int chars)`将字符串按指定字符长度分隔,返回一个字符串数组...
5. **Android图形与动画**:中国象棋棋盘和棋子的显示可能使用了Bitmap、Canvas或者Vector Drawable资源,同时,移动棋子的动画效果可能通过Property Animation或Transition API实现。 6. **触摸事件处理**:...
**支持向量机(Support Vector Machine,简称SVM)**是一种广泛应用的监督学习算法,尤其在分类和回归问题上表现出色。JSVM是基于Java实现的支持向量机软件,它为用户提供了在Java环境中运用SVM进行数据建模的可能性...
SDK包括Java开发工具(如JDK)、Android平台库、模拟器、调试工具以及各种API文档。开发者可以通过SDK Manager下载不同版本的Android平台,以便在不同版本的设备上测试应用兼容性。 其次,开发工具是Android开发的...