自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BtWangZhi的博客

个人平时知识的总结,望大牛赐教,喷子请绕路。

  • 博客(389)
  • 资源 (15)
  • 收藏
  • 关注

原创 JVM-对象

对象头一定是8的倍数,前8个字节存储的是mark world信息,后面8个字节存储的是类型指针。因为开启了指针压缩,第2个8个字节实际只占用了4个字节。

2023-02-08 17:32:53 177

原创 SpringBoot-启动原理

贪心算法是一种在每一步中都采取在当下状态最好或最优的选择,从而希望导致结果是全局最好或最优的算法贪心算法与动态规划的不同在于它对每个子问题的解决方案都做出选择,不能回退,动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。...

2022-10-25 17:46:29 175

原创 Mybatis-SQL注入

/** * 测试sql注入攻击-sql会睡眠5秒才返回 */ @Test public void test02() { QueryWrapper<Result> queryWrapper = new QueryWrapper<>(); queryWrapper.select(Result.ID); String param = "' and (select * from (select sle...

2022-05-05 14:26:03 1923

原创 JVM--GC调优

基本原则Parallel除非确定,否则不要设置最大堆内存优先设置吞吐量目标如果吞吐量目标达不到,调大最大内存,不能让OS使用Swap,如果仍然达不到,降低目标。吞吐量能达到,GC时间太长,设置停顿时间的目标。设置metaspace设置吞吐量和停顿时间参数-XX:MaxGCPauseMillis=100-XX:GCTimeRatio=99设置动态扩容增量-XX:YoungGenerationSizeIncrement=30G1年轻代大小:避免使用-Xmn、-XX:NewRat

2022-03-06 23:01:59 293

原创 Java多线程-CompletableFuture

ExecutorService executorService = Executors.newFixedThreadPool(8); CompletableFuture<Integer> firstFuture = CompletableFuture.supplyAsync(() -> { log.info("开始执行第一个任务"); try { Thread.sleep(1000);

2022-01-27 10:42:19 400

原创 分布式事务

2PC(数据库层面的)将整个事务分为两阶段,准备阶段、提交阶段。准备阶段:事务管理器给每个参与者发送prepare消息,每个数据库参与者在本地执行事务,并写本地Undo/Redo日志,此时事务还没提交。提交阶段:事务管理者接收到了参与者执行成功或者失败、超时的消息,直接给所有参与者发送回滚消息,否则发送提交消息,参与者提交或者回滚事务Commit。注意:在没提交之前,会出现锁住资源的情况,其次就是协作者出现故障,在恢复之前执行者会出现阻塞。3PC基于2PC,引入的超时机制,协调者和执行者都有超时

2022-01-11 22:33:06 189

原创 分布式-基础理论

CAP理论C:Consistency,一致性,写操作后的读操作可以读取到最新的数据状态。因为可能会存在同步延迟,那么读的数据可能不是最新的数据状态,可以返回异常,但是不能返回错误信息。A:Availability,可靠性,任何操作都会得到相应的结果,不会出现超时或响应错误。P:Partition tolerance,分区容错性。分布式系统各个节点都部署在不同的网络分区中,不可避免的会由于网络问题而导致节点之间通信失败,此时仍可对外服务,这叫分区容忍性。CA组合:保证一致性和可用性,放弃分区容忍性,

2022-01-03 15:19:51 857

原创 SpringBoot-事件

SpringBoot事件demo发布方@Servicepublic class UserServiceImpl implements UserService, ApplicationContextAware { private Logger logger= LoggerFactory.getLogger(UserServiceImpl.class); private ApplicationEventPublisher applicationEventPublisher;

2021-11-19 15:44:08 895

原创 Maven--依赖冲突

依赖冲突案例配置如下 <!--测试maven冲突--> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.4</version>

2021-09-05 15:31:19 119

原创 ElasticSearch--Doc Value

对于不分词的字段,聚合操作是基于Doc Value,即正排索引对于分词的字段,聚合操作是基于Fielddata,需要开启,结构和doc value类似,如果是ngram,会占用大量的内存。未完待续。。。

2021-09-04 16:50:05 145

原创 数据结构--链表实际场景应用

时间应用场景,构造一个固定长度的列表,达到固定长度后,自动淘汰尾部的节点 /** * 固定大小的容器,当添加的个数达到上限时, * 自动淘汰添加时间最长的元素 * * @param <E> */ private static class FixElementList<E> { /** * 头指针 */ private Node<E> he

2021-04-28 14:15:12 1495

原创 Linux-常用命令集合

获取当前目录下个目录大小du -lh --max-depth=1

2021-01-22 15:00:43 140

原创 Redis-Lua脚本

local key = KEYS[1]if redis.call("get",key)+1 > tonumber(ARGV[1]) then return true;else return false;end初始化加载@PostConstruct public void init() { getRedisScript = new DefaultRedisScript<>(); getRedisScript.setResultType(

2020-11-25 17:59:43 166 1

原创 MybatisPlus-特殊用法整理

多层嵌套查询@Test public void test1(){ QueryWrapper<User> queryWrapper=new QueryWrapper<>(); queryWrapper.select(User.ID); String param="admin"; queryWrapper.eq(User.SEX, 0); queryWrapper.and(Objects.nonNu

2020-11-17 17:43:53 747

原创 MybatisPlus--基础用法

碰到前端设置时间为空,要求更新到数据,安装正常情况下,mybatis-plus只会更新不为空的数据,可以设置TableField注解的updateStrategy值为IGNORED,但是比较危险,所有使用这个pojo的位置都会受到影响,比如我现在只更新a字段,pojo中b字段则为null,那样的设置就会更新b。比较保守的方式如下: @PostMapping("/editTest") public Object editTest(@RequestBody InspectReviewPlanDO

2020-08-29 18:51:13 336

原创 Java--垃圾回收机制

垃圾回收算法思想引用计数复制拷贝标记清除标记整理主要的垃圾收集器Serial 串行只使用一个线程进行垃圾的回收。会暂停所有的用户线程。不适合服务器环境,类似于餐厅需要打扫垃圾,需要请客人出去,然后开始打扫垃圾。UserSerialGCParallel 并行多个垃圾收集线程并行的回收垃圾,用户线程是暂停的。适合允许中途暂停,适合弱交互的场景。性能比串行好。UserParall...

2020-08-09 10:39:27 460 1

原创 SpringBoot-写Starter

For/Join框架,案例摘自《Java并发编程的艺术》public class CountTask extends RecursiveTask&lt;Integer&gt; { /** * */ private static final long serialVersionUID = 1L; private static final int ...

2020-06-30 09:42:01 338

原创 JVM--异常情况

转自:http://blog.csdn.net/chaod5659/article/details/8250845 Java开发中主要用到的jar包介绍 commons-io.jar: 可以看成是java.io的扩展,用来帮助进行IO功能开发.它包含三个主要的领域:Utilityclasses-提供一些静态方法来完成公共任务.Filters-提供文件过滤器的各种实现.Streams-提供实用的

2020-05-17 17:36:10 679 1

原创 WEB--单点登录

1 同一域名下2 同父域下的单点登录摘自

2020-05-17 10:30:19 252

原创 Java--定位问题工具

1 with rollupSELECT name,password,count(*) from user GROUP BY name,password with rollup在统计分析的场景蛮有用。

2020-04-29 18:50:24 842 1

原创 数据库-ACID

选择要添加文档的架包-》右键properties 按照图片上的顺序选择架包对应的javasource的位置 选择成功后悬停在要查看的位置,按F1,出现如下: 就可以查看相关信息了。

2020-04-11 12:46:30 809 1

原创 计算机网络--Https

参考博客: http://blog.csdn.net/weipf/article/details/4049001?locationNum=9&fps=1 //int转String int a1=1; String b1=(new Integer(a1)).toString(); //String转Integer Strin

2020-04-09 23:27:48 492

原创 RabbitMQ--消费限流与重回队列机制

1 由wsdl2java工具根据服务端生成客户端部分代码。工具下载位置: http://cxf.apache.org/download.html,解压后将文件路径添加到环境变量,和jdk的安装差不多。 在服务端之外另外创建一个项目,进行如下操作: 生成部分客户端的操作如下: 生成代码如下: 参考:http://blog.java1234.com/blog/articles/52.h

2020-04-06 17:00:27 832

原创 RabbitMQ--消息投递确认与100%投递成功方案

1 Integer中的部分内容 2 表示的范围; 源码: /** * A constant holding the minimum value an {@code int} can * have, -2<sup>31</sup>. */ @Native public static final int MIN_VALUE = 0x80000000;

2020-04-05 19:13:33 384

原创 Redis-布隆过滤器

1 把不能支持的类型转化为能支持 服务端:@WebServicepublic interface HelloService { @XmlJavaTypeAdapter(MapAdapter.class) public Map<Integer, List<User>> getMap();}@WebServicepublic class HelloServiceImpl impl

2020-04-03 23:33:28 262

原创 Redis--常见问题及方案

1 在服务端添加拦截器:System.out.println("web Server Start"); HelloService helloService=new HelloServiceImpl(); String address="http://192.168.199.146:8080/helloWorld"; JaxWsServerFactory

2020-04-03 18:26:18 489 1

原创 Redis--集群

1 简单实现一个DEMO,由Tomcat容器启动,将服务层暴露出来,类似RestFul,另外一段通过Http请求。 1.1 Maven依赖<!-- 统一管理Spring的版本, spring.version为自定义的,其他的也可比如log.version --> <properties> <spring.version>4.3.10.RELEASE</spring.vers

2020-04-03 16:35:40 313

原创 Redis--哨兵模式

构建Restful接口提供给用户,需要鉴权,设计的解决方案如下:客户端测试代码:@RunWith(SpringRunner.class)@SpringBootTestpublic class TestController { private static final int userId=1; private static final String TOKEN = "123";...

2020-04-03 11:52:37 562

原创 Redis--慢查询

将CXF整合到Spring,通过拦截部分请求由CXF进行处理 1 在一个SSM项目POM.xml添加如下依赖:&lt;!-- Servlet支持 --&gt; &lt;dependency&gt; &lt;groupId&gt;javax.servlet&lt;/groupId&gt; &lt;artifactId&gt;j...

2020-04-01 16:16:35 480

原创 Redis--String和Hash

1 CXF是一个WebService框架。 HelloService.class@WebServicepublic interface HelloService { public String say(String str);}HelloServiceImpl.class@WebService public class HelloServiceImpl implements Hell

2020-03-30 22:20:16 386

原创 Redis--BitMap与HyperLogLog

1 GET请求数据映射 1.1 将url中的数据映射到形参中 /** * 测试PathParam注解 * @param userId * @return */ @GET @Path("/user/getUserInfoByPathParam/{userId}") public User getUserInfoByPathP...

2020-03-29 22:54:44 430

原创 Mysql--关于NULL

公司DBA强制字段设置not null,不明觉厉,看了一下网上的文章,整理如下创建表CREATE TABLE `test02` ( `id` int(11) NOT NULL AUTO_INCREMENT, `col1` varchar(255) NOT NULL, `col2` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), ...

2020-03-26 17:12:41 327

原创 方案设计--扫码登陆

扫描登陆实现方案弹屏

2020-02-27 11:12:57 543

原创 SpringBoot-RestFul鉴权解决方案

在提供API接口给客户时,需要对客户的每一次请求进行鉴权,特整理如下:SIG=MD5(SID+TOKEN+TIME)AUTH=BASE64(SID:TIME)URL=VERSION/ACOUNTS/SID/FUNCTIOM/OPERATION?sig=SIGhttp包头中添加字段Authorization,值为AUTH后台鉴权流程:1 解码AUTH-》当前时间与Auth中的时间进行...

2020-02-15 15:03:03 2417

原创 Java--引用

强引用创建一个对象,让一个引用变量指向该对象,该引用变量就是强引用,处于可达的状态,是不可能被垃圾回收期机制回收的,,如果一个对象没有被引用对象指向,可认为是可以被回收的。只要有引用变量指向,都不会回收。 @Test public void test01() { Object obj1=new Object(); Object obj2=obj1; obj1=null; //...

2020-02-12 12:05:43 201 1

原创 Java多线程--阻塞队列

如果队列满了,添加元素的线程将会陷入等待状态,而队列为空,获取元素的线程将会陷入等待。有了BlockingQueue,我们不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程。这一切都交给了BlockingQueue。...

2020-02-08 16:00:08 517

原创 设计--防重复提交与幂等性

参考:https://mp.weixin.qq.com/s/LxqbJLMxazFetn-q-v-N5w

2020-01-09 20:14:03 321

原创 Java--1.8Optional

class User { private String name; public User(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.na...

2020-01-02 20:30:58 180 1

原创 SpringBoot-日志收集与设置调用链requestid到日志中

log4j可以配置日志打印的格式、输出的位置,现在通过扩展,收集指定级别的日志,比如做日志监控什么的。log4j2.xml配置<configuration type="off" packages="com.test.config.LogAppender"> <Appenders> <Console name="ConsoleAppender...

2019-12-26 17:27:14 5526

原创 WEB-Session、Cookie个人理解

由于Http是无状态的请求,导致无法跟踪用户的一系列的请求,比如登陆后的执行的操作如何知道之前是否登录,无法标示当前登录者。这样就诞生了Cookie和Session。先说Cookie。Cookie是保存到浏览器端,设置过期时间则持久化到系统硬盘,没有设置过期时间则存储到系统内存中,当前窗口关闭,这cookie消失。和域名、请求相关联,这样就导致了Cookie在多个目录中共享的问题,即跨域请求问...

2019-12-22 23:23:26 239

SpringBoot-Dubbo.zip

SpringBoot与Dubbo的整合。入门级,代码整洁易懂,去掉了不相干的代码。

2019-06-12

Dubbo官网入门Demo.zip

Dubbo官网入门级demo,适合初学者,仅供参考。

2019-06-09

dubbo-test.zip

Dubbo入门级Demo,整合了SpringBoot,提供给有需要的人。

2019-05-13

WebSocket Netty实现

WebSocket采用netty实现,实现简单的消息发送,后台起定时任务,定时向一连接的通道推送消息。

2018-05-06

SpringBoot-Mybatis多数据源.

SpringBoot-Mybatis多数据源.SpringBoot-Mybatis多数据源.SpringBoot-Mybatis多数据源.

2018-01-20

Spring-Netty整合

Spring-Netty整合的案例,Spring-Netty整合的案例,Spring-Netty整合的案例,

2018-01-20

mina经典demo

Apache组织应用程序(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。mina经典demo,希望对后来人有所帮助

2017-09-30

mavenweb项目

mavenweb项目

2017-08-19

Spring2.5+Hibernate3整合

Spring2.5+Hibernate3整合,

2017-08-13

TreeMap的实现

TreeMap自己的理解

2017-05-11

C#桌面软件与单片机温度测控系统

C#桌面软件与单片机测控系统,代码注释都写得蛮详细,希望对后来人有所帮助

2017-05-08

SpringMVC——demo

SpringMVC——demo

2017-03-08

SpringMVC+Spring+Mybatis_final

SpringMVC+Spring+Mybatis整合,希望对后来者有所帮助。

2017-02-13

SpringMVC+Spring+Mybatis

SpringMVC+Spring+Mybatis整合,注释写的蛮详细,希望对后来者有所帮助。

2017-02-12

RabbitMQ传递对象

RabbitMQ传递对象

2017-02-12

空空如也

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

TA关注的人

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