JDK源码阅读笔记

更新中…
win10安装jdk默认路径遇到的问题

解决win10中的jdk默认安装路径中带有空格的问题(Program File ——> PROGRA~1)

java.util.Collections:

  Collections.private static class CheckedMap
    final Class keyType;
    private void typeCheck(Object key, Object value) {
      if (key != null && !keyType.isInstance(key)) {
        throw new ClassCastException();
      }
    }

  public V computeIfAbsent(K key, Funciton mappingFunction) {  }
  public static > void sort(List list) {list.sort(null);}
  public static  void sort(List list, Comparator c) {list.sort(c);}
  public static void reverse(List list) {}
  public static  void copy(List dest, List src)

list.get(i) 与 iterator.next()之间有什么性能区别?
  if size < REPLACEALL_THRESHOLD || list instanceof RandomAccess: for (int i = 0; i itr = list.listIterator(); for (int i = 0; i

java.util.Collection

 ...通用接口,包含集合类的常用的方法接口

java.util.ArrayList 在集合中进行元素的操作,分为null情况进行操作和不是null的情况进行操作

 public List sublist(int fromIndex, int toIndex);
  public int size();
  public boolean isEmpty();
  public boolean contains();
  public int indexOf();
  public int lastIndexOf();
  public Object[] toArray();
  public boolean addAll(Collection c);
  private class Itr implements Iterator {
    public boolean hasNext();
    public E next();
    ...
  }
  private class ListItr extends Itr implements ListIterator {
    public boolean hasPrevious();
    public int nextIndex();
    public int previousIndex();
    public E previous();
  }

  ArrayList集合动态增加数组长度: 先按照原数组长度的1.5倍进行扩容,然后与需要的数组长度进行比较,如果小的话,就按照需要进行扩容,否则默认为原数组1.5倍
  private void grow(int minCapacity) {
    int oldCapacity = elementData.length;
    int newCapacity = oldCapacity + (oldCapacity >> 1);
    if (newCapacity - minCapacity < 0) 
      newCapacity = minCapacity;
    if (newCapacity - MAX_ARRAY_SIZE > 0) 
      newCapacity = hugeCapacity(minCapacity);
    elementData = Arrays.copyOf(elementData)
  }

java.util.Arrays

 public static void sort(各种参数形式:重载); 引用java.util.DualPivotQuicksort中的各种快排或其他排序的优化算法。
  public static boolean equals(long[] a, long[] a2) {
    if (a == a2) 
      return true;
    if (a == null || a2 == null) 
      return false;
    int length = a.length;
    if(length != a2.length) 
      return false;

    for (int i=0; i

lambda表达式的重要特征:

  可选类型声明:
  可选的参数圆括号:
  可选的大括号:
  可选的返回关键字:

你可能感兴趣的:(Java后端架构)