随笔分类 -  Java学习心得

java修炼中的点点滴滴
分析可变形字符串序列StringBuilder 以及 StringBuffer之默认大小与扩容
摘要:默认值初始化:1. 首先明确 StringBuffer类与 StringBuilder类均继承了抽象类 AbstractStringBuilder类无参构造方法2. 源码中StringBuffer类和StringBuilder类初始化均调用父类的构造方法:父类初始化:子类默认传入值16 给父类初始化字符数组有参构造方法:扩容算法:使用append()方法在字符串后面追加东西的时候,如果长度超过了该字符串存储空间大小了就需要进行扩容:构建新的存储空间更大的字符串,将久的复制过去;再进行字符串append添加的时候,会先计算添加后字符串大小,传入一个方法:ensureCapacityInterna 阅读全文
posted @ 2013-10-28 13:32 Coffee_Guy 阅读(7774) 评论(0) 推荐(0)
队列(queue)和堆栈(stack)的学习
摘要:队列1 . 先进先出 。队列尾进行插入,队列头进行删除,获取,修改。 -----first come ,first served . --first in .first out ..简称:FIFO入列-enqueue 出列 - dequeue size ---保存着队列元素个数最容易访问到的就是队列头部的元素啦。。2. enqueue 入队一次size加1 dequeue 出对一次 size并不变化,因为对列是循环的。。 阅读全文
posted @ 2013-10-24 15:39 Coffee_Guy 阅读(278) 评论(0) 推荐(0)
Random类产生随机数
摘要:Random类作为JAVA中用于产生的随机数,new Random(10) :10是种子数。注意:Random 的一个特点是:相同种子数的Random对象,对应相同次数生成的随机数字是完全相同的验证代码: Randomr1=newRandom(10);Randomr2=newRandom(10);for(inti=0;i> 31); int bits, val; do { bits = next(31); val = bits % n; } while (bits - val + (n-1) >> (48 -... 阅读全文
posted @ 2013-10-20 09:37 Coffee_Guy 阅读(23827) 评论(0) 推荐(1)
String特性之 “字符串驻留池”
摘要:1. 字符串驻留池,就是一块与堆区并行的存放字符串对象的内存区,JVM的驻留池机制规定: 在池中创建一个String对象,第二行会先在池中寻找是否有值与"abc"相同的String对象,如果有,就直接引用,没有这在池中新建String对象知识补充:1. JVM 为了提高性能,会将形式例如:String str = "我是字符串"和 “我也是字符串”的 字符串存放在一个名叫:字符串驻留池的内存块中。2. 通过new 所产生的对象 是在堆中存放的。3 . " == " 判断两个字符串对象时 : 当两个字符串对象完全相同时 返回true , 阅读全文
posted @ 2013-10-19 11:45 Coffee_Guy 阅读(414) 评论(4) 推荐(0)
String类-StringBuffer类-StringBuilder类的比较
摘要:packageLC20130929;/***字符串处理类:StringBuffer~~StringBuilder〉〉String效果一样但是,性能却大不一样!前面两个 不定。有时StringBuffer 比较快,有时StringBuilder类比较快!!StringBuffer 是StringBuilder的前身;StringBuffer可以允许多个线程进行增加或者移除字符操作。StringBuilder在一个线程里编辑时使用 *@authorLong-Cong */publicclassStringPkStringBuffer{publicstaticvoidmain(String[]arg 阅读全文
posted @ 2013-10-19 11:40 Coffee_Guy 阅读(214) 评论(0) 推荐(0)
集合篇-----ArrayList与LinkedList之间的那些小事
摘要:各自特性:ArrayList : 是一由连续的内存块组成的数组,范围大小可变的,当不够时增加为原来1.5倍大小,数组。 :调用trimToSize方法,使得存储区域的大小调整为当前元素数量所需要的空间大小,垃圾回收器将会回收多余存储空间。LinkedList : 是由随机内存块通过指针连接起来的,范围大小可变的,当不够时增加为原来2倍大小,一个双向链表,书上得来: 结论一 : ArrayList集合访问查找比LinkedList集合速度快,结论二 : LinkedList集合增删元素比ArrayList集合速度快。原因: ArrayList是连续的内存地址,访问时根据下标,即与首地址的偏移量. 阅读全文
posted @ 2013-10-19 11:34 Coffee_Guy 阅读(1025) 评论(0) 推荐(0)
System.arraycopy 方法
摘要:从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束import java.util.Arrays;public class SystemArrayCopyTest {public static void main(String[] args) {int [] tset1 = new int []{2,3,4,5,6,7,8} ; System.out.println(Arrays.toString(tset1)); int [] test2 = new int [tset1.length] ;System.arraycopy(tset1, 0, test2, 0, ts 阅读全文
posted @ 2012-08-04 16:18 Coffee_Guy 阅读(15233) 评论(0) 推荐(2)
Vector类与ArrayList类
摘要:Vector类与ArrayList是相似滴,都是实现数组的动态改变(动态数组),不同的是Vector类是同步的而ArrayList类是非同步的。那么何为同步,何为非同步呢???java中的同步同步指多个线程在同时要访问某个对象、某个变量。某个方法、某个代码块等等时,保证只有唯一线程访问同步对象(即synchronized修饰的部分)相关方法说明:remove()方法 : 移除第一个与其匹配的向量元素。add()方法 :添加的元素若相同,他们的ID内存地址会指向同一块地方,即事实上是添加了一个指向相同地址的引用变量,当然删除时还是删除第一个与其匹配的元素,即少一个指向这块地址的引用变量。关于数组 阅读全文
posted @ 2012-08-02 16:03 Coffee_Guy 阅读(615) 评论(1) 推荐(0)