自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ConcurrentHashMap jdk1.8 部分源码理解

变成红黑树的时候 判断一下是否大于 64 如果小于64 就不扩容 否则则 扩容 扩容操作的时候还需要对头节点进行加锁 这个就是扩容方法。就是 1.5 * initialCapacity + initialCapacity + 1 然后是向上取整 取 2的幂次方。第一个table 存放node节点的数据采用懒加载 总是2的幂次方 第二个是存放扩容时新生成的数据。第四个是 一直都是2的幂次方 这个的意思是 每次都向上取整 取的是2的幂次方。transfer 极其复杂 而且也只是迁移了一部分。

2023-07-30 16:55:34 58 1

原创 RabbitMQ笔记

1 mq就是消息队列 其实就是一个队列 先进先出 只不过存放的是消息而已 是一种跨进程的通信机制 用于上下游传递消息 RabbitMq是常见的上下游解耦的消息通讯服务使用了MQ只有发送消息就只依赖于MQ不依赖于其它服务使用mq的解释 就是 流量削峰 异步处理 应用解耦流量削峰就是 比如说我一个系统能处理1w条消息 但是现在有两万条消息 那就用消息队列来 处理 可能处理某些用户的时候慢一些 但是相比于消息丢失 这种处理费方式还是相当合理的。

2023-07-18 14:18:16 59

原创 23种设计模式之建造者模式

建造者模式

2023-06-16 13:38:56 59

原创 23种设计模式之抽象工厂模式和枚举类单例模式

比如我们有两个工厂,衣服工厂和裤子工厂,抽象 工厂就将这两个工厂进行整合。我们无论是要衣服和裤子都管抽象工厂要就可以,告诉他品牌和型号就可以得到具体 的衣服裤子。先说一下枚举类单例模式 也是我们最常用的 这种实现也是最佳的 防止反射 如果反射枚举类型就会报错 因为源码中通过反射获取枚举类 会被过滤掉 就是说我们不能通过反射机制去获取枚举的实例。完全没问题嗷 分析一下 因为枚举类型的构造方法只能调用一次 所以只创建一个对象 所以这个是线程安全 也是比较常见的。实现华为手机工厂 和小米手机工厂。

2023-06-16 12:56:19 67

原创 23种设计模式之工厂模式

工厂模式看这篇就够了

2023-06-16 11:38:38 25

原创 23种设计模式之单例模式

第一种双重检索 效率高 第二种效率低 不常用 每次都要获取锁 使得它效率低下。最常用的两种懒汉式线程安全式的单例。

2023-06-13 11:46:30 22

原创 乱七八糟的一些leetcode 刷题代码

【代码】乱七八糟的一些leetcode 刷题代码。

2023-05-17 17:42:52 175

原创 MySQL的总结 看这篇就够了!!!

缺点:磁盘 I/O 是并发的瓶颈 ,海量数据查询效率低 ,横向扩展困难,无法简单的通过添加硬件和服务节点来扩展性能和负载能力, 需要对数据库进行升级和扩展时,需要停机维护和数据迁移 ,多表的关联查询以及复杂的数据分析类型的复杂 sql 查询,性能欠佳。索引覆盖就是⼀个SQL在执行时,可以利⽤索引来快速查找,并且此SQL所要查询的字段在当前索引对应的字段中都包含了,那么就表示此SQL走完索引后不用回表了,所需要的字段都在当前索引的叶⼦节 点上存在,可以直接作为结果返回了。对于大量数据的表,这可是不小的开销!

2023-05-09 17:47:22 113

原创 数据结构之链表

前面学习的线性数据结构:动态数组栈队列底层都是依托静态数组:靠resize解决固定容量的问题。

2023-05-07 16:25:53 29

原创 微服务架构与SpringCloud搭建的一个Demo

随后就是考虑高并发的问题 : 服务容错 高并发带来的问题 大量的请求过来可能导致服务瘫痪 模拟高并发的场景 用的是jmter 对代码进行压力测试 最终 大量的请求过来会导致无法访问的情况形成 了服务雪崩 各个服务之间有直接依赖性 下游的服务出错可能导致我们之前的服务也没办法进行正常的服务提供 可能会导致服务雪崩 只有做好容错才能保证我们即使一个服务出错之后其它的服务也可以正常的进行运作 : 也就是 "雪落而不崩" 的情况 常见的思路有隔离 超时 限流 熔断 降级。

2023-05-02 17:46:55 117

原创 Java线程

ReentrantLock类实现了Lock,它拥有与synchronized相同的并发性和内存语义,在实现线程安全的控制中,比较常用的是ReentrantLock,可以显式加锁、释放锁。多线程执行时,会相互占用对方线程所需的资源,当资源被占用时,会等待对方释放资源,所以设计程序时需考虑清楚锁的顺序,尽量减少锁的嵌套。当执行多线程时,不同线程会访问同一资源,这是会出现争抢的问题,出现线程安全问题。多线程的优点:提高了CPU的利用率,提高了程序的处理能力,响应速度也提高了,压榨硬件的价值,提升程序结构。

2023-03-21 18:09:10 31

原创 Java网络编程

java网络编程

2023-03-19 13:10:00 55

原创 Java网络编程

java 网络编程

2023-03-19 13:08:47 44

原创 Java IO流

JavaIO详细篇

2023-03-19 13:05:07 28

原创 Java泛型

泛型,在集合中,可以存放不同类型的数据(object类),但在后期对数据使用时会有数据类型转换的问题,所有最好只存一种类型,这时候可以使用泛型来解决这一问题,参数化类型,就是将类型由原来的具体的类型参数化,类似于方法中的 变量参数,此时类型也定义成参数形式,然后在使用/调用时传入具体的,类型泛型可以继承父类,也可以由接口定义。使用泛型定义于类中的类,统称为泛型类,通过泛型类可以完成对一组类的操作对外开放相同的接口。要求该泛型的类型,只能是实参类型,或实参类型的子类类型。泛型接口和泛型类的定义基本一样,

2023-03-19 13:00:17 54

原创 JavaSE——集合

ArrayList : 底层是通过 数组实现的 和数组的区别就是 数组是一旦定义了长度就不能改变了 而ArrayList定义只有长度是可以通过扩容机制来改变的 2 数组中存储的基本数据类型 而ArrayList则存储的是基本类型的封装类型 缺点也有就是在存储的时候会出现不断的装箱的过程因此从性能来考虑的时候 存储基本数据类型的时候还是得使用数组。当链表长度为8 且 数组长度大于64的时候 就会转为红黑树 初始长度为 16 每次扩容为原来的二倍 负载因子为0.75 扩容的方法为 resize()

2023-03-18 17:25:52 36

原创 Java异常

try:在这个代码块中任何一句语句发生了异常,该语句以及下面的语句都不会继续执行(不要随意将代码放进try代码块中),程序将跳转到catch代码块中来处理异常。Java异常是Java一种机制,程序执行不正常的情况被称为异常,;throws在方法的参数列表后面声明此方法可能会出现异常,表示此方法不处理异常,交给方法调用处去处理。运行时异常:继承了RuntimeException,在编译时,可以对异常不强制处理。还有一种是编译时异常IOException,除了运行时异常 剩下的都是编译时异常。

2023-03-16 13:31:43 24

原创 Could not write JSON: (was java.lang.NullPointerException); nested exception is com.fasterxml.jackso

Could not write JSON: (was java.lang.NullPointerException); nested exception is com.fasterxml.jackso

2022-12-14 21:22:36 1055

原创 JMX port 端口被占

JMX port 端口被占

2022-12-05 17:23:06 734 3

原创 Exception encountered during context initialization - cancelling refresh attempt: org.springframewo

Error creating bean with name 'loginService': Unsatisfied dependency expressed through field 'loginDao'; nested exceptionorg.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.ffyc.ssm.dao.LoginDao' available:

2022-12-03 21:46:00 199

原创 javaAPI

javaAPI

2022-11-12 15:14:12 89

原创 Java面向对象

java面向对象

2022-11-10 16:48:39 31

原创 Java数组

数组定义:[] : 表示数组。数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。new:关键字,创建数组使用的关键字。数组存储的数据类型: 创建的数组容器可以存储什么数据类型。[长度]:数组的长度,表示数组容器中可以存储多少个元素具体格式int[] arr = new int[2];int arr[] = new int[2];int[] arr;arr = new int[2];表示长度为2的一维数组当然了 我们平时写代码的过程中以第一..

2022-05-28 20:38:46 62

原创 Java学习笔记(第二章)

目录1、数据类型的转换2、运算符3、控制台输入4、if、switch、while、do while语句讲解1、数据类型的转换、

2022-04-25 16:15:00 504 6

原创 Java学习笔记(第二章)

Java学习基础

2022-04-13 18:13:52 452 4

原创 Java学习

目录为什么要学习JavaJava的发展史Java语言的特点Java语言的体系结构Java开发安装环境1、为什么要学习Java 首先Java是一门高级编程语言,通俗来讲就是好就业,目前来说Java就业岗位多。Java语言主要是应用程序的开发。服务器程序 : Java后端服务器程序安卓应用: 安卓手机app(客户端)、软件工具、嵌入式、大数据技术。2、Java的发展史 Java是1991年由Sun公司研发的一种语言,提出研发要求:要使程序运行内...

2022-04-11 20:09:07 579 2

空空如也

空空如也

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

TA关注的人

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