自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

存在,即合理

记录点点滴滴,最终汇成山河大海

  • 博客(83)
  • 资源 (7)
  • 收藏
  • 关注

原创 es001 常用资源

es restFul模式全部。ApiPost更懂中国程序员。

2023-07-22 21:45:49 122 1

原创 001分布式的基础理论CAP

在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)这3个基本需求,最多只能同时满足其中的2个。Consistency(一致性)数据在多个副本之间能够保持一致的特性(严格的一致性)Availability(可用性)系统提供的服务必须一直处于可用的状态,每次请求都能获取到非错的响应(不保证获取的数据为最新数据)Partition tolerance(分区容错性)

2023-07-22 21:45:42 115

原创 001网络模型与socket的介绍

我们平常使用的程序(或者说软件)一般都是通过应用层来访问网络的,程序产生的数据会一层一层地往下传输,直到最后的网络接口层,就通过网线发送到互联网上去了。给数据加包装的过程,实际上就是在数据的头部增加一个标志(一个数据块),表示数据经过了这一层,我已经处理过了。当另一台计算机接收到数据包时,会从网络接口层再一层一层往上传输,每传输一层就拆开一层包装,直到最后的应用层,就得到了最原始的数据,这才是程序要使用的数据。你看,在互联网上传输一份数据是多么地复杂啊,而我们却感受不到,这就是网络模型的厉害之处。

2023-07-22 21:45:38 398

原创 000网络常见的资源推荐

本文整理完善自TCP/IP 常见攻击手段 - 暖蓝笔记 - 2021这篇文章。这篇文章的内容主要是介绍 TCP/IP 常见攻击手段,尤其是 DDoS 攻击,也会补充一些其他的常见网络攻击手段。IP 欺骗 IP 是什么?在网络中,所有的设备都会分配一个地址。这个地址就仿佛小蓝的家地址「多少号多少室」,这个号就是分配给整个子网的,「室」对应的号码即分配给子网中计算机的,这就是网络中的地址。「号」对应的号码为网络号,「室」对应的号码为主机号,这个地址的整体就是 IP 地址。有时骚话连篇,有时硬核图解。

2023-07-22 21:45:34 596

原创 Mvc原理001流程

2023-07-22 21:45:11 42

原创 002分布式理论BASE

上面说了软状态,但是不应该一直都是软状态。在一定时间后,应该到达一个最终的状态,保证所有副本保持数据一致性,从而达到数据的最终一致性。软状态也称为弱状态,相比较硬状态而言,允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。假设系统出现了不可预知的故障,但还是能用,只是相比较正常的系统而言,可能会有响应时间上的损失,或者功能上的降级。要求多个节点的数据副本都是一致的,这是一种“硬状态”。

2023-07-22 21:44:51 32

原创 junit5

Junit Platform: Junit Platform是在JVM上启动测试框架的基础,不仅支持Junit自制的测试引擎,其他测试引擎也都可以接入。Junit Jupiter: Junit Jupiter提供了JUnit5的新的编程模型,是JUnit5新特性的核心。内部 包含了一个测试引擎,用于在Junit Platform上运行。Junit Vintage: 由于JUnit已经发展多年,为了照顾老的项目,JUnit Vintage提供了兼容JUnit4.x,Junit3.x的测试引擎。

2023-07-22 21:44:42 31

原创 lombok

Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter。

2023-07-22 21:44:30 110

原创 idea中java文件 无法运行,禁用标志

2023-07-22 21:44:12 127

原创 微服务治理-版本相关事情

这是啥意思呐,这不release版本发布之后,让广大群体使用了嘛,再牛逼的架构师,也无法写出零bug的代码,那么这时候,就优先对于release版本的问题进行修复,这时候每次迭代的版本就是SR1,SR2,SR3。里程碑版本,在版发布之前 会出几个里程碑的版本。使用snapshot版本开发了一个时间,觉得最近写代码杠杠的,那么就整几个里程碑版本记录下吧,记录我们这个重大的时刻,是你我未来的回忆。发布候选差不多之后,那么说明整个框架到了一定的阶段了,可投入市场大面积使用了,那么发布出去,让广大用户来吃吃香吧。

2023-07-22 21:44:01 64

原创 java集合-双列集合

在这个类中,键的散列值不是用 hashCode 函数计算的,而是用 System.identityHashCode 方法计算的。返回与键(key)关联的值,或者如果这个键未在表中出现,则返回默认值表中与这个键 关联的值,或者如果键在默认值表中也未出现,则返回 null。扩充次数过多,会影响性能,每次扩充表示哈希表重新散列(重新计算每个对象的存储位置) 我们在开发中尽量要减少扩充次数带来的性能问题。如果这个键已经存在,新的对象将取代与这个键关联的旧对象。,不同的键对象即使内容相同,也被视为不同的对象。

2023-07-16 10:39:08 51

原创 JAVA基础-反射

通过字符串找到一个类,并调用某个方法。模块、类、函数、注解、源代码……运行时修改的是的Bytecode。运行时数据(通常称为元数据。工具:Javasist。

2023-07-16 10:39:03 53

原创 JAVA 反射objenesis

objenesis是一个小型Java类库用来实例化一个特定class的对象。

2023-07-16 10:38:53 182

原创 JAVA生态

也就是说Open JDK是Java SE平台版的开源和免费实现,它由 SUN 和 Java 社区提供支持,2009年 Oracle 收购了 Sun 公司,自此 Java 的维护方之一的SUN 也变成了 Oracle。Oracle JDK根据二进制代码许可协议获得许可,在没有商业许可的情况下,在2019年1月之后发布的Oracle Java SE 8的公开更新将无法用于商业或生产用途。Oracle JDK完全由 Oracle 公司开发,Oracle JDK是基于Open JDK源代码的商业版本。

2023-07-16 10:38:48 220

原创 JVM结构-整体结构

虚拟机:指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统,是物理机的软作实现。常用的虚拟机有/MWare,Visual Box,Java Virtual Machine(Java虚拟机,简称JVM)

2023-07-16 10:38:44 155

原创 java反射 手写Aop

【代码】java反射 手写Aop。

2023-07-16 10:38:19 211

原创 JVM结构-方法区

当类加载到内存中后,JM就会将静态常量池中的内容存放到运行时的常量池中,运行时常量池里面存储的主要是编译期间生成的字面量、符号引用等等。字符串常量池,也可以理解成运行时常量池分出来的一部分类加载到内存的时候字符串,会存到字符串常量池里面。符号引用:例如类和接口的全限定名、字段的名称和描述符、方法的名称和描述符。字面量:例如文本字符串、final修饰的常量。,即时编译器编译后的代码和数据。类的信息,常量,静态变量。用于存储已被虚拟机加载。

2023-07-16 10:38:15 33

原创 JVM结构-堆

堆不是一种数据结构(什么结构都可以存放在堆中)堆内存的大小是可以调节的。类加载器读取了类文件后,需要把类、方法、常变量放到堆内存中,保存所有引用类型的真实信息JVM堆被同一个JVM实例中的所有Java线程共享JVM堆通常由某种自动内存管理机制所管理这种机制叫做“垃圾回收”应用通过堆存储数据(申请、回收、托管) allocate/de-allocate dynamic GC。

2023-07-16 10:38:09 54

原创 JVM-栈

栈管运行,堆管存储内容存放函数 方法 参数局部变量先进后出后进先出内存管理 自动存放速度 比堆快申请大小受限 默认大小1M可能抛出的异常Java虚拟机规范允许Java栈的大小是动态的或者是固定不变的如果采用固定大小虚拟机栈,那每一个线程的虚拟机栈容量可以在线程创建的时候独立选定。如果线程请求分配的栈容量超过java虚拟机栈允许的最大容量,虚以机将会抛出一个StackOverflowError异常。

2023-07-16 10:38:05 61

原创 JAVA基础-异常

继承Exception,必须要throws声明,一声明就告知调用者进行捕获,一旦问题处理了调用者的程序会继续执行。继承RuntimeExcpetion,不需要throws声明的,这时调用是不需要编写捕获代码的,因为调用根本就不知道有问题。一旦发生NoAgeException,调用者程序会停掉,并有jvm将信息显示到屏幕,让调用者看到问题,修正代码。

2023-07-16 10:37:14 168

原创 011Dockerfile

shell是的方式ENTRYPOINTecho的方式== shell方式也就是exec默认方式不会进行变量替换"echo"ARG和ENVARGARG指令定义了一个变量,用户可以在构建时使用--build-arg = 传递,docker build命令会将其传递给构建器。--build-arg 指定参数会覆盖Dockerfile 中指定的同名参数如果用户指定了未在Dockerfile中定义的构建参数,则构建会输出警告。ARG只在构建期有效,运行期无效。

2023-07-15 00:49:54 49

原创 SpringAOP-切点指示器

within()所指定的连接点最小范围只能是类,而execution()所指定的连接点可以大到包,小到方法入参。包 有几级包,就需要写几个*. * *.*.*.*.AccountServiceImpl.saveAccount())指定的注解只能放在需要被增强的方法所属的类中,若该类实现了某接口,将注解放在该接口上是不生效的。指定某个方法时,可能指定的这个方法是接口里的,这个接口又被很多个类实现,此时就可以使用。限定连接点属于一个执行对象(被代理对象)所属的拥有给定注解的类。

2023-07-13 00:03:16 42

原创 SpringBoot-自定义Start

【代码】SpringBoot-自定义Start。

2023-07-10 00:40:12 34

原创 SpringBoot@Conditional

容器中只有一个指定的Bean,或者这个Bean是首选Bean。按照一定的条件进行判断,满足条件给容器中注册bean。作用(判断是否满足当前指定条件)过启用 debug=true属性。系统的java版本是否符合要求。系统中指定的属性是否有指定的值。类路径下是否存在指定资源文件。容器中不存在指定Bean;容器中存在指定Bean;满足SpEL表达式指定。知道哪些自动配置类生效。

2023-07-09 23:16:05 67

原创 SpringBoot起步依赖

所以我们的SpringBoot工程继承spring-boot-starter-parent后已经具备版本锁定等配置了。所以起步依赖的作用就是进行依赖的传递。部分坐标的版本、依赖管理、插件管理已经定义好,

2023-07-09 20:58:14 49

原创 SpringBoot注解-注入数据

Autowired默认优先按照类型去容器中找对应的组件如果找到多个相同类型的组件,再将属性的名称作为组件的id去容器中查找。

2023-07-09 20:52:32 473

原创 SpringBoot-自动配置

1)、SpringBoot启动会加载大量的自动配置类2)、我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;3)、我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们就不需要再来配置了)4)、给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这些属性的值;xxxxAutoConfigurartion:自动配置类;xxxxProperties:封装配置文件中相关属性;

2023-07-09 20:24:44 27

原创 SpringBoot读取配置@ConfigurationProperties @ImportResource

【代码】SpringBoot读取配置@ConfigurationProperties。

2023-07-09 17:59:21 62

原创 Spring-boot-配置文件

进行Spring Boot配置文件部署时,发出警告Spring Boot Configuration Annotation Processor not configured,但是不影响运行。配置注解执行器配置完成后,当执行类中已经定义了对象和该对象的字段后,在配置文件中对该类赋值时,便会非常方便的弹出提示信息。

2023-07-09 11:29:53 25

原创 SpringAOP-特殊场景- this 调用的当前类方法无法被拦截

this 对应的就是一个普通的 ElectricService 对象。这是一个被 Spring 增强过的 Bean。

2023-07-08 23:08:51 98

原创 springBootMaven父工程pom文件

【代码】springBootMaven父工程pom文件。

2023-07-08 18:45:04 205

原创 设计模式-代理(Proxy)模式

给某一个对象提供一个代理,并由代理对象控制对原对象的引用目标对象/被代理对象 ------ 房主:真正的租房的方法代理对象 ------- 黑中介:有租房子的方法(调用房主的租房的方法)执行代理对象方法的对象 ---- 租房的人流程:我们要租房----->中介(租房的方法)------>房主(租房的方法)抽象:调用对象----->代理对象------>目标对象优点代理模式能将代理对象与正式被调用的目标对象分离一定程度上降低了系统的耦合度,扩展性好保护目标对象增强目标对象缺点。

2023-07-08 18:28:15 34

原创 设计模式-设计原则

可以减少类间的耦合性、提高系统稳定性,提高代码可读性和可维护性,可降低修改程序所造成的风险。过度使用迪米特法则会使系统产生大量的中介类,从而增加系统的复杂性,使模块之间的通信效率降低。一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分。无需直接交互的两个类,如果需要交互,使用中间者。一个类对另一个类的依赖应该建立在最小的接口上。各个类建立自己的专用接口,而不是建立万能接口。每个类只负责自己的事情,而不是变成万能。抽象不应该依赖细节,细节应该依赖抽象。降低类的复杂度、提高类的可读性。

2023-07-08 16:30:40 22

原创 设计模式-分类与生命周期

描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。降低系统的耦合度使用者无需关注对象的创建细节对象的创建由相关的工厂来完成;对象结构型模式关心类与对象的组合,通过关联关系在一个类中定义另一个类的实例对象。类结构型模式关心类的组合,由多个类可以组合成一个更大的。,所以对象行为模式比类行为模式具有更大的灵活性。对象的创建由一个建造者来完成;,因此大部分结构型模式都是对象结构型模式。对象的创建由原来对象克隆完成;模板方法模式和解释器模式是类行为型模。

2023-07-08 16:19:46 35

原创 Spring-Aop

AOP(:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术AOP是OOP(面向对象编程)的延续,可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码,使用纯Java实现,不需要专门的编译过程和类加载器,在运行期通过代理方式向目标类织入增强代码。

2023-07-08 14:22:45 40

原创 并发容器-ConcurrentHashMap

如果某一个数据结构声称自己是线程安全的,那么它同样需要保证可见性,也就是说,当一个线程操作这个容器的时候,该操作需要对另外的线程都可见,也就是其他线程都能感知到本次操作。有多个线程同时使用 put 来添加元素,而且恰好两个 put 的 key 是一样的,它们发生了碰撞,也就是根据 hash 值计算出来的 bucket 位置一样,并且两个线程又同时判断该位置是空的,可以写入,所以这两个线程的两个不同的 value 便会添加到数组的同一个位置,这样最终就只会保留一个数据,丢失一个数据。

2023-06-24 22:55:44 137

原创 spring事务注解 @Transactional

REQUIRED默认值 如果当前事务不存在,则创建新的,如果存在则加入支持当前事务,如果不存在则以非事务运行支持当前事务,如果不存在则抛出异常如果当前有事务,则挂起该事务,并且自己创建一个新的事务给自己使用 如果当前没有事务,则同REQUIRED如果当前有事务,则把事务挂起,自己不适用事务去运行数据库操如果当前有事务存在,则抛出异常spring要求被代理方法必须是public的。

2023-06-24 15:30:57 102

原创 007docker仓库

看到{"repositories":[]} 表示私有仓库搭建成功并且内容为空。登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub。此步用于让 docker信任私有仓库地址。添加以下内容,保存退出。(1)拉取私有仓库镜像(此步省略)(4)修改daemon.json。(1)标记此镜像为私有仓库的镜像。(5)重启docker 服务。(3)打开浏览器 输入地址。(2)启动私有仓库容器。(2)再次启动私服容器。(3)上传标记的镜像。

2023-06-24 14:35:12 33

原创 006docker镜像使用

busybox:是一个集成了一百多个最常用Linux命令和工具的软件。linux工具里的瑞士军刀alpine:是一个面向安全的轻型Linux发行版经典最小镜像,基于busybox,功能比Busybox完善。5mbslim:docker hub中有些镜像有slim标识,都是瘦身了的镜像。也要优先选择无论是制作镜像还是下载镜像,优先选择alpine类型流程pull fromregistry(online)从registry拉取public(公有)private(私有)

2023-06-24 12:53:50 27

原创 005docker基础命令

a :显示所有-q:返回id--digests:显示镜像的摘要信息--no-trunc。

2023-06-24 11:09:09 28

SpringMvc 执行流程

SpringMvc 执行流程

2023-06-18

009 maven插件spring-boot-maven-plugin

009 maven插件spring-boot-maven-plugin

2023-06-17

001线程状态图示原图

001线程状态图示原图

2023-06-10

java8的新特性.doc

自己整理的java8新特性及demo 1. Lambda表达式 1 2. 方法的引用 6 3. 构造器引用 7 4. 函数式(Functional)接口 7 5. 四大函数式接口 8 6. Stream 11 7. Map接口的新方法: 19 8. 并行流与串行流 20 9. Optional容器类 23 10. 接口中默认的方法和静态方法 26 11. 日期 26

2020-01-09

easyUI全部手册

jQuery EasyUI 1.5 版 API 中文版.exe jqueryeasyui-demo.chm EasyUI-API+1.3.2.chm EasyUI+tutorial.chm

2019-03-02

数据库连接工具

数据库连接工具,可以连接多种数据库 界面美观 免费使用

2019-02-28

thinkingjava中文版

java圣经thinkingjava 值得拥有 中文高清版

2019-02-28

postmanwin64

postman接口测试工具 window64 位,测试resful 接口的的

2019-02-28

mysql安装图解 安装版

mysql安装图解版 .msi版,window版你值得拥有

2019-02-28

mysql调优与性能设计

mysql性能调优,架构设计 300多页 高清版.值得拥有啊啊

2019-02-28

空空如也

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

TA关注的人

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