自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

L_MaFia的博客

毕业于SCAU,EE。一枚 Java Web Boy. Blog是为了记录下踩的坑,以防自己“老年痴呆”了。可以的话,还希望能和一些大佬们一起交流哟~

  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 【Java】synchronized和ReentrantLock分析

文章目录synchronized和ReentrantLock分析代码需求:思路:代码:缺点:ReentrantLock、Condition的await和signal思路ReentrantLock用法代码:synchronized分析线程的6个状态当线程竞争不到锁时阻塞时代码:输出:当线程调用wait时代码:输出:ReentrantLock分析当线程竞争不到锁时阻塞时代码:输出:当线程调用await时代码:输出:synchronized和ReentrantLock分析参考:子路老师博客: https:

2021-05-30 19:28:56 319 2

原创 【Java】MacOS IDEA 如何导入第三方的 Live Templates

Live Templates xml 文件的导入

2022-10-16 00:29:40 355 1

原创 【Java】IDEA 升级成 到 2021.02 出现的问题

问题1:运行报错:java: JPS incremental annotation processing is disabled. Compilation results on partial recompilatio解决:lombok 版本过老,升级最新版本 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok&l

2021-08-11 23:44:31 2962

原创 【Spring】BeanPostProcessor 和 AOP 相关的 BeanPostProcessor

Bean后置处理器BeanPostProcessorBeanPostProcessor 是一个接口类:public interface BeanPostProcessor { Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException; Object postProcessAfterInitialization(Object bean, String beanName)

2021-07-17 18:45:15 2208 1

原创 【Spring】依赖注入&循环依赖

依赖注入&循环依赖依赖注入依赖注入有2种方式:Constructor-based dependency injection 和 Setter-based dependency injection构造器注入例子:SimpleMovieLister依赖了MovieFinder,然后通过构造参数来实现依赖注入public class SimpleMovieLister { // the SimpleMovieLister has a dependency on a MovieFind

2021-07-08 00:28:37 564

原创 【Java】synchronized的使用

文章目录synchronized锁定的资源锁定对象改变锁定对象为字符串常量减小锁的颗粒度脏读问题支持重入重入1重入2synchronized 与 异常处理synchronized的可见性问题原子性操作一道的面试题方式1:方式2:方式3:synchronized锁定的资源synchronized修饰的是方法或者代码块来实现同步,但其实锁定的资源其实是对象。synchronized修饰于3种方式(静态方法、普通方法、方法块),其锁定的资源有2种(类对象、类的实例)加synchronized关键字之后不一定能

2021-05-27 01:36:44 487 1

原创 【Java】HashSet/HashMap源码解读

文章目录HashSet解析HashSet的构造HashSet的add方法*HashMap的putVal方法HashMap的扩容方法:resizeHashMap树化方法:treeifyBinHashSet解析先从构造和add方法看起,并从此去看HashMap的相关。public static void main(String[] args) { HashSet set = new HashSet(); set.add("dog"); set.add("ca

2021-05-20 14:05:28 128

原创 【Java】反射机制

获取类对象的方式方式1:在编写静态源代码阶段,使用Class.forName+类全路径应用场景:读取配置文件 ——> 读取类的全路径 ——> 加载类,这种方式常用在底层框架中方式2:在Class类阶段,直接使用 类.class应用场景:用于把类作为参数传递方式3:在代码运行阶段时,当创建了事例对象时,通过对象名.getClass方法方式4:使用类加载器【类加载器一共有4种】classLoader.loadeClass()基本数据类型和其包装类的类基本数据类型都是装箱

2021-05-18 10:51:56 69

原创 【Spring Boot】可执行jar包的启动原理

Spring Boot的可执行jar包启动原理Spring Boot来打可执行jar包如果maven的配置pom里继承了spring-boot-starter-parent的话,就使用下面这种方式,直接添加打包插件。 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artif

2021-05-07 23:40:42 249

原创 【SpringBoot】启动器(starter)并自定义启动器

SpringBoot启动器参考: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starterSpringboot的Stater的概念其实很像操作系统中的bootloader,在应用或者系统启动的时候需要把设备驱动、内存环境等都装配好。对于Springboot就是把依赖项和配置项进行装配啦。启动器的特点就是你不需要每次都把依赖和配置相关代码拷贝到你的工程里,可以通过include所需

2021-05-05 23:48:57 233

原创 【Netty】Netty的零拷贝原理与应用

Netty的零拷贝原理与应用IO中的零拷贝内存的用户空间和内核空间DMA 直接存储访问上下文切换普通的文件传输方式内存映射(MMAP)方式Linux的sendFile()优化Linux2.1的方式Linux2.4的方式NIO中的零拷贝内存堆内存特点:堆外内存特点:文件传输Netty中的零拷贝内存:文件传输IO中的零拷贝内存的用户空间和内核空间内存中有用户空间提供给用户调用内存中内核空间给操作系统的指令使用DMA 直接存储访问DMA:直接存储访问,即不会经过CPU的运算,直接由DMA总线进行拷贝

2021-04-28 00:05:34 296

原创 【算法小抄】递归训练之反转链表

文章目录前言一、反转整个链表代码解析二、反转链表前 N 个节点代码解析三、反转链表区间节点代码解析总结前言前言:阅读《算法小抄》的实时记录,通过自己画图,自己敲一次代码来理解总结一波《算法小抄》:递归反转链表一、反转整个链表代码 private class ListNode { ListNode next; Integer value; } /** * 反转整链表 * * @param head *

2021-04-24 19:35:27 175 1

原创 【Netty】Netty的线程模型及简单用法

Netty的线程模型Reactor模型Netty的模型就是基于Reactor(反应堆)模式实现的,所以一定要先认识下Reactor。Reactor模型也叫Dispatch(派遣)模型。当一个或多个请求同时传给服务端,服务端将它们同步分派给各个请求的处理线程。Reactor模型的三种角色Acceptor:处理客户端新连接,并分配请求到处理链中Reactor:负责监听和分配事件,将I/O事件分配给对应的HandlerHandler:事件处理,如编码、业务处理、解码等Reactor的线程模型

2021-04-13 08:24:22 352

原创 【设计模式之禅】策略模式

策略模式Strategy Pattern定义:Define a family of algorithms,encapsulate each one,and make them interchangeable.定义一组算法 ,把每个算法都封装起来,使他们可以相互切换因为每个算法都是实现于同个接口的,那么他们肯定能相互切换的定义角色:Context 封装角色: 也叫上下文角色。起承上启下的作用,屏蔽高策模块对策略、算法的直接访问。Strategy 抽象策略角色:通常为一个接口。定义了每

2021-04-11 22:30:40 107

原创 【并发】Executor框架(持续)

Executor框架大概描述:将线程池的工作单元和执行机制分开,JDK1.5出了Executor框架来实现线程池功能Executor的三大组成任务:工作单元。被执行的任务为需要实现Runnable或Callable接口执行:执行机制。将任务分配给线程的执行机制。Executor接口及ExecutorService结果:异步返回的计算结果。Future接口及FutureTask流程框架:Executor线程池种类:待记录提交任务execute和submit的区别submit:

2021-04-10 13:30:04 88

原创 【设计模式之禅】 责任链模式

责任链模式Chain of Responsibility定义:Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until and object.让一个以上的对象都有机会处理请求,

2021-04-03 16:55:26 86

原创 【设计模式之禅】 装饰模式

装饰模式Decorator Design Pattern定义:Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality.动态地将额外职责附加到对象上,装饰器为子类提供类灵活的代替方法来扩展功能。目的就是需要对类添加功能的时候,不要创建多个子类,而是采用装饰模式

2021-04-03 15:55:44 123 1

原创 【Netty】NIO模型的基础组件

初识NIOIO模型在java中有三种IO模型BIO 同步阻塞阻塞式IO,在java1.4之前通过InputStream、OutputStream实现。对于每个网络请求都需要创建一个线程,因为需要消耗资源,所以不适合高并发场景,优点时稳定。NIO 同步非阻塞基于BIO的问题,java1.4之后加入了NIO.实现原理时基于多路复用选择器来监测(双向管道)连接状态并通知线程处理。AIO 异步非阻塞NIO的非阻塞时基于多路复用选择器的对管道的轮询实现的。当管道数目较多,性能会被影响。在java1.7

2021-03-28 21:57:52 75

原创 【Dubbo】Dubbo的服务注册源码分析(zookeeper和redis)

Dubbo 服务注册机制Dubbo所支持的注册中心Multicast组网广播,只可以在局域网内使用,一般只是作为测试Zookeeper (常用)是Apache Hadoop 的子项目,是一个树形的目录服务RedisSimple基于Dubbo 的服务实现(SimpleRegistryService),不支持集群Redis注册中心数据结构:如何存储服务的注册与订阅关系状态更新:当服务状态改变,如何及时更新数据结构:redis 注册中心使用Map存储服务发布,

2021-03-22 01:41:46 257

原创 【设计模式之禅】命令模式

命令模式Command Pattern定义:Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.将一个请求封装成一个对象,从而,让你使用不同的请求把客户端参数化,对请求排队或记录请求日志,可以提供命令撤销和恢复功能。定义角色:

2021-03-21 15:15:24 59

原创 【设计模式之禅】中介者模式

中介者模式Mediator Pattern定义:Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently定义一个中介对象封装一组的

2021-03-21 12:26:16 85

原创 【设计模式之禅】原型模式

原型模式Prototype Pattern定义:Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype用原型实例指定创建对象的种类,并且通过拷贝这些原型来新的对象原型模式的核心就是clone方法,通过clone方法进行对象的拷贝,而不是new一个对象。在JAVA中提供了Cloneable接口来标识该对象是可以

2021-03-21 00:00:56 64

原创 【设计模式之禅】代理模式

代理模式Proxy Pattern定义:Provide a surrogate or placeholder for another object to control access to it.为另外一个对象提供代理或者占位符,以控制对其的访问。代理模式也叫委托模式。目的:代理的目的是在目标对象方法的基础上作增强,这种增强的本质通常就是对目标对象的方法进行拦截和过滤。角色定义:Subject 抽象主题角色 - 一个抽象类活接口Real Subject 具体主题角色 - 被代理

2021-03-20 19:10:43 93

原创 【设计模式之禅】建造者模式

建造者模式Builder Pattern定义:Separate the construction of a complex object from its representation so that the same construction process can create different representations将一个复杂对象的构建与它的表示分离,使得相同的构建过程可以创建出不同的表示。角色定义建造者模式下有4个角色:Product 产品类产品类实现了模板方法

2021-03-19 18:43:43 119

原创 【设计模式之禅】模板方法模式

模板方法模式Template Method Pattern定义:Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method subclasses redefine certain steps of an algorithm without changing the algorithm’s structure.定义一个操作中的算法框架,将一些步

2021-03-19 14:28:02 801

原创 【剑指Offer】数组中重复的数字

数组中重复的数字Leetcode地址:数组中重复的数字描述:解法:

2021-03-18 11:17:23 54

原创 【Dubbo】在开发联调的时候需要做什么?

Dubbo RPC 开发联调方案一 临时分组联调在开发provider的服务接口的@DubboService添加group属性; 最好这个group是从配置文件中读取的.@DubboService(group = "${server.member.group}")在需要调用的client的@DubboReference同样的添加group属性; @DubboReference( interfaceClass = UserService.class, gro

2021-03-18 01:35:24 312

原创 【Dubbo】Spring Boot整合Dubbo

Spring Boot整合Dubbo1.环境依赖Dubbo是一种嵌入式的去中心化的架构,其引入的依赖: <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.8</version

2021-03-17 23:04:20 206

原创 【设计模式之禅】工厂方法模式

工厂方法模式Factory Method Pattern定义:Define an interface for creating an object, but let subclass decide which class to instantiate.Factory Method lets a class defer instantiation to subclass.定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法让一个类实例化延迟到其子类就是说,工厂方法模式通过其子类,

2021-03-17 00:29:23 96

原创 【设计模式之禅】单例模式

单例模式Singleton Pattern定义:Ensure a class has only one instance, and provide a global point of access to it.确保一个类只有一个实例(对象),而且自行实例化并且像整个系统提供这个实例通用代码/** * 饿汉式单例 */public class Singleton { private final static Singleton singleton = new Singleton;

2021-03-16 23:15:54 65

原创 【设计模式之禅】六大原则的解读

一.六大原则的解读1.单一职责原则Single Responsibility Principle解释:There should never be more than one reason for a class to change.单一职责原则要求一个接口或类只有一个原因引起变化,也就是一个接口或类只有一个职责,他就负责一件事。一个职责就是一个接口。好处:(从上到下还是因果的)类的复杂程度降低,职责清晰可读性提高,不复杂当然好读啦~可维护性提高,简单好读当然好维护啦~风险降低,好

2021-03-15 01:53:45 133

原创 【Linux】查看公网IP

查看公网IP输入:公网 Linux 查看其公网 IP 地址,可以使用下面的命令:其实在windows也可以通过curl来请求的$ curl ifconfig.me或者$ curl cip.cc结果:在window的cmd下中文乱码的解决方法可以输入chcp 65001转UTF-8解决总结:实际上说是linux下,其实windows下也照样可以通过请求上面那个ip的方式,查看自己的公网IP的...

2021-03-14 23:21:28 266

原创 【PostgreSQL】获取当前时间与时间类型转换

参考官方文档:https://www.postgresql.org/docs/10/functions-formatting.htmlhttps://www.postgresql.org/docs/10/functions-datetime.html查询当前时间 Current Date/TimePostgreSQL提供了许多函数,它们返回与当前日期和时间相关的值。这些SQL标准函数都基于当前事务的开始时间返回值:时间相关值select CURRENT_DATEselect CURRENT.

2021-03-14 22:47:27 2360 1

原创 【SpringBoot学习】SpringBoot启动的Banner修改

一.Banner是什么?就是图中的字符图案——Spring二.怎么修改Banner?在resource路径下新建 banner.txt 文件新建的内容就是接下来Banner的内容了,不需要要修改任何配置如果想Banner类似SpringBoot一样的酷炫字符图案,那就试试下面的网站吧~小伙伴可以使用这个网址: http://patorjk.com/software/taag/三.怎么关闭Banner?我觉得Banner太碍事咧,想关闭它怎办?在启动类的main函数里修改代码:

2020-10-15 00:40:01 77

原创 【ROS】launch启动文件的常用标签

学习《ROS机器人开发实践》第四章<launch>XML文件必须包含一个根元素,launch文件的根元素由<launch>标签定义。<node>launch文件的核心就是启动多个ROS节点,节点采用<node>标签定义。<node pkg="package-name" type="executable-name" name="no...

2020-03-19 15:47:47 627

原创 【ROS】Scanse Sweep 激光雷达的使用

一.安装FTD驱动点击链接进行下载——FTD驱动下载下载好后将其解压并安装tar xfvz libftd2xx-<platform>-1.x.x.tgzcd release/build #把解压出来的动态库复制到系统路径上sudo cp lib* /usr/local/lib #创建链接文件ln -s /usr/local/lib/libftd2xx.so.1.x....

2020-03-16 23:02:48 593

原创 【raspberry pi】装不好你找我!树莓派4B 4G版(raspbian Buster系统)安装ROS(kinetic)

0. 前提条件1)配置国内的apt镜像源sources.list配置:deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpisources.list.d里的raspi.list配置deb http://mirrors.ustc.edu.cn/archive.raspberrypi...

2020-03-12 23:20:21 3682 3

原创 【嵌入式】S3C2440的时钟系统

一.时钟系统图:下图摘自 S3C2440官方datasheet1. OM[3:2]:选择主时钟源的方式2. PLL锁相环: (锁相环部分)VCO:Voltage Controlled Oscillator 电压控制振荡器提供时钟频率给DC 电压。PFD:Phase Frequency Detector 相位频率监测器监测Fref和Fvco的相位差,当出现差异产生控制信...

2019-11-20 21:51:08 236

原创 【嵌入式】Makefile新手入门

使用gcc编译:几乎最简单的gcc编译命令,将a.c和b.c编译成一个执行文件test。gcc -o test a.c b.c 需要Makefile原因:只要我们在shell执行上面的命令,gcc都会将a.c和b.c编译。无论两个C文件的内容是否修改过。我们很容易想到,万一某个工程有许多文件编译成一个可执行文件,每当我们只要是修改某个文件的一个标点符号都需要编译一次,而且还需要等待较长时...

2019-11-19 22:52:12 247 1

原创 【ATPCS】ARM架构中函数的调用和被调用的关系

什么是ATPCS?ATPCS即ARM-THUMB procedure call standard(ARM-Thumb过程调用标准)应用程序的函数可以如何分开地写,分开地编译,最后将它们连接在一起,所以它实际上定义了一套有关过程(函数)调用者与被调用者之间的协议。–来自百度百科:ATPCS什么协议呢?调用函数如何传递参数(即压栈方法,以何种方式存放参数),被调用函数如何获取参数,以何...

2019-11-16 23:44:20 323

NoteHighlight2016x86(1).msi

OneNote2016安装代码高亮插件-NoteHightlight 官网:http://notehighlight.codeplex.com/

2020-03-05

空空如也

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

TA关注的人

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