Java核心
null
这个作者很懒,什么都没留下…
展开
-
Java中的锁机制
1. 公平锁和非公平锁公平锁: 指按照申请锁的顺序来获取锁非公平锁: 线程获取锁的顺序不一定按照申请锁的顺序来(默认非公平锁)非公平锁的优点是吞吐量大e.g.:Synchronized就是一种非公平锁2. 可重入锁(递归锁)指在同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁可重入锁的一个好处是可一定程度避免死锁。例如 :加锁的方法中调用另一个被加锁的方法,如果不是可重...原创 2018-12-07 20:26:16 · 656 阅读 · 0 评论 -
JDK版本新特性
JDK151. 泛型指定集合中的元素类型2. Foreach3. 自动拆箱装箱4. 枚举可以将常量分组到一个枚举类里(枚举本身是一个类) ,提高代码的可读性枚举也可以添加自定义方法,枚举集合5. 静态导入表示导入指定包下的指定类中的指定的静态方法而不导入其他方法JDK161. Console开发控制台程序2. 对脚本语言的支持 javascript等3. switch可以...原创 2018-12-07 20:28:03 · 137 阅读 · 0 评论 -
常见排序算法
a. 冒泡两两交换, 每一轮选出本轮最大的值交换到最后第一轮arr.length-1次 第二轮 arr.length-2次 第三轮arr.length-3次优化: 添加一个布尔值, 对本次循环是否排序进行监控,如果没有,就停止循环b. 选择遍历数组, 每一位数字I 和其之后的所有数字 j进行比较, 如果i>j, 交换值每一次外循环找出本次循环最小的值c. 插入第一个元素默...原创 2018-12-07 20:30:04 · 189 阅读 · 0 评论 -
四种线程池
ThreadPoolExecutor的参数:int coreSize, 核心线程int maxSize,最大线程long time,空闲线程超时时间, 超时后销毁TimeUnit ,空闲时间单位BlockingQueue taskQueue,存放任务的队列,ThreadFactory threadFactory) 创建线程的线程工厂当有新的任务时:a. 如果此时线程数小于核心线程,...原创 2018-12-07 20:31:29 · 378 阅读 · 0 评论 -
JVM内存空间组成+GC回收机制
JVM1. 程序计数器一块较小的线程私有空间, 可以当作当前线程所执行字节码的行号显示器, 通过改变计数器的值选择执行的字节码.2. 虚拟机栈一块线程私有的内存空间, 每起一个线程就会起一个线程栈, 而在一个线程中可以调用多个方法, ,每起一个方法就会起一个栈帧, 所以一个线程栈中有多个栈帧. 每一个方法从调用到执行完成的过程, 就代表一个栈帧在虚拟机栈中入栈到出栈的过程. 每一个栈帧存放...原创 2018-12-07 20:37:37 · 107 阅读 · 0 评论 -
容器(集合框架)
Collection 集合层次的根接口List: 有序集合接口,允许值为空。ArrayList:数组队列,相当于动态数组。查询效率较高,随机插入删除效率低LinkedList:底层通过双向链表实现,每个节点维护三个成员变量(item,next,prev)随机访问效率低,但时插入和删除的效率较高Vector:矢量队列,也是由数组实现,且线程安全。Stack : 栈,继承Vector ,先...原创 2018-12-07 21:27:47 · 1067 阅读 · 1 评论 -
HashMap的底层实现
默认长度16,加载因子0.75,空间换时间JDK1.8时,当链表长度超过8,链表会转变为红黑树扩容的性能是很低的,要选择合适的容量HashMap存储结构图HashMap接口public interface MyMap<K, V> { //向集合中插入值 public V put(K k,V v); //根据Key获取集合中的值 public V get(K k)...原创 2019-01-27 18:09:09 · 144 阅读 · 0 评论 -
线程池原码流程图
原创 2019-02-02 15:19:04 · 194 阅读 · 0 评论 -
JDK和CGLib 实现动态代理
被代理对象类的接口public interface Payment { void pay(int m);}代理类对象public class PaymentImpl implements Payment{ @Override public void pay(int m) { System.out.println("付款"+m+"元"); }}原创 2019-02-16 22:26:05 · 335 阅读 · 0 评论