- 博客(18)
- 资源 (3)
- 收藏
- 关注
原创 学习《Java并发编程》目录索引 (持续更新中)
写在前面:此系列为本人学习黑马《Java并发编程》所整理的笔记 !不局限于应用层开发, 更加深入理解多线程, 并发编程, 更有利于我们长久发展 !学习Java并发编程
2020-12-20 18:43:56 12613 16
原创 学习《Java虚拟机》目录索引 (持续更新中)
写在前面:此系列为本人学习宋红康《JVM从入门到精通》所整理的笔记 ! (参考内容 : 宋红康JVM课件、OneBy1314)不要局限于应用层开发, 更加深入理解JVM底层, 更有利于我们长久发展 !学习Java虚拟机一、内存与垃圾回收篇二、字节码与类的加载篇...
2020-12-15 10:50:24 3140 7
原创 SpringCloud——Gateway、Config、Bus的使用
目录七、网关 Spring Cloud Gateway八、配置中心 Spring Cloud Config九、消息总线 Spring Cloud BusSpringCloud 总架构图七、网关 Spring Cloud Gateway跳转到目录2.1 简介Gateway网关是我们服务的守门神,所有微服务的统一入口。Spring Cloud Gateway 是 Spring C...
2020-12-31 15:02:52 1354
原创 《恋上数据结构与算法》排序(一):冒泡排序
一、经典十大排序算法冒泡排序(Bubble Sort)一、概念从头开始比较每一对相邻元素,如果第一个比第二个大,就交换它们的位置。执行完一轮后,最末尾那个元素就是最大元素。忽略上一步中曾经找到的最大元素,重复执行步骤一,直到全部元素有序。二、代码实现static void bubbleSort1(Integer[] array) { for (int end = array.length - 1; end > 0; end--) { for (int beg
2020-12-28 22:01:39 333
原创 《恋上数据结构与算法》笔记(十七):优先级队列 (二叉堆实现)
一、优先级队列(Priority Queue)队列相关的链接 : 队列普通的队列是先进先出原则。优先级队列是按照优先级高低进行出队,比如将优先级最高的元素作为队头优先出队。使用场景:医院急诊根据病人病情和挂号时间决定谁先看病。操作系统的多任务调度,队列元素是任务,优先级是任务类型。二、优先级队列(Priority Queue)底层实现通过最大堆来实现优先级队列。public class PriorityQueue<E> { private Binar
2020-12-27 11:44:06 251 1
原创 《恋上数据结构与算法》笔记(十六):二叉堆
目录一、二叉堆(Heap)1、问题2、二叉堆概念3、堆的接口设计二、二叉堆(Binary Heap)三、二叉堆(Binary Heap)接口实现1、构造方法2、添加3、删除4、replace操作5、批量建堆6、TopK问题四、leetcode算法题五、二叉堆代码(完整)一、二叉堆(Heap)1、问题设计一种数据结构,用来存放整数,要求提3个接口。添加元素获取最大值删除最大值更优秀的数据结构:堆,获取最大值复杂度O(1),删除最大值O(l
2020-12-27 11:23:52 464 1
原创 Java并发编程(二) : 线程安全问题、synchronized保证线程安全、private或final的重要性、线程八锁问题分析、变量的线程安全分析
承接上文:一、 线程问题1、 线程出现问题的根本原因分析线程出现问题的根本原因是因为线程上下文切换,导致线程里的指令没有执行完就切换执行其它线程了,下面举一个例子public class Test { static int count = 0; public static void main(String[] args) throws InterruptedException { Thread t1 = new Thread(()->{ for .
2020-12-25 14:44:30 3092 3
原创 Java并发编程 一 线程介绍、创建线程的4种方式、线程常用方法、两阶段终止状态、线程的五种/六种状态
一、线程与进程、并行并发、同步异步概念1、进程与进程进程: 资源分配的最小单位进程是线程的容器, 一个进程中包含多个线程, 真正执行任务的是线程线程: 资源调度的最小单位进程程序由指令和数据组成,但是这些 指令要运行,数据要读写,就必须将指令加载到cpu,数据加载至内存。在指令运行过程中还需要用到磁盘,网络等设备,进程就是用来加载指令,管理内存,管理IO的当一个指令被运行,从磁盘加载这个程序的代码到内存,这时候就开启了一个进程进程就可以视为程序的一个实例,大部分程序都可以运行多
2020-12-22 18:27:54 3730 1
原创 第 4 章 一 程序计数器、为什么使用程序计数器来记录当前线程的执行地址呢?
第 4 章 程序计数器 (PC寄存器)1、PC寄存器概述 (重点)文档网址https://docs.oracle.com/javase/specs/jvms/se8/html/index.htmlPC寄存器介绍线程私有, 运行速度最快的存储区域, 程序计数器会存储当前线程正在执行的Java方法的JVM指令地址PC寄存器不会出现OOM(OutofMemoryError), StackOverFlow字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令当CPU
2020-12-20 15:03:33 1005 1
原创 第 3 章 一 运行时数据区概述及线程
第 3 章 运行时数据区概述及线程1、前言本文主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段当我们通过前面的:类的加载 --> 验证 --> 准备 --> 解析 --> 初始化,这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区也就是大厨做饭,我们把大厨后面的东西 (切好的菜,刀,调料),比作是运行时数据区。而厨师可以类比于执行引擎,将通过准备的东西进行制作成精美的菜品 (执行引擎使用到运行时数据区的
2020-12-18 13:40:43 504
原创 第 2 章 一 类加载子系统 (类加载过程、类加载器的分类、双亲委派机制)
第 2 章 类加载子系统1、内存结构概述如果自己想写一个Java虚拟机的话,主要考虑哪些结构呢?类加载器执行引擎完整框图:2、类加载子系统 (重点)类加载器子系统作用类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还
2020-12-15 14:33:32 965 1
原创 第 1 章 一 JVM 和 Java 体系架构 (虚拟机介绍、字节码、Java跨平台性)
第 1 章 JVM 和 Java 体系架构1、JVM 前言作为Java工程师, 你是否也遇到过这些问题?运行着的线上系统突然卡死,系统无法访问,甚至直接OOM!想解决线上JVM GC问题,但却无从下手。新项目上线,对各种JVM参数设置一脸茫然,直接默认吧然后就GG了每次面试之前都要重新背一遍JVM的一些原理概念性的东西,然而面试官却经常问你在实际项目中如何调优VM参数,如何解决GC、OOM等问题,一脸懵逼。2、开发人员的病态大部分Java开发人员,除了会在项目中使用到与Java平台相
2020-12-15 12:50:42 1592
原创 小码哥《恋上数据结构与算法》笔记(十五):哈希表(Hash Table)
目录具体代码在 : RBTree, 欢迎star一、哈希表(Hash Table)1、概念2、哈希冲突3、JDK1.8的哈希冲突解决方案4、哈希函数5、如何生成hash_code(key)5.1、整数的哈希值5.2、浮点数的哈希值5.2、Long和Double的哈希值5.3、字符串的哈希值5.4、自定义对象的哈希值5.5、自定义对象存储举例6、hashCode和equals方法 (重点)2.2.4 添加-修复性质4-上溢-RR2.2.5 添加-修复性质4-上
2020-12-12 01:43:09 639
原创 《恋上数据结构与算法》笔记(十四):集合 (Set) 和 映射 (Map)、TreeSet、TreeMap实现
一、集合(Set)二、集合的接口设计三、集合的实现1、通过链表实现集合2、通过红黑树实现集合四、映射(Map)五、映射的接口设计六、映射的实现(TreeMap)1、声明节点2、put函数实现3、get函数实现4、remove函数实现5、contains函数实现6、traversal函数实现七、leetcode算法题...
2020-12-11 17:05:39 341
转载 JAVA内存泄漏和内存溢出的区别和联系
JAVA内存泄漏和内存溢出的区别和联系 1、内存泄漏memory leak : 是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。 2、内存溢出 out of memory : 指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够...
2020-12-10 15:09:46 197
原创 《恋上数据结构与算法》笔记(十三):红黑树
目录具体代码在 : RBTree, 欢迎star一、红黑树(Red Black Tree)1、初识红黑树2、红黑树的等价变化3、红黑树 vs 2-3-4树4、红黑树节点关系二、红黑树的实现1、构造方法2、添加2.1 parent为BLACK2.2 parent为RED(Double Red)2.2.1 添加-修复性质4-LL\RR2.2.2 添加-修复性质4-LR\RL2.2.3 添加-修复性质4-上溢-LL2.2.4 添加-修复性质4-上溢-RR2.2.
2020-12-08 00:34:22 554
转载 @Component和@Configuration作为配置类的差别
随着spingboot的大火,注解式配置受到了大家的热烈欢迎,而@Component和@Configuration都可以作为配置类,之前一直都没觉得这两个用起来有什么差别,可能有时程序跑的和自己想的有所区别也没注意到。直到看到这篇文章:https://my.oschina.net/guangshan/blog/1807721 。我意识到@Component和@Configuration是有区别的,错误的使用可能会导致严重的后果。请看下面一段代码:@Getter@Setterpublic..
2020-12-07 11:32:55 295
Java笔记(超详细).zip
2020-02-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人