- 博客(8)
- 收藏
- 关注
原创 StringBuilder和StringBuffer的拼接的过程以及跟String的区别
首先他们底层都是调用父抽象类AbstractStringBuilder的, 主要区别在于StringBuffer是线程安全调用的方法都加了synchronized。 下面看一下AbstractStringBuilder的源码 abstract class AbstractStringBuilder implements Appendable, CharSequence { /...
2020-04-06 16:07:10 507
原创 为什么阿里巴巴不建议在for循环中使用“+”进行字符串拼接
本文基于 jdk1.8 我们都知道字符串是不可变的一旦创建无法被修改。 而所谓的字符串拼接都是生成一个新的字符串。 public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for characte...
2020-04-06 13:49:05 1033
原创 Java各种相关代码块
Java包括以下几种代码块 想看看分别都是怎么书写以及书写的位置,以及加载的顺序是怎样的; 静态代码块:在类加载的时候就已经加载了,并且只会加载一次,且只能定义在类中; 如果包含多个静态代码块,按照书写的顺序进行加载;如果有父类,先加载父类的静态代码块; 作用:一般在一些项目启动之前需要加载配置文件,可以放在静态代码块中; public class CodeBlock { static...
2020-03-31 15:43:15 139
原创 HashSet源码阅读
public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable HashSet是Set的一个实现类,Set接口是继承了Collection接口; 所以HashSet是集合框架Collection下的一个Set实现类...
2020-03-31 13:56:52 81
原创 Vector源码阅读
Stack的父类Vector源码阅读 public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable 首先看这个Vector类继承了RandomAccess;所以是支持快速随机访问的 ...
2020-03-31 13:56:14 72
原创 ArrayList源码分析
1.添加元素 ①直接添加 public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e; return true; } private static int calculat...
2020-03-31 13:55:56 63
原创 Map.Entry接口源码阅读
Map接口是很多常用的像HashMap,HashTable,ConCurrentHashMap类的顶层接口; 这些常用的Map容器都实现了Map这个接口; 但是今天我要来讲的是Map接口中的一个内部接口Entry public interface Map<K,V> { /** * A map entry (key-value pair). The <tt>...
2020-03-31 12:14:42 228
原创 Java8新语法之"&" - 多类型强转
在Java8中多了一个多类型强转,它是通过&来实现的; 比如我想要创建一个Comparator对象;并且希望它是可序列化的; Comparator seriComparator=(Comparator<Integer>&Serializable)(x1,x2)->{ return x1-x2; }; System.out.println(...
2020-03-30 21:58:14 374
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人