java
祥子_每周一更
这个作者很懒,什么都没留下…
展开
-
jvm内存区域
文章目录jvm内存区域虚拟机栈(线程私有)本地方法栈(线程私有)程序计数器(线程私有)堆新生代老年代CMS算法中的promotion failed和concurrent mode failure方法区/永久代jvm内存区域JVM内存区域主要分为线程私有区域[虚拟机栈、本地方法栈、程序计数器],线程共享区域[方法区、堆]线程私有区域的生命周期和线程一致;线程共享区域的生命周期和jvm一致。虚拟机栈(线程私有)描述java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧,用于存储局部变原创 2020-06-21 19:32:47 · 133 阅读 · 0 评论 -
java序列化
文章目录什么是java序列化和反序列化使用示例什么是java序列化和反序列化Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程。使用场景永久性保存对象,保存对象的字节序列到本地文件或者数据库中;通过序列化以字节流的形式使对象在网络中进行传递和接收;使用示例以下主要示例中主要演示了静态变量和transient的作用。public class User implements Serializable { //序列化对象原创 2020-06-14 18:06:30 · 85 阅读 · 0 评论 -
java内部类
文章目录1. 基本概念1.1 定义1.2 优缺点1.3 内部类分类1. 基本概念1.1 定义定义在类内部的类称为内部类1.2 优缺点优点内部类和外部类可以方便的访问彼此的私有方法和私有属性内部类可以解决java的单继承局限。内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外部对象的信息相互独立。内部类并没有令人迷惑的“is-a”关系,他就是一个独立的实体。内部类提供了更好的封装,除了该外围类,其他类都不能访问。缺点结构复杂1.3 内部类分类成员内部类原创 2020-06-14 18:05:13 · 73 阅读 · 0 评论 -
java复制
文章目录直接赋值**分别设置值**(浅拷贝)基于Cloneable的深克隆和浅克隆浅拷贝深拷贝BeanUtils工具类实现浅拷贝直接赋值通过赋值的方式,实际上st1和st2指向堆内存中同一个对象,所以st1修改属性值会影响st2public class Student { private String name; private int age; public String getName() { return name; } publi原创 2020-06-14 18:04:18 · 67 阅读 · 0 评论 -
java泛型
文章目录1.什么是泛型2.泛型的使用3.泛型的类型擦除1.什么是泛型泛型提供了编译时类型安全监测机制,泛型的本质是参数化类型,即所操作的数据类型被指定为一个参数。2.泛型的使用泛型类public class Generic<T> { private T key; public Generic(T key) { this.key = key; } public void setKey(T key) { this.原创 2020-06-14 18:03:30 · 63 阅读 · 0 评论 -
java反射
文章目录1.反射的概念2.反射的使用2.1 获取Class对象2.2 获取Class对象的方法集合2.3 获取构造方法2.4获取成员变量2.5创建对象的两种方法2.6 反射机制的优缺点1.反射的概念在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法; 并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方 法的功能成为 Java 语言的反射机制。2.反射的使用2.1 获取Class对象方式一:通过对象的getClass()方法获取 。如果类中有定义静态原创 2020-06-14 18:02:25 · 83 阅读 · 0 评论 -
ReentrantLock 详解
文章目录ReentrantLock 介绍ReentrantLock构造方法ReentrantLock核心方法ReentrantLock和Synchronized比较condition应用场景生产者和消费者顺序打印ABC十遍lock方法分析ReentrantLock 介绍ReentrantLock是一个可重入的互斥锁,又被称为“独占锁”。ReentrantLock锁在同一个时间点只能被一个线程锁持有;可重入表示,ReentrantLock锁可以被同一个线程多次获取。ReentraantLock是通过原创 2020-06-06 22:24:20 · 331 阅读 · 0 评论 -
semphore详解
文章目录semphore作用semphore构造函数semphore核心方法应用场景:使用semphore顺序打印ABC十遍semphore作用Semaphore 字面意思是信号量的意思,它的作用是控制访问特定资源的线程数目semphore构造函数 /** * permits:许可线程的数量,代表同一时间,最多允许permits个线程执行acquire() 和release() 之间 * 的代码。同时内部变量state许可量的值等于permits */ p原创 2020-06-06 22:23:33 · 749 阅读 · 0 评论 -
还不懂java多线程并发?看这一篇就够了
文章目录1 java多线程实现1.1 继承Thread类1.2 实现Runnable接口1.3 实现Callable接口2 线程池3 线程生命周期状态4 wait与sleep的区别5 start与run的区别6 进程和线程的区别7 线程的基本方法8 上下文切换9 线程同步10 顺序打印ABC10遍11 java锁11.1乐观锁vs悲观锁11.2 自旋锁和适应性自旋锁11.3 synchronized同步锁12 JAVA阻塞队列(BlockingQueue)13 CountDownLatch和CyclicB原创 2020-06-06 22:22:36 · 843 阅读 · 1 评论 -
基于jdk1.8的Vector源码分析
Vector的特点底层数据结构为数组元素排列有序、可重复线程安全的,synchronized关键字Vector可以指定扩容因子,扩容大小为,当增长因子大于0时,则newCapacity = oldCapacity + capacityIncrement;当增长因子不大于0时,则newCapacity = oldCapacity +oldCapacityVector的构造方法// initialCapacity:初始化数组大小;capacityIncrement:增长因子public Vec.原创 2020-05-30 09:25:43 · 92 阅读 · 0 评论 -
基于jdk1.8的HashSet源码分析
文章目录HashSet特点:成员变量HashSet特点:底层由HashMap支持不能重复、无序线程不安全成员变量public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable{ static final long serialVersionUID = -5024744406713321676L;原创 2020-05-30 09:24:38 · 97 阅读 · 0 评论 -
基于jdk1.8的HashMap源码分析
文章目录HashMap特点HashMap成员变量静态内部类(Hash桶存储的节点的数据结构)HashMap构造函数HashMap添加键值对关键步骤HashMap和HashTable的区别HashMap特点1.底层采用数组+链表+红黑树的数据结构;2.key和value都允许为null;key不能重复3.排列无序4.线程不安全:java.util.Collections#synchronizedMap使HashMap具备线程安全的能力,或者使用ConcurrentHashMap;HashMap原创 2020-05-30 09:17:22 · 101 阅读 · 0 评论 -
基于jdk1.8的LinkedList的源码分析
基于jdk1.8的LinkedList的源码分析LinkedList的特点排列有序可重复底层使用双向链表数据结构查询速度慢,增删快线程不安全理解LinkedList主要需要理解几个概念:首节点:只要指导首节点就可以根据首节点的下一个节点依此查找到其他节点。尾节点:通过尾节点的上一个节点就可以依次查找到其他节点。节点:节点包含上一个节点、节点元素、下一个节点;每一个节点需要保存上一个节点和下一个节点。对LinkedList的操作都是改变节点中上一个节点和下一个节点的指向。Linke.原创 2020-05-23 21:08:53 · 133 阅读 · 0 评论 -
深入 理解ArrayList实现原理
文章目录基于jdk1.8的ArrayList原码分析ArrayList的成员变量ArrayList的构造方法ArrayList的扩容机制ArrayList的三种遍历方式ArrayList的remove(int index)方法基于jdk1.8的ArrayList原码分析ArrayList的特点:底层数据结构为数组元素排列有序、可重复、可以为null线程不安全元素查找快,增删慢扩容大小为:原先数组大小乘以1.5ArrayList的成员变量public class ArrayLis原创 2020-05-23 20:41:41 · 224 阅读 · 0 评论