自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (2)
  • 收藏
  • 关注

原创 mySQL实用专辑

sql 所有日期的使用和转换

2022-12-13 21:03:33 146

原创 redis 实战操作命令

redis 实战小操作reids客户端

2022-11-11 20:03:06 171

原创 注解切面自定义实现功能

注解自定义实现操作

2022-11-01 15:30:21 255

原创 SpringBoot项目启动完成后自动执行方法

SpringBoot项目启动完成后自动执行方法

2022-10-26 16:31:08 208

原创 Spring工具类

使用新特性和锁机制来保证创建安全

2022-10-14 16:51:29 132

转载 Oracle的sql按照设置时间格式查询的的函数

Oracle 按照自定义的时间格式查询函数使用案例

2022-10-14 16:06:14 2281

原创 线程池的定时器demo

定时器 线程池

2022-10-12 14:45:56 103

原创 Java线程池的使用和定义

Java 线程池 自定义线程池和使用demo测试

2022-10-12 14:44:22 115

转载 stream JDK8使用大全

jdk8 大全

2022-10-12 09:46:48 239

原创 stream的集合高级操作

stream 流 Java8 高级操作

2022-10-10 16:20:11 255

原创 Ribbon负载均衡

负载均衡流程:

2022-05-02 16:27:42 64

原创 Mybatis源码分析Mapper文件的注册和绑定

Mybatis 是一个「面向 sql」的持久层框架,它可实现动态拼装 sql,极其灵活,同时避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集,其插件机制允许在已映射语句执行过程中的某一点进行拦截调用等等。我们都知道 Mapper 是一个接口,它的每个方式是我们与数据库交互的入口,每个 Mapper 都有与之相对应的一个 XML 文件,我们可以在 XML 里面自由快活地写 sql,当然我们也可以用注解的形式写在接口方法上,但终究还是没 XML 灵活,那么问题来了,Mybatis 是如何注册与绑定

2022-01-22 16:44:12 420

原创 GitHub提交的流程示意图+命令

代码同时托管到github和git.oschina.net开源项目托管在Github,同时在Git@OSC也有备份,有两个地方,是不是很麻烦呢?非也非也,下面介绍一下我是怎么做的。1、先在Github新建一个项目,点击Github主页右上角的加号 -> New Repository,接着输入Repository name:kind-samples,最后点击页面最下面的Create repository按钮,搞定。2、接着我们在本地检出刚在Github新建的项目,我们切换到本地机器的工作目录,然后

2022-01-20 16:22:09 356

原创 NIO和OIO的同步异步阻塞和非堵塞总结

同步异步指的是通信模式,而阻塞和非阻塞指的是在接收和发送时是否等待动作完成才返回所以不能混淆这四个词。首先是通信的同步,主要是指客户端在发送请求后,必须得在服务端有回应后才发送下一个请求。所以这个时候的所有请求将会在服务端得到同步其次是通信的异步,指客户端在发送请求后,不必等待服务端的回应就可以发送下一个请求,这样对于所有的请求动作来说将会在服务端得到异步,这条请求的链路就象是一个请求队列,所有的动作在这里不会得到同步的。阻塞和非阻塞只是应用在请求的读取和发送。在实现过程中,如果服务端是异步的话,客

2021-11-20 15:25:49 2112

原创 Linux基本命令

cd [文件名] #进入文件目录里面cd .. #返回上一级目录cd / #直接回到根目录cd /root #根目录ls #查看当前路径下的文件(没有包括信息)ls -ll #查看当前文件下的所有文件的所有信息ls -al #查看全部文件(文件名带后缀类型)mkdir [文件名] #新建一个文件夹mkdir -p [目录+最后的文件名] 没有的路径就用-p来创建一级一级来创建到母的文件夹tar -zxvf [文件名] #解压文件rm -rf [文件.

2021-11-13 20:21:36 766

原创 Java开发中的运算符

运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。算术单目:+(取正)-(取负) ++(自增) - -(自减)双目:+ - * / %(取余)三目:a>b?true:false 说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式

2021-11-04 14:39:15 132

转载 设计模式的优缺点

1. 工厂方法模式优点:使用工厂方法模式,创建客户所需产品,用户只需关心产品对应的工厂,其他都不用知道。添加新产品时,只需添加一个具体工厂和一个具体产品即可。缺点:添加新产品时,需要同时添加具体工厂和具体产品,所以系统中类的个数是成对增加,增加了系统的复杂度。适用场景:客户端不知道它所需要的对象的类。2. 抽象工厂模式优点:易于交换产品系列;使具体的创建实例过程与客户端分离缺点:实现增加功能时,需改动的地方比较多适用场景:系统功能结构稳定,不需新增功能3. 建造者模式优点:使建造代码与表示

2021-10-13 14:45:49 631

原创 Spirng的生命周期和自动装配

@Bean指定初始化和销毁方法Bean的生命周期: bean的创建 ---》初始化 --- 》销毁的过程 容器来管理Bean的生命周期;我们可以自定义初始化和销毁方法;容器在进行到当前生命周期的时候来调用我们自定义的初始化和销毁方法 构造(对象创建) 单实例:在容器启动的时候创建对象 多实例:在每次获取的时候创建对象 初始化: 对象创建完成,并赋值好,调用初始化方法。。。 销毁: 单实例:容器关闭的时候 多实例:容器不会管理这个Bean;容器不会调用销毁方法 1、指定

2021-10-03 16:43:57 126

原创 Spring组件注册原理

AnnotationConfigApplicationContext类 :可以通过写一个方法把这个类当做参数的形式写进去,然后查看这个类里面有什么方法使用其中一个方法拿到这个我们所注册的的Bean,并返回一个数组,这个数组里面的内容返回的是全限定类名,就是这个类所在的路径 使用definitionNames来接收。通过forEeach来循环遍历出来的就是类的包名+类名的全限定名字。给容器中注册组件的方式有三种:1)、包扫描 + 组件标注注解(@Controller/@Service/@Reposi

2021-10-02 23:38:22 189

原创 Spring启动初始化过程

一、Spring 容器高层视图Spring启动的时候会读取应用程序提供的Bean配置信息,并在Spring容器生成一份相应的Bean注册表,根据这张注册表实例化Bean,装配好Bean之间的依赖关系,为上层应用提供准备的运行环境。...

2021-09-30 23:55:02 2284

原创 Springboot知识点概括

配置文件及注解的使用@ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定。prefix = “person” :配置文件中那个下面的所有属性进行一一映射。@ConfigurationProperties(prefix = “person”): 配置文件读取,标记在类的属性上面,prefix后面跟配置的文件名字,表示读取那一个文件的信息,可以是yaml或者xml文件,不过都要与类中的属性一一对应才能起到映射效果并读取出来。默认从全局配

2021-09-24 16:56:56 662

原创 jdk通配符泛型

什么是泛型?泛型即“参数化类型”,定义有参方法时有形参,,然后调用此方法时传递实参。那么也将类型由原来的具体的类型参数化,类似于方法中的变量参数,类型也定义成参数形式(称之为类型形参),然后在使用时传入具体的类型(类型实参)public class TestFanxing{ @Test public void TestFanxing(){ List<String> list = new ArrayList<String>(); lis

2021-09-12 12:41:03 81

原创 Java中Map的 entrySet() 详解及用法(四种遍历map的方式)

Entry由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系。Map中采用Entry内部类来表示一个映射项,映射项包含Key和Value (我们总说键值对键值对, 每一个键值对也就是一个Entry)Map.Entry里面包含getKey()和getValue()方法Iterator<Map.Entry<Integer, Integer>> it=map.entrySet().iterator(); while(it.hasNext()) {

2021-09-11 10:17:07 267

原创 HashMap扩容和规则

HashMap:为什么容量总是为2的次幂HashMap是根据key的hash值决策key放入到哪个桶(bucket)中,通过 tab=[(n - 1) & hash] 公式计算得出。其中tab是一个哈希表1. 为什么要保证 capacity 是2的次幂呢?(1)在get方法实现中,实际上是匹配链表中的 Node[] tab 中的数据。(n - 1) & hash实际上是计算出 key 在 tab 中索引位置,当key的hash没有冲突时,key在HashMap存储的位置就是匹配的no

2021-09-11 10:10:19 140

原创 jdk1.8新特性

Supplier接口java.util.function.Supperlier<T>接口,它意味着“供给”,对应Lambda表达是需要“对外提供”一个符合泛型类型的对象数据@FunctionalInterfacepublic interface Supplier<T>{ public abstract T get(); }供给型接口,通过Supplier接口中的get 方法可以得到一个值,无参有返回的接口使用Lombda表达式返回数组元素最大值使用Supplier

2021-09-10 20:30:53 472

原创 Java动态代理以及源代码解析

java动态代理原理及解析设计模式:动态代理通过代理层这一中间层,有效的控制对于真实委托类对象的直接访问,同时可以实现自定义的控制策略(Spring的AOP机制),设计上获得更大的灵活性。**java动态代理的类和接口(jdk1.6源码)**java.lang.reflect.Proxy:动态代理机制的主类,提供一组静态方法为一组接口动态的生成对象和代理类。// 方法 1: 该方法用于获取指定代理对象所关联的调用处理器public static InvocationHandler getInvo

2021-09-06 14:18:49 182

原创 <? extend T>和<? super T>的解释

JAVA泛型知识–> <? extends T>和<? super T><? extends T> 和 <? super T> 是Java泛型中的“通配符(Wildcards)” 和 “边界(Bounds)”的概念<? extends T> 是指 “上界通配符(Upper Bounds Wildcards)”<? super T> 是指 “下界通配符(Lower Bounds Wildcards)”<? ex

2021-08-24 12:09:22 1369

java23种设计模式.md

设计模式

2021-07-19

《大厂面试》—Java 集合连环30问.md

集合面试

2021-07-19

空空如也

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

TA关注的人

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