自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程池学习笔记

文章目录线程生命状态线程的创建方式协程线程池ThreadPoolExcuter工作流程线程池生命状态重要API线程数量设置线程线程是调度CPU资源的最小单位,线程模型分为KLT模型与ULT模型,JVM使用的KLT模型,Java线程与OS线程保持1:1的映射关系,也就是说有一个java线程也会在操作系统里有一个对应的线程。Java线程有多种生命状态。生命状态NEW 新建RUNNABLE 运行BLOCKED 阻塞WAITINT 等待TIMED_WAITING 超时等待TERMINATED 终

2021-06-09 21:59:04 190

原创 mysql学习笔记

文章目录索引数据结构B+树和B树的区别B树索引数据结构mysql用的索引数据结构是B+树。B+树和B树的区别B树List item

2021-06-06 17:15:29 235 2

原创 并发编程-同步锁学习笔记

文章目录synchronized(隐式锁)底层原理锁升级对象头偏向锁轻量级锁自旋锁重量级锁锁消除逃逸分析Lock(显示锁)synchronized(隐式锁)同步实例方法:锁加载在类上,new出来的不同的对象也可以保持同步。同步类方法:锁加载非static方法,锁的是this对象,new出来的不同的对象不会同步。同步代码块:只锁当前代码块。底层原理synchronized是基于JVM内置锁实现,通过内部对象Monitor(监视器锁)实现,基于进入与退出Monitor对象实现方法与代码块同步,监

2021-05-05 09:34:25 169

原创 并发编程-JMM学习笔记

文章目录CPU内存和缓存三级缓存内存管理线程模型KLT(java使用的是KLT)ULTJMM主内存工作内存八大原子操作同步规则分析原子性&有序性&可见性原子性有序性可见性内存屏障MESI(缓存一致性协议)CPU内存和缓存内存是cpu共享,缓存是cpu独享。缓存都是由做小的存储区块-缓冲行(cacheline)组成,缓冲行大小通常为64byte。三级缓存为了提升CPU速度,有了三级缓存的概念,L1,L2,L3,L1和L2是内核独享,一个内核只有一个L、L2,L3是多核共享。存

2021-05-03 13:21:37 116

原创 行为型-责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式

文章目录职责链模式结构简单示例定义命令模式解释器模式迭代器模式中介者模式备忘录模式观察者模式状态模式策略模式模板方法模式访问者模式职责链模式结构抽象处理者:定义一个处理的请求的接口,一般设计为抽象类,维护处理者的顺序,达到链式调用具体处理者:抽象处理者的子类,处理用户的请求,可以访问下一个处理者的对象,转发请求。简单示例例:某企业的供应链系统中,有一个采购审批系统,采购审批是分级进行的,根据采购金额的不同由不同层次的主管人员来审批。//采购单类public class PurchaseR

2021-05-02 14:32:06 172

原创 结构性-适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式

适配器模式结构目标抽象类(定义目标服务所需要的接口,)适配器类(是一个转换器,对目标接口和适配者进行适配)适配者类(目标服务需要的业务方法)简单示例例:某公司开发一款玩具汽车,玩具汽车支持在移动的过程中同时支持多种灯光闪烁和多种声音提示// 汽车控制类,充当目标抽象类public abstract class CarController { public void move() { System.out.println("玩具车移动!"); }

2021-04-11 16:23:19 436

原创 创建型-建造者模式&原型模式&单例模式

建造者模式结构抽象构建者具体建造者产品指挥者简单实现例:角色扮演类游戏,不同人物在不同场景会有不同的能力,并且可以装扮不同的外表。// 复杂产品对象public class Actor { private String type; private String sex; private String face; private String costume; private String hairstyle; public String

2021-03-07 10:38:23 177

原创 创建型--工厂模式相关

简单工厂模式定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。结构Factory(工厂角色):即工厂类,是简单工厂模式的核心,负责根据不同的情况来创建不同的对象。工厂类可以直接被外界使用,返回的基类Product,实际创建的是子类对象。Product(抽象产品角色):工厂类创建的所有对象的父类,封装了公有方法。ConcreteProduct(具体产品角色):具体的产品角色,可以根据业务需求来实现不同的方法。简单实现例:开发一个图表库可以提供不同外观的图表,

2021-02-21 17:33:40 403

原创 设计模式笔记

面向对象设计原则单一职责原则一个对象应该只包含单一的职责,并且该职责被完整的封装到一个类中。单一职责原则是为了复用性能高,代码承担的职责越多(耦合度越高),代码被复用的可能性就越小,把职责进行分离后,代码就会逐渐向着低耦合高内聚的目标演化。比如代码中常见的各种until类。开闭原则开闭原则是面向对象的可复用设计的第一块儿基石,它是最重要的面向对象设计原则。简单来说就是,软件版本发布后,后续的需求扩充,应该是尽量不修改代码,而是在原有代码的基础上,通过对接口的实现,抽象类的继承来扩展代码。所以,开

2021-02-14 09:34:35 66

原创 hashMap小结

/* * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */package java.util;import java.io.IOEx

2021-02-06 11:48:36 73 1

原创 白话JVM之虚拟机类加载机制

上图中,加载、验证、准备、初始化和卸载这个五个阶段的必须是按部就班的,而解析在某些情况下可以在初始化阶段以后再开始。《Java虚拟机规范》只规范了在什么时候初始化,其他的没规范,但是他又规范了加载、验证、准备是要在初始化之前进行。规定有以下场景才会强制初始化(有且只有):遇到new、getstatic、pustatic、或invokestatic这四条字节码指令时,如果类型没有进行初始化,就要先进行初始化,能够生成这四条指令的典型的Java代码场景有:*使用new关键字实例化对象的时候*读取或设置

2021-01-31 13:40:01 255 3

原创 i = i++和i =++i

public class Count { public static void main(String[] args) { int i = 0; i = i++ ; System.out.println(i); }}上面代码输出的i为0,如果是把i = i++换成i=++i,又会输出1,这是由于i++是先赋值,再计算导致,但是为什么先赋值呢?public static void main(String[] args) {

2021-01-31 09:35:11 1460 3

原创 白话JVM之性能监控、故障处理工具

基础故障处理工具jps功能和linux下的ps很像,是最基础的 命令,其他命令需要知道java进程的id(LVMID),就需要先用这个查一下命令格式:jps [options] [hostid]option作 用-q只输出LVMID,省略之类的名称-m输出虚拟机进程启动时传递给主类main()函数的参数-l输出主类的全名,如果进程执行的jar包 ,则会输出jar包的路径-v输出虚拟机启动时启动的jvm参数

2021-01-24 13:27:15 87

原创 白话JVM之各种常见垃圾收集器

GC并不是java的衍生物,1960年就提出了垃圾收集的概念,Java垃圾收集器到现在为止25年,各大虚拟机开发公司的工程师慢慢完善,从开始的新生代老年代模式,到现在的region模式,都离不开三个事情:哪些内存需要回收?什么时候回收?如何回收?从最初的单线程Serial收集器,到现在的ZGC,垃圾收集器的瓶颈不在于处理垃圾的速度,各大虚拟机开发者绞尽脑子处理的就是提升吞吐量和降低延迟,但是这俩似乎看起来是鱼和熊掌。吞吐量:吞吐量=用户代码运行时间\(用户代码运行时间+垃圾运行收集的时间)吞吐量当

2021-01-17 12:46:19 113

原创 白话JVM之内存区域与内存溢出异常

周志明《深入理解Java虚拟机》一书学习笔记,仅代表个人理解。

2021-01-16 11:21:26 122

空空如也

空空如也

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

TA关注的人

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