随笔分类 - Java基础
摘要:1.手撕两个有序数组合并为一个(不能用额外数组):思路移动长的数组,双指针比较,后来发现其实可以比较大的数放尾部 2.讲了一下二叉树翻转的思路:递归(其他思路?栈模拟递归(具体实现不太清楚,只记得有这个方法)) java线程池 HashMap底层 引申到-> 红黑树,AVL树 ConcurrentH
阅读全文
摘要:final 和 String public static void main(String[] args) { String a1 = "a"; String a2 = "b"; // 非final串相加,指向堆中new的对象 String a3 = a1+a2; String a4 = "ab";
阅读全文
摘要:String的两种创建方式: 1.String s1 = "abc" 首先去常量池找"abc",如果不存在,就在常量池创建"abc",然后在栈中开辟s1,存放"abc"的内存地址 2.String s2=new String("abc") 首先去常量池找"abc",如果不存在,就创建"abc",然后
阅读全文
摘要:一、程序进程和线程 程序:一段静态的代码。由某种计算机语言编写,为完成特定的任务 进程:运行中的程序,或者程序的一次运行。完成内存分配任务 线程:进程中的一个执行路径。cpu调度最小单位 二、创建方式 1.继承Thread类,重写run方法,调用对象的start方法 2.实现Runnable接口,实
阅读全文
摘要:新生代的survival区中,每一次Minor GC幸存的对像会记一次数, 存活并15次后转移到老年代 新生代满的时候会转移到老年代中。 大的对象会直接转移到老年代。
阅读全文
摘要:Volatile的功能以及原理 保证了修饰变量的可见性,利用的是读写屏障(没有具体深入了解)。防止了指令的重排序。 线程对其写操作时,会将其值立即刷新到主存中;线程对其读操作时,本地内存中共享变量会无效。
阅读全文
摘要:Array(数组): 声明需要指明长度,易于修改值和查找值 String[] s = new Sring[length]; //修改 s[i]="XXX" ; //查找 find = s[j]; ArrayList: 声明不需要指明长度,便于插入、添加和删除数据 声明也不需要指明类型,可以放入不同的
阅读全文

浙公网安备 33010602011771号