自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 手写RPC框架-注解解析、接口代理生成

远程服务调用

2022-09-16 12:49:29 493 1

原创 手写RPC框架-注册中心实现

注册中心实现

2022-09-14 21:15:15 598

原创 手写RPC框架-项目结构以及使用

手写RPC

2022-09-13 18:01:09 330

原创 javassit创建一个类实现某个接口

javassit给属性设置注解javassit根据接口生成实现类javassit实现方法逻辑

2022-09-09 09:46:36 374

原创 JAVA集合文章目录

java集合详解

2022-08-22 15:54:35 185

原创 java有序的Map-LinkedHashMap

手写RPC

2022-08-22 15:48:28 4429

原创 JAVA线程安全Map解析

HashTableConcurrentHashMapCollections.SynchronizedMap

2022-08-22 13:48:33 3737

原创 JAVA集合之HashMap

HashMaploadFactorthreshold

2022-08-19 16:25:27 226

原创 JAVA线程安全集合Collection解析

线程安全的集合CopyOnWriteArrayListCopyOnWriteArraySetVector

2022-08-16 12:58:25 816

原创 JAVA集合Collection源码解析

java集合源码java集合之CollectionArrayListLinkedList

2022-08-12 17:31:32 257

原创 java 线程池

线程池实现原理

2022-08-02 22:41:52 79

原创 Spring时间监听机制--源码解析

怎么用Sring自定义监听器

2022-07-15 16:06:21 358

原创 ASM第二弹_解析类

前言上一弹已经介绍了生成类的大致流程,与之对应的读取一个类需要使用ASM的ClassReader类进行实现,但是解析后由于我们要对一个类的处理方式并不相同,而类的结构是定型,基本不会改变的,所以使用了访问者模式。使用到的主要类ClassReaderClassVisitor(基类)实现逻辑public class ClassPrinter extends ClassVisitor { public ClassPrinter() { super(Opcodes.ASM8)

2021-07-27 21:34:00 91

原创 ASM第一弹_生成类

前言ASM式操作字节码的工具类,可以生成,解析,改变字节码的信息。我们要生成的类和字节码信息使用ASM生成该类生成字节码需要了解字节码的基本信息,我会出一篇博客专门介绍,并添加连接,这里不做赘述。第一篇作为入门大家了解一下,代码注释清晰,请自行查看。导入的jar包 <dependency> <groupId>org.ow2.asm</groupId> <artifactId>asm</ar

2021-07-26 22:59:10 290

原创 JVM_开篇_JVM是什么

JAVA最初流行的原因强大的类库自动的垃圾处理一处编译,处处运行动态的内存分配和自动垃圾回收运行JAVA程序我们第一次接触Java的时候(Hello World),回忆一下具体的步骤,如下:编写Java程序。通过javac编译.class文件。通过java命令运行.class文件。而这一些列的操作,都需要我们提前安装一个环境(JDK)。JDKJDK被称为java程序开发的最小环境,组成如下:Java类库,常用的String,List等。程序设计语言:我们的语法,及其关键

2021-05-16 18:08:41 106 2

原创 MongoDB根据多个条件获取多条信息

MongoDB根据多个条件获取多条信息背景使用场景极其类库表设计框架支持环境设计思路简单实现抽离出来的公用方法总结番外背景在工作时,有许多大字段是存储在MongoDB中的,在列表展示的时候,分页在mysql中查询出主要信息,再根据mysql中的字段获取MongoDB中的信息,而之前的做法是通过循环调用MongoDB,这中应该是最不应该使用的一种方法,频繁的打开关闭数据库连接,性能可见一般。使用场景极其类库表设计字段解释userId用户唯一标识productId产品唯一

2021-05-06 17:27:08 670

原创 redis的清理策略配置

清理策略volatile-lru ----------删除最长时间没有使用的key,只对设置了过期时间的key生效allkeys-lru ----------删除最长时间没有使用的keyvolatile-lfu ----------删除一定时间内使用最少的key,只对设置了过期时间的key生效allkeys-lfu ----------删除一定时间内使用最少的keyvolatile-random ----随机的删除key,只对设置了过期时间的key生效allkeys-random ----随

2021-01-05 22:12:04 960

原创 JAVA中的线程是什么?

程序程序:是静态的,JAVA代码编译后的有序代码的集合,是保存在硬盘上的。进程1.为什么有进程因为最开始计算机只支持运行一个程序,但是随着计算机硬件的升级,比如说有了更多的资源,所以希望计算机同时完成多件事情,而且彼此之间互不影响。2.什么是进程通过CPU在一个资源集合上的一次动态处理过程。3.进程的组成内核态(资源):寄存器中指令(代码)的地址空间,文件和网络资源,这些是操作系统进行处理的,JAVA程序是无法直接操作硬件的,所以这部分的资源调度,JAVA程序是通过切换到内核态来完成的。用

2020-12-08 21:53:47 178

原创 AQS核心组件及其互斥锁的实现原理

一.Node不了解AQS的请先看这里加锁过程很重要,请耐心从上往下,跟着我的提示看完,会有不一样的理解。当然也需要深思java.util.concurrent.locks.AbstractQueuedSynchronizer.Node也就是整个QAS的核心也就是列表的节点。static final class Node { static final Node SHARED = new Node(); static final Node EXCLUSI

2020-12-02 23:16:13 271

原创 AQS概念和简单的理解

什么是AQSAbstract Queued Synchronize(抽象队列同步器)总起来说就是一些API组件,为了完成像sychnorized的互斥锁,线程阻塞等的一些功能。synchronized我们知道synchronized实现互斥锁是通过锁住一个对象完成互斥锁,也就是在对象头中保存线程的地址,如果有其他想锁住对象的时候,会进行等待(通过切换到内核态改变状态)。而重入则是每一次相同的线程进入都把计数器加1,退出减1。模拟synchronized我们通过java代码是无法直接让线程进入阻

2020-12-01 22:23:22 742

原创 ThreadLocal

作用通过一个ThreadLocal实例,为每一个线程设置一个私有的变量。实例package com.wenbin.threadLocal;public class Demo { static ThreadLocal<Test> threadLocal = new ThreadLocal<>(); public static void main(String[] args) { for (int i = 0; i <= 10; i++)

2020-11-30 21:53:47 108

原创 笔记-LockSupport和Thread.suspend对比

作用挂起和释放线程与suspend和resume的对比– 线程挂起时的状态不同package com.wenbin.locksipport;import org.omg.PortableServer.THREAD_POLICY_ID;import java.util.concurrent.locks.LockSupport;public class Demo { public static void main(String[] args) { Thread sup

2020-11-28 09:44:18 160

原创 笔记-CyclicBarrier

作用与CountDownLatch的作用相同,等待制定数量的任务完成后,执行下一步任务,区别在于,下一个任务可以通过构造函数指定。例子开发组完成所有模块的代码后,测试组进行测试。package com.wenbin.cuclicbarrier;import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;public class Demo { static C

2020-11-27 22:17:41 123

原创 笔记-CountDownLatch

作用完成了指定的几项工作后,才可以去进行下一步。。实例模拟开发人员完成了10个模块后,测试组开始测试。package com.wenbin.countdownlatch;import java.util.concurrent.CountDownLatch;import java.util.concurrent.TimeUnit;public class Demo implements Runnable { static CountDownLatch countDownLatch =

2020-11-26 21:46:13 72

原创 笔记-Semaphore

作用多个线程同时访问一个资源构造方法public Semphore(int permits)public Semphore(int permits, boolean fair)permits: 准入数量fair:是否是公平的逻辑方法public void acquire()尝试获取一个准入的许可,获取不到就等待知道获取,或当前线程被中断。public void acquireUninteruptibly()public boolean tryAcquire()public b

2020-11-26 21:25:22 75

原创 JVM内存模型【内存模型不是内存结构】

为什么要写这篇博客在两天以前的文章中提到了要连载一系列的spring源码系列的文章,但是今天自阿公司不忙的时候,想复习一下JVM内存模型,可是点击量最高的竟然是内存结构,在我当学习JVM的时候看到过这个文章,以至于我当时极度蒙B,所以就回家搞了这篇文章。不过话说回来,老歌的那个内存结构稿子写的很好,不过就是标题不对。链接:点击这里阅读内存模型概念(what?)由于JAVA是支持多线程开发的,也是为了榨干机器的处理能力,但是一般的程序都是需要大量的数据进行运算,但是直接去访问内存对于机器来说是非常耗

2020-10-19 23:02:44 150

原创 理解EntityResolver在Spring加载Bean中的作用

EntityResolver的实现类友情提示:下面的代码可能很多,会劝退一些人,大家只要着重看我注释的地方就可以,因为如果看源码,要深究每一行代码,那么几乎就无法完成了,需要的是理解spring的思路以及重点的地方。ResourceEntityResolverDelegatingEntityResolver共有两个实现类,而ResourceEntityResolver继承了DelegatingEntityResolver类,并重写了resolveEntity方法。ResourceEntityR

2020-10-17 10:40:02 297 3

原创 当一个项目中导入两个jar包中含有相同包名和类名的类时,按照自己的要求去使用指定jar包下的类。

怎么分别执行两个jar包中的类。

2020-06-04 22:10:05 18301 6

原创 类加载器的命名空间

Class与Class的实例类加载器加载的class对象也就是得到一个Class对象,可能让人闹混的也就是Class的实例对象,这个主要是为了让大家看下面的时候区别实例和Class对象。public class MyTest4 { public static void main(String[] args) throws IllegalAccessException, InstantiationException, ClassNotFoundException { MyClass

2020-06-02 22:26:01 246

原创 自定义类加载器及其双亲委托机制

自定义类加载器及其双亲委托机制自定义类加载器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入自定义类加载器新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加

2020-05-30 15:33:48 1462

原创 HashMap源码1_容量的初始化

HashMap源码1_容量容量的初始化功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入注容量的初始化我们对Markd...

2020-01-03 11:26:17 147

xwbDemo.zip

MongoDB多个字段检索多条信息示例代码

2021-05-06

空空如也

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

TA关注的人

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