自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 JVM--GC垃圾收集器

GC 分代收集算法 VS 分区收集算法分代收集算法当前主流 VM 垃圾收集都采用分代收集(Generational Collection)算法, 这种算法会根据对象存活周期的不同将内存划分为几块, 如 JVM 中的 新生代、老年代、永久代,这样就可以根据各年代特点分别采用最适当的 GC 算法其核心思想是根据对象存活的不同生命周期将内存划分为不同的域,一般情况下将 GC 堆划分为老年代(Tenured/Old Generation)和新生代(Young Generation)。老年代的特点是每次垃圾

2020-11-03 22:39:52 156

原创 JAVA中的四种引用类型

JAVA 四中引用类型强引用在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不能被垃圾回收机制回收的,即使该对象以后永远都不会被用到 JVM 也不会回收。因此强引用是造成 Java 内存泄漏的主要原因之一。软引用软引用需要用 SoftReference 类来实现,对于只有软引用的对象来说,当系统内存足够时它不会被回收,当系统内存空间不足时它会被回收。软引用通常用在对内存敏感的程序中。弱引用

2020-11-03 21:32:54 135

原创 java核心--反射

反射反射即反向探知,比如考古学家根据发掘的物品来探知以前的事情。指在Java程序运行状态中,1,对于给定的一个类(Class)对象,可以获得这个类(Class)对象的所有属性和方法;2,对于给定的一个对象,能够调用它的任意一个属性和方法.。Class clazz = Person.classclazz.getName();clazz.getPackage();clazz.getSuperClass();clazz.getClassLoader();//获取一个实例对象Person

2020-11-02 23:30:20 419

原创 java中的泛型

泛型参数化类型泛型的擦除泛型只在编译阶段有效,编译之后JVM会采取去泛型化的措施。泛型通配符无边界通配符<?>上边界通配符<? extends XXX>必须是XXX及其子类 下边界通配符<? super XXX>必须是XXX及其父类...

2020-11-02 20:30:32 90

原创 集合源码解析——Collection接口

java中的集合Collection接口List接口ArrayListArray本质就是数组,在内部对数组进行动态扩容 /** * Default initial capacity. * 数组默认长度 */ private static final int DEFAULT_CAPACITY = 10; /** * Shared empty array instance used for empty instances.

2020-10-27 22:40:09 107

原创 数据结构

数据结构数组特点:1,使用前要预先分配空间,先指定数组长度,内存地址连续。2,可以使用数组下标访问成员,查询效率高。3,增删会带来系统性能消耗。保证数组下标越界问题,需要动态扩容。链表单向链表双向链表特点:1,存储空间不要求连续,空间要求灵活2,不支持下标访问,查询需要顺序遍历3,增删效率高,只需要操作目标节点的前后节点,无需移动元素树二叉树特点:1,节点的左子树的节点小于该节点2,节点的右子树的节点大于该节点3,左右子树也都是二叉查找树4,顺序排列(中序遍历

2020-10-26 20:32:09 79

原创 java多线程并发——线程池原理

线程池原理线程复用线程池的组成拒绝策略Java 线程池工作过程线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。主要特点为:线程复用;控制最大并发数;管理线程。线程复用每一个 Thread 的类都有一个 start 方法。 当调用 start 启动线...

2019-05-16 18:57:32 366

原创 java多线程并发——锁

文章目录几种锁类型Synchronized 同步锁Synchronized 作用范围自旋锁自旋锁的优缺点ReentrantLockReentrantLock 与 synchronized锁的用法乐观锁悲观锁几种锁类型Synchronized 同步锁synchronized 它可以把任意一个非 NULL 的对象当作锁。属于独占式的悲观锁,同时属于可重入锁。Synchronized 作用范围...

2019-05-10 18:41:44 635

原创 java核心知识——多线程

Java并发知识库JAVA 线程实现/创建方式继承 Thread 类Thread 类本质上是实现了 Runnable 接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过 Thread 类的 start()实例方法。start()方法是一个 native 方法,它将启动一个新线程,并执行 run()方法。public class MyThread extends Thread ...

2019-04-23 20:43:12 218

原创 java核心知识——集合

接口继承关系和实现集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表)和 map(映射)。Collection:Collection 是集合 List、Set、Queue 的最基本的接口。Iterator:迭代器,可以通过迭代器遍历集合中的数据Map:是映射表的基础接口ListJava 的 List 是非常常用的数据类型。List 是有序的 Col...

2019-04-22 18:14:10 397 1

原创 javaIO/NIO

阻塞 IO 模型最传统的一种 IO 模型,即在读写数据过程中会发生阻塞现象。当用户线程发出 IO 请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出 CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才解除 block 状态。典型的阻塞 IO 模型的例子为:data = socket.read();如果数据没...

2019-04-22 15:22:52 189

原创 初识JVM

基础回顾——JVM基本概念:what is JVM?运行过程:JVM内存区域-- 计算机的五脏六腑程序计数器(线程私有)虚拟机栈(线程私有)本地方法区(线程私有)堆(Heap-线程共享)-运行时数据区方法区/永久代(线程共享)JVM 运行时内存新生代Eden 区 (伊甸园)ServivorFromServivorToMinorGC 的过程老年代永久代JAVA8 与元数据垃圾回收与算法如何确定垃圾...

2019-04-18 19:25:40 293

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除