1. 二叉搜索树的后序遍历序列

      1. class Solution {
      2. public boolean verifyPostorder(int[] postorder) {
      3. return recur(postorder, 0, postorder.length-1);
      4. }
      5. public boolean recur(int[] postorder, int i, int j) {
      6. if (i >= j)
      7. return true;
      8. int p = i;
      9. while (postorder[p] < postorder[j])
      10. p++;
      11. int m = p;
      12. while (postorder[p] > postorder[j])
      13. p++;
      14. return p==j && recur(postorder, i, m-1) && recur(postorder, m, j-1);
      15. }
      16. }
    2. 求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 ```java // 方法一:递归 方法二:短路计算 class Solution { public int sumNums(int n) {

      1. boolean flag = n > 0 && (n += sumNums(n - 1)) > 0;
      2. return n;

      }

    } ```

    1. 4种引用

      (1)强引用:在Java中最常见的就是强引用。在把一个对象赋给一个引用变量时,这个引用变量就是一个强引用。有强引用的对象一定为可达性状态,所以不会被垃圾回收机制回收。因此,强引用是造成Java内存泄漏(Memory Link)的主要原因。 (2)软引用:软引用通过SoftReference类实现。如果一个对象只有软引用,则在系统内存空间不足时该对象将被回收。 (3)弱引用:弱引用通过WeakReference类实现,如果一个对象只有弱引用,则在垃圾回收过程中一定会被回收。 (4)虚引用:虚引用通过PhantomReference类实现,虚引用和引用队列联合使用,主要用于跟踪对象的垃圾回收状态。

    2. 垃圾收集器

      image.png