
java
AthenaHe
一步一个脚印
展开
-
深入理解Java虚拟机篇:类加载机制总结
文章目录什么是类加载机制?❤️类加载方式类加载的过程是什么样的?类的生命周期Java虚拟机结束生命周期的情况?类加载机制的种类类加载器种类双亲委派模型❤️什么是类加载机制?❤️类加载机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是类加载机制。类加载方式命令行启动应用时由JVM初始化加载通过class.forName()方法动态加载通过ClassLoader.loadClass()方法动态加载Cla原创 2020-08-09 18:49:31 · 281 阅读 · 0 评论 -
设计模式篇-单例模式详解
前情提要:最近在准备面试,发现自己以前学的东西都太窄,太浅了,只知其然而不知所以然,今天内心很复杂,写一下单例模式的总结吧。~~单例模式是设计模式中最最经典的一种设计模式,也是日常使用、面试中常见的设计模式。文章目录一、定义二、类图三、代码实现及解释1. 饿汉式(静态常量)2. 饿汉式(静态代码块)3.懒汉式(线程不安全)4. 懒汉式(线程安全,同步方法)5. 懒汉式(线程安全,同步代码块)6. 双重检查(DCL,Double Check Lock)✨❤️❤️7. 静态内部类✨8. 枚举✨❤️四、.原创 2020-07-19 20:21:59 · 620 阅读 · 0 评论 -
java知识笔记-深入分析HashMap
重要!!!前言知识hash的概念一、HashMap一些概念1. HashMap介绍HashMap是一个散列表,它存储的是键值对(key-value)映射。HashMap继承Abstractmap类,实现了Map、Cloneable、java.io.Serializable接口。用一张图解释一下。HashMap的实现是不同步的,也就是说不是线程安全的HashMap的key唯一,...原创 2020-03-28 22:19:33 · 299 阅读 · 0 评论 -
设计模式篇-建造者模式详解
定义:建造者模式是将各种产品集中起来管理,用来创建复合对象(一个类有不同的属性)。使用范围:当创建复杂对象的算法时应该独立于该对象的组成部分以及他们的装配方式的时候。当构造过程必须允许被构造的对象有不同的表示的时候。角色:在这样的设计模式中,有以下几个角色:– Product:抽象产品类。ConcreteBuilder创建该产品的内部表示并定义它的装配过程,包含定义组成部件的类,...原创 2020-03-27 10:58:10 · 221 阅读 · 0 评论 -
Java知识笔记--Java线程创建方式、线程池
文章目录创建线程的四种方式1)继承thread类2)实现Runnable接口3)使用Callable和Future创建线程4)使用Executor框架创建线程池1. newFixThreadPool2. newCacheThreadPool3. newSingleThreadExecutor4. newScheduledThreadPool使用线程池可能带来的风险创建线程的四种方式1)继承th...原创 2020-03-22 14:02:15 · 307 阅读 · 0 评论 -
深入理解Java虚拟机篇:GC垃圾回收机制总结
有关GC一些概念,完整思维导图可以点这个链接:GC垃圾回收思维导图文章目录1. 对象存活判断(是否需要回收)?1. 1引用计数1.2可达性分析2. 垃圾回收类型3. GC算法3.1标记-清除算法(Mark-Sweep)3.2 复制算法3.3 标记-压缩算法3.4分代收集算法(Generational Collection)★4. 垃圾回收器5. 内存分配与回收策略1. 对象存活判断(是否需要回...原创 2020-03-10 22:58:44 · 905 阅读 · 2 评论 -
深入理解Java虚拟机篇:JVM内存结构总结
今天看JVM内存模型,觉的有一篇文章写的比较好,所以引用过来。转载地址:文章目录一、Java虚拟机内存模型1. 线程私有区1.1程序计数器1.2虚拟机栈1. 3本地方法栈2.线程共享区2.1 Java堆TLAB (线程私有分配缓冲区)2.2 方法区运行时常量池2.3 Java堆与方法区的区别2.4 方法区的回收一、Java虚拟机内存模型Java虚拟机在执行Java程序的过程中会把它所管理的内...原创 2020-03-10 17:12:56 · 263 阅读 · 0 评论 -
Java知识笔记--用户线程、守护线程
文章目录1. 用户线程、守护线程定义2. 用户线程与守护线程的区别3. 守护线程3.1 守护线程的特点3.2 要注意⚠️3.3 守护线程适用场景java分两种线程:用户线程(user thread)和守护线程(daemon thread)。1. 用户线程、守护线程定义守护线程:指程序运行时后台服务线程,比如:垃圾回收线程,当所有非守护线程结束时,程序也就终止,同时会杀死进程中所有的守护线程,...原创 2020-03-08 22:46:34 · 337 阅读 · 0 评论 -
java实现一个简单的造成死锁的代码
死锁定义: 死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象。下面是两个线程由于相互等待对方资源而造成死锁的例子。public class Main { static Object object1 = new Object(); //创建静态对象object1 static Object object2 = new Object(); //创建静态对象obje...原创 2020-03-03 23:52:57 · 1652 阅读 · 0 评论