StringBuffer和StringBuilder,它们的底层char数组value默认的初始化容量是16,扩容只需要修改底层的char数组,两者的扩容最终都会调用到AbstractStringBuilder类相同的方法: 直入正题,扩容的步骤: 新的字符串的长度超过了底层原char数组value的大小,才需要进行扩容 先尝试默认扩容,将新容量变成 (value.length << 1) + 2 ,也就是两倍的原数组长度再加二 若默认扩充后的值还是小于至少容量的值,直接扩充到当前需要的至少容…
JAVA中的部分需要扩容的内容总结如下:第一部分: HashMap<String, String> hmap=new HashMap<>(); HashSet<String> hset=new HashSet<>(); Hashtable<String, String> htable=new Hashtable<>();第二部分: CopyOnWriteArrayList<String> coarray=new CopyO…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) Java 中提供了很多的集合类,包括,collection的子接口list.set,以及map等.由于它们的底层构成不同,以及数据的构造为单列.多列.可重复.不可重复,导致其扩容机制也不尽相同. 一.List 获取ArrayList 容量大小的方法: public static int getArrayListCapacity(ArrayList<?> arrayList) { Class<A…
REF: http://blog.csdn.net/fightforyourdream/article/details/15333405 题目是一道简单的小程序,像下面这样:[java] view plaincopypublic class Test1 {   public static void main(String args[]) {    String s = new String("Hello");    System.out.println(s);      foo(s);…
首先,在开始本章之前,先说一个总的概念:所谓的Java Bean,就是一个java类,编译后成为了一个后缀名是 .class的文件.这就是Java Bean,很多初学者,包括当年的我自己,总是被这些专有名词搞的晕头转向.去公司面试,对方一口一个controller,一口一个service,dao,搞得我很紧张.其实都是很简单的东西,只是自己当时不知道罢了,接触之后才发现,不就是Java类吗? 1. 什么是 Java Bean? 很多培训机构在讲java基础的时候,基本都会写这样的代码: pack…
http://www.cnblogs.com/zuoxiaolong/p/lang1.html…
String是字符串常量 StringBuilder和StringBuffer都是字符串变量 速度方面:StringBuilder > StringBuffer > String 每当用String操作字符串时,实际上是在不断的创建新的对象,而原来的对象就会变为垃圾被GC回收掉,所以速度很慢 StringBuilder 是非线程安全的,StringBuffer是线程安全的 如果要操作少量的数据用 String;单线程且操作大量数据建议使用StringBuilder;多线程且操作大量数据可以使用…
动态代理是什么 首先说下代理模式,代理模式是常见的一种java设计模式,特征是代理类与委托类实现了同样的接口,代理类主要负责为委托类预处理.过滤.转发,以及事后处理等.代理类与委托类之间通常会存在关联关系,一个代理类的实例与它的委托类的实例是关联的.代理类的实例本身是并不真正关心被调用方法的内部逻辑,而是会通过内部访问调用 委托类的实例真正实现了的方法,来为调用者提供服务. 有代理的话,在访问实际对象时,是通过代理实例来访问.调用委托类方法的,代理模式就是在访问实际对象时引入一定程度的间接性,因…
Java并发编程:Concurrent锁机制解析 */--> code {color: #FF0000} pre.src {background-color: #002b36; color: #839496;} Java并发编程:Concurrent锁机制解析 Table of Contents 1. 本质 2. Lock 3. ReentrantLock 4. ReadWriteLock 5. ReentrantReadWriteLock 前面,我们讲了Java自带的对象锁机制.因为我们的方法…
老刘今天复习HBase知识发现很多资料都没有把概念说清楚,有很多专业名词一笔带过没有解释.比如这个框架高性能.高可用,那什么是高性能高可用?怎么实现的高性能高可用?没说! 如果面试官听了你说的,会有什么反应?我的感觉就是你说的东西都是别人的,没有自己的理解.所以老刘才会写用大白话讲大数据这个系列,就是争取把东西讲清楚,讲明白!如果觉得老刘写得不错,给老刘点个赞吧! 01 HBase知识点 第1点:HBase的定义 官网画红框中直接就说,HBase是一个分布式.可扩展的大数据存储Hadoop数据库…