自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java全栈知识体系

更新中…

2024-02-08 11:36:06 448

原创 Netty(1)nio

non-blocking io 非阻塞 IO。

2024-03-04 20:58:15 1026

原创 并发编程(7)共享模型之JUC

9 J.U.C9.1 AQS原理9.1.1 概述全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架特点:用 state 属性来表示资源的状态(分独占模式和共享模式),子类需要定义如何维护这个状态,控制如何获取锁和释放锁getState - 获取 state 状态setState - 设置 state 状态compareAndSetState - cas 机制设置 state 状态独占模式是只有一个线程能够访问资源,而共享模式

2024-02-28 19:11:13 913

原创 并发编程(6)共享模型之线程池

/ 1. 任务队列// 2. 锁// 3. 生产者条件变量// 4. 消费者条件变量// 5. 容量log.info("构造BlockingQueue");// 带超时阻塞获取try {// 将 timeout 统一转换为 纳秒try {// 返回值是剩余时间return t;// 阻塞获取try {try {return t;// 阻塞添加try {try {

2024-02-28 19:10:28 968

原创 并发编程(5)共享模型之不可变

定义英文名称:Flyweight pattern. 当需要重用数量有限的同一类对象时 .flyweight是一种通过与其他类似对象共享尽可能多的数据来最小化内存使用的对象出自归类例如:一个线上商城应用,QPS 达到数千,如果每次都重新创建和关闭数据库连接,性能会受到极大影响。这时预先创建好一批连接,放入连接池。一次请求到达后,从连接池获取连接,使用完毕后再还回连接池,这样既节约了连接的创建和关闭时间,也实现了连接的重用,不至于让庞大的连接数压垮数据库。// 1. 连接池大小。

2024-02-24 23:41:30 899

原创 并发编程(4)共享模型之无锁

Unsafe 对象提供了非常底层的,操作内存、线程的方法,Unsafe 对象不能直接调用,只能通过反射获得static {try {

2024-02-24 21:15:10 1047

原创 并发编程(3)共享模型之内存

Balking (犹豫)模式用在一个线程发现另一个线程或本线程已经做了某一件相同的事,那么本线程就无需再做了,直接结束返回。

2024-02-23 16:49:02 310 1

原创 并发编程(2)共享模型之管程

4 共享模型之管程本章内容共享问题synchronized线程安全分析Monitorwait/notify线程状态转换活跃性Lock4.1 共享带来的问题4.1.1 小故事老王(操作系统)有一个功能强大的算盘(CPU),现在想把它租出去,赚一点外快小南、小女(线程)来使用这个算盘来进行一些计算,并按照时间给老王支付费用但小南不能一天24小时使用算盘,他经常要小憩一会(sleep),又或是去吃饭上厕所(阻塞 io 操作),有时还需要一根烟,没烟时思路全无(wait

2024-02-22 23:13:29 513

原创 并发编程(1)线程

这门课中的【并发】一词涵盖了在 Java 平台上的以及 Java 并发工具、并发问题以及解决方案,同时也会讲解一些其它领域的并发。

2024-02-16 22:24:05 1028

原创 JVM(5)面试篇

关联课程内容基础篇-初识JVM基础篇-Java虚拟机的组成回答路径JVM的定义作用功能组成JVM 指的是Java虚拟机( Java Virtual Machine )。JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件,Java虚拟机上可以运行Java、Kotlin、Scala、Groovy等语言。//用java命令启动一个jvm进程,执行程序任务管理器中启动的Java进程,其实是一个虚拟机进程,它会执行我们编写好的代码。通过jps。

2024-02-16 12:40:28 1550

原创 JVM(4)原理篇

1、着色指针(Colored Pointers)着色指针将原来的8字节保存地址的指针拆分成了三部分,不仅能保存对象的地址,还可以保存当前对象所属的状态。不支持32位系统、不支持指针压缩2、读屏障(Load Barrier)在获取对象引用判断对象所属状态,如果所属状态和当前GC阶段的颜色状态不一致,由用户线程完成本阶段的工作。会损失一部分的性能,大约在5%~10%之间。1、着色指针(Colored Pointers)

2024-02-14 23:25:37 2416

原创 JVM(3)高级篇

回答:Arthas主要使用了Java Agent技术,这种技术可以让运行中的Java程序执行Agent中编写代码。Arthas使用了Agent中的动态加载模式,可以选择让某个特定的Java进程加载Agent并执行其中的监控代码。监控方面主要使用的就是JMX提供的一些监控指标,同时使用字节码增强技术,对某些类和某些方法进行增强,从而监控方法的执行耗时、参数等内容。

2024-02-14 23:14:25 2346

原创 JVM(2)实战篇

1、压力比较大的服务中,尽量不要存放大量的缓存或者定时任务,会影响到服务的内存使用。2、内存分析发现有大量线程创建时,可以使用导出线程栈来查看线程的运行情况。3、如果请求确实创建了大量的内存超过了内存上限,只能考虑减少请求时创建的对象,或者使用更大的内存。4、推荐使用g1垃圾回收器,并且使用较新的JDK可以获得更好的性能。

2024-02-14 23:00:59 1138

原创 JVM(1)基础篇

类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术,类加载器只参与加载过程中的字节码获取并加载到内存这一部分。类加载器会通过二进制流的方式获取到字节码文件的内容,接下来将获取到的数据交给Java虚拟机,虚拟机会在方法区和堆上生成对应的对象保存字节码信息。一个Tomcat程序中是可以运行多个Web应用的,如果这两个应用中出现了相同限定名的类,比如Servlet类,Tomcat要保证这两个类都能加载并且它们应该是不同的类。

2024-02-12 20:21:52 1283

原创 数据结构与算法(6)查找算法

int key;// 若希望任意类型作为 key, 则后续可以将其设计为 Comparable 接口int t;int[] keys;this.t = t;@Overrideleaf 表示是否为叶子节点keyNumber 为 keys 中有效 key 数目t 为最小度数,它决定了节点中key 的最小、最大数目,分别是 t-1 和 2t-1keys 存储此节点的 keychildren 存储此节点的 child。

2023-12-30 12:01:10 850

原创 数据结构与算法(5)堆

对于前、中两种遍历,实际以上代码从右子树向回走时,并未走完全程(stack 提前出栈了)后序遍历以上代码是走完全程了。对于后序遍历,向回走时,需要处理完右子树才能 pop 出栈。以上用队列来层序遍历是针对 TreeNode 这种方式表示的二叉树。二叉树是这么一种树状结构:每个节点最多有两个孩子,左孩子和右孩子。对于数组表现的二叉树,则直接遍历数组即可,自然为层序遍历的顺序。以大顶堆为例,相对于之前的优先级队列,增加了堆化等方法。下面是一种统一的写法,依据后序遍历修改。表示没啥可处理的,可以出栈。

2023-12-04 14:33:47 859

原创 数据结构与算法(4)队列

双端队列、队列、栈对比定义特点队列一端删除(头)另一端添加(尾)栈一端删除和添加(顶)双端队列两端都可以删除、添加优先级队列优先级高者先出队延时队列根据延时时间确定优先级并发非阻塞队列队列空或满时不阻塞并发阻塞队列队列空时删除阻塞、队列满时添加阻塞Java 中 LinkedList 即为典型双端队列实现,不过它同时实现了 Queue 接口,也提供了栈的 push pop 等方法注2:不同语言,操作双端队列的方法命名有所不同,参见下表操作JavaJavaScript。

2023-12-04 11:08:34 758

原创 数据结构与算法(3)栈

计算机科学中,是一种线性的数据结构,只能在其一端添加数据和移除数据。习惯来说,这一端称之为,另一端不能操作数据的称之为,就如同生活中的一摞书先提供一个栈接口。

2023-12-04 10:19:56 392

原创 数据结构与算法(2)链表

定义计算机科学中,递归是一种解决计算问题的方法,其中解决方案取决于同一类问题的更小子集return;自己调用自己,如果说每个函数对应着一种解决方案,自己调用自己意味着解决方案是一样的(有规律的)每次调用,函数处理的数据会较上次缩减(子集),而且最后会缩减至无需继续递归内层函数调用(子集处理)完成,外层函数才能算调用完成原理假设链表中有 3 个节点,value 分别为 1,2,3,以上代码的执行流程就类似于下面的伪码return;思路确定能否使用递归求解。

2023-11-22 16:34:18 815

原创 数据结构与算法(1)数组

在计算机科学中,数组是由一组元素(值或变量)组成的数据结构,每个元素有至少一个索引或键来标识因为数组内的元素是。

2023-11-22 16:12:15 818

原创 10 集成学习和随机森林

机器学习之集成学习和随机森林

2022-10-12 12:06:14 153 1

原创 09 决策树

机器学习之决策树

2022-10-11 12:05:37 138

原创 08 支持向量机SVM

机器学习之支持向量机SVM

2022-10-11 12:00:10 215

原创 07 评价分类结果

机器学习之评价分类结果

2022-10-09 13:58:00 42

原创 06 初等矩阵和矩阵的可逆性

线性代数之初等矩阵和矩阵的可逆性

2022-10-08 20:53:56 69

原创 06 逻辑回归

机器学习之逻辑回归

2022-10-08 18:26:27 64

原创 05 线性系统

线性代数之线性系统

2022-10-08 15:48:52 45

原创 04 矩阵的应用和更多矩阵相关的高级话题

线性代数之矩阵的应用和更多矩阵相关的高级话题

2022-10-08 14:45:45 52

原创 03 矩阵不只是mn个数字

线性代数之矩阵不只是mn个数字

2022-10-08 12:27:15 37

原创 02 向量的高级话题

线性代数之向量的高级话题

2022-10-08 12:18:11 51

原创 01 一切从向量开始

线性代数之一切从向量开始

2022-10-08 11:58:31 38

原创 05 多项式回归与模型泛化

机器学习之多项式回归与模型泛化

2022-10-06 22:32:40 157

原创 04 PCA与梯度上升法

机器学习之PCA与梯度上升法

2022-10-05 11:43:58 257

原创 03 梯度下降法

机器学习之梯度下降法

2022-10-04 10:26:33 132

原创 02 线性回归法

机器学习之线性回归法

2022-10-03 16:54:04 211

原创 09 正交性

线性代数之正交性

2022-10-02 14:48:25 136

原创 01 K近邻算法 KNN

机器学习之k近邻算法

2022-10-02 10:55:24 191

原创 算法笔记

文章目录1.栈2.队列3.特殊状态的枚举4.二分5.堆6.set map7.并查集8.bitset1.栈栈(Stack )是支持push和pop两种操作的数据结构。push是在栈的顶端放入一组数据的操作。反之,pop是从其顶端取出一组数据的操作。因此,最后进入栈的一组数据可以最先被取出(这种行为被叫做LIFO: Last In First Out,即后进先出)。通过使用数组或者列表等结构可以很容易实现栈,不过C++、Java等程序语言的标准库已经为我们准备好了这一常用结构,在比赛中需要时不妨使用它们

2020-11-13 20:20:45 133

空空如也

空空如也

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

TA关注的人

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