<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[WANXT1024的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/WANXT1024</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; WANXT1024]]></copyright><item><title><![CDATA[Slf4j 包冲突问题原因与解决]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/113445891</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/113445891</guid><author>WANXT1024</author><pubDate>Sat, 30 Jan 2021 20:26:00 +0800</pubDate><description><![CDATA[一、前言
在进行 Java 开发时，通常我们会选择 Slf4j 作为日志门面，但日志实现却不尽相同。如果系统运行中同时存在多个日志实现，就会出现类似下图的 Warning。

二、问题原因
我们知道 SpringBoot 默认使用的日志实现是 Logback，因此我们尝试在项目中引入 Log4j 的依赖时，就复现了上图的报错。
&lt;dependency&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;org.springframework.boot&lt;/grou]]></description><category></category></item><item><title><![CDATA[硬核！「金三银四」Java 高级面试题之Java基础（附答案详解）]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/112209206</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/112209206</guid><author>WANXT1024</author><pubDate>Mon, 04 Jan 2021 22:27:48 +0800</pubDate><description><![CDATA[前言
好久没更新了，我裂开来，一直在忙新项目的事情，唉！ 陆陆续续也没啥时候写东西了，刚过完元旦，才有了休息时间给大家做做分享。  这个2020，程序员实在是太难了。
眼瞅着马上又要过年了，口袋里的钱是一天比一天少，谁谁谁摆满月酒，哪家邻居的二儿子要结婚了，大堂姐又要办乔迁宴了…  一大堆的人情往来，但是你又莫得办法，这个年可能过得会有些寒冷！！！
过完年就是金三银四了，各位兄弟姐妹、英雄好汉们，我可能会换工作了，不知道你们都准备好了没有。
本篇献给所有准备在金三银四找工作的你们！！！
1. JAVA 中面]]></description><category></category></item><item><title><![CDATA[每日一问：你想如何破坏单例模式？]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/111827450</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/111827450</guid><author>WANXT1024</author><pubDate>Sun, 27 Dec 2020 22:28:56 +0800</pubDate><description><![CDATA[##前言
1.单例是什么？
单例模式：是一种创建型设计模式，目的是保证全局一个类只有一个实例对象，分为懒汉式和饿汉式。所谓懒汉式，类似于懒加载，需要的时候才会触发初始化实例对象。而饿汉式正好相反，项目启动，类加载的时候，就会创建初始化单例对象。
1.1 优点
如果只有一个实例，那么就可以少占用系统资源，节省内存，访问也会相对较快。比较灵活。
1.2 缺点
不能使用在变化的对象上，特别是不同请求会造成不同属性的对象。由于Spring本身默认实例就是单例的，所以使用的时候需要判断应用场景，要不会造成张冠李戴的现]]></description><category></category></item><item><title><![CDATA[数据量大怎么搞？当然是用这个了！]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/111657726</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/111657726</guid><author>WANXT1024</author><pubDate>Thu, 24 Dec 2020 22:27:37 +0800</pubDate><description><![CDATA[前言
最近项目中不少表的数据量越来越大，并且导致了一些数据库的性能问题。因此想借助一些分库分表的中间件，实现自动化分库分表实现。调研下来，发现Sharding-JDBC目前成熟度最高并且应用最广的Java分库分表的客户端组件。
本文主要介绍一些Sharding-JDBC核心概念以及生产环境下的实战指南，旨在帮助组内成员快速了解Sharding-JDBC并且能够快速将其使用起来。

Sharding-JDBC官方文档：https://shardingsphere.apache.org/document/cur]]></description><category></category></item><item><title><![CDATA[厉害了，推荐一款可以识别身份证号码的java系统]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/111411743</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/111411743</guid><author>WANXT1024</author><pubDate>Sat, 19 Dec 2020 22:49:43 +0800</pubDate><description><![CDATA[##前言
大家好，我是阿博，最近发现一个有趣的项目。
这个项目是通过学习https://gitee.com/nbsl/idCardCv 后整合 tess4j,不需要经过训练直接使用的，当然，你也可以进行训练后进行使用。
该项目修改原有的需要安装 opencv 的过程，全部使用 javaccp 技术重构,通过 javaccp 引入需要的 c++ 库进行开发。
不需要安装 opencv 新增的了前端控制识别区域的功能，新增了后端识别后验证 ，页面样式主要适应 paid。
重新修改了后面的识别过程，用户 open]]></description><category></category></item><item><title><![CDATA[《Java编程思想》读后总结（二）]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/111321445</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/111321445</guid><author>WANXT1024</author><pubDate>Thu, 17 Dec 2020 18:21:28 +0800</pubDate><description><![CDATA[Java里的数据类型
Java里的对象是引用，就像C的指针。对引用的赋值实际就是对指针的赋值，对象本身并没有被赋值。
对象的存储

寄存器-程序无法感知寄存器的存在。通过CPU对寄存器操作。
堆栈-存放对象引用
堆-存放对象
常量存储-存不变常量
非RAM存储-存持久化数据

基本数据类型：




基本类型
大小
最小值
最大值
包装器类型




boolean
-
-
-
Boolean


char
16bit
Unicode 0
Unicode 2e16-1
Character


byte
8b]]></description><category></category></item><item><title><![CDATA[《Java编程思想》读后总结（一）]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/111301103</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/111301103</guid><author>WANXT1024</author><pubDate>Wed, 16 Dec 2020 19:38:57 +0800</pubDate><description><![CDATA[前言
《Java编程思想》这本书，陆陆续续读了1年，终于基本都浏览了一遍。通过这本书，试图理解作者的想法，才真的体会到Java思想。感谢本书的作者，不仅讲述了java的语法，更重要的是向读者剖析了Java的设计思想，以及他自己对Java的理解。为了加深对java知识点及思想的理解，也为了让这些思想成为自己编程过程中的习惯，通过整理笔记的方式来总结梳理本书重点内容，也希望通过我的整理帮助到其他对Java有兴趣的同学。
在读本书之前，我是一个python程序员，python也具备OOP体系，但相较于Java，O]]></description><category></category></item><item><title><![CDATA[带你一文详解Springboot个人博客搭建]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/111083900</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/111083900</guid><author>WANXT1024</author><pubDate>Sat, 12 Dec 2020 19:31:04 +0800</pubDate><description><![CDATA[##前言
很久没更新源码了，最近也一直在忙，所以今天就给大家带来一个关于Springboot的源码。
Springboot开发的目的是简化Spring应用，其中内嵌了Tomcat、Jetty等Servle的容器，不需要进行Xml的配置，开发十分的方便。
项目介绍：
通过从零开始搭建整个项目，了解整个开发流程，如何设计，如何实现，一步步发现，一步步解决。系统的运用SpringBoot与它集成的各种框架，对于学习了SpringBoot却没有实际运用的人是一个很好的练手项目。
本项目的技术及框架：


项目构建：]]></description><category></category></item><item><title><![CDATA[从 0 学习 Spring 缓存数据]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/111051727</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/111051727</guid><author>WANXT1024</author><pubDate>Fri, 11 Dec 2020 19:08:29 +0800</pubDate><description><![CDATA[前言
昨天在开发业务时，打算加入缓存层来提高系统响应速度。查找了一些资料，发现 Spring 的缓存功能十分强大！只需要添加少量的代码，就可以轻松缓存方法所返回的对象。这篇文章通过描述一个实际使用例子，介绍 Spring Cache 的使用限制以及注意事项。
环境准备

Redis 5+
JDK 1.8+
Gradle 6+
一款你喜爱的 IDE

实践过程
添加依赖
打开 build.gradle 文件，添加 Spring Cache 依赖。
implementation 'org.springframe]]></description><category></category></item><item><title><![CDATA[年关将至，Java岗求职该如何应对春招？你要的答案都在这了]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/110881481</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/110881481</guid><author>WANXT1024</author><pubDate>Tue, 08 Dec 2020 20:50:11 +0800</pubDate><description><![CDATA[前言
不知不觉又到年底了！ 整个2020终于也走到了终点，年初的疫情紧张，造成的一系列影响我相信大家都还历历在目，尤其是工作这块更是如此，找工作的紧迫度，导致很大部分人群在今年的工作发展可能并没有想象中的那样迅速。
作为一名在职的开发者，今年对于我影响也不小，当时谈好的新岗位、薪资待遇，因为年初的原因导致不了了之，甚至还因此在家办公了两月之久，回到公司上班已经是五月份了，金三银四更是不用谈，随之而来还是伴有失业风险的过渡！
我相信，这种强烈的危机感伴随而来的就是现实的重锤！！！

我不知道大家有没有被重锤过]]></description><category></category></item><item><title><![CDATA[MySQL索引怎么用？秒懂只需四个点！]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/110819988</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/110819988</guid><author>WANXT1024</author><pubDate>Mon, 07 Dec 2020 15:46:21 +0800</pubDate><description><![CDATA[一、前言
在MySQL中进行SQL优化的时候，经常会在一些情况下，对MySQL能否利用索引有一些迷惑。
譬如:
1.MySQL 在遇到范围查询条件的时候就停止匹配了，那么到底是哪些范围条件？
2.MySQL 在LIKE进行模糊匹配的时候又是如何利用索引的呢？
3.MySQL 到底在怎么样的情况下能够利用索引进行排序？
今天，我将会用一个模型，把这些问题都一一解答，让你对MySQL索引的使用不再畏惧
二、知识补充
key_len
EXPLAIN执行计划中有一列 key_len 用于表示本次查询中，所选择的索引]]></description><category></category></item><item><title><![CDATA[Java 程序员如何使用 Shiro 框架]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/107233957</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/107233957</guid><author>WANXT1024</author><pubDate>Thu, 09 Jul 2020 17:36:55 +0800</pubDate><description><![CDATA[##前言
一、架构
要学习如何使用Shiro必须先从它的架构谈起，作为一款安全框架Shiro的设计相当精妙。Shiro的应用不依赖任何容器，它也可以在JavaSE下使用。但是最常用的环境还是JavaEE。下面以用户登录为例：

1、使用用户的登录信息创建令牌
UsernamePasswordToken token =&nbsp;new&nbsp;UsernamePasswordToken(username, password);

token可以理解为用户令牌，登录的过程被抽象为Shiro验证令牌是否具有合]]></description><category></category></item><item><title><![CDATA[Java集合框架-概述]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/107211719</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/107211719</guid><author>WANXT1024</author><pubDate>Wed, 08 Jul 2020 17:59:40 +0800</pubDate><description><![CDATA[Java 集合框架
学习目标

会使用集合存储数据
遍历集合，取出数据
掌握每种集合的特性

学习方法

学习顶层！通过顶层接口/抽象类的共性方法，所有子类都可以使用
使用底层！顶层无法创建对象，需要使用具体的实现类创建对象

框架图

第一章 Collction集合
一种工具，放在java.util包中
单列集合的最顶层接口，定义了所有单列集合的共性方法




方法
描述




boolean add(E e)
把给定的对象添加到当前集合中


boolean isEmpty()
如果此集合不包含元素]]></description><category></category></item><item><title><![CDATA[减少Docker和Kubernetes中的JVM内存占用]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/107185264</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/107185264</guid><author>WANXT1024</author><pubDate>Tue, 07 Jul 2020 16:57:48 +0800</pubDate><description><![CDATA[##前言
本文记录了如何在&nbsp;Kubernetes[1]&nbsp;上减小&nbsp;JVM 应用容器占用的内存：哪些 JVM 标记更重要，如何正确设置以及如何测量参数对应用内存占用的影响。故事从一个工作中的问题开始。笔者为 Wix[2]&nbsp;工作，作为数据流团队的一员负责所有的 Kafka[3]&nbsp;基础设施。最近安排的任务是为 Node.js[4]&nbsp;服务建立一个 Kafka 客户端代理。
0&nbsp;问题：Kafka 客户端 sidecar 内存泄漏
笔者的想法是将所有与]]></description><category></category></item><item><title><![CDATA[IDEA 中 MyBatis还可以这么玩！！！]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/107090551</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/107090551</guid><author>WANXT1024</author><pubDate>Thu, 02 Jul 2020 18:23:22 +0800</pubDate><description><![CDATA[##前言


1. 搭建 MyBatis Generator 插件环境


a. 添加插件依赖 pom.xml


b. 配置文件 generatorConfig.xml


c. 数据库配置文件 jdbc.properties


d. 配置插件启动项


2.项目实战


a. 比如在一个项目 我们要删除某个小组下某个用户的信息


b. 根据小组ID（非主键 更新小组信息）


c. 各种查询



IDEA 逆向 MyBatis 工程时，不像支持 Hibernate 那样有自带插件，需要集成第三方的]]></description><category></category></item><item><title><![CDATA[架构设计：分布式服务，库表拆分模式详解]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/107068748</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/107068748</guid><author>WANXT1024</author><pubDate>Wed, 01 Jul 2020 17:45:12 +0800</pubDate><description><![CDATA[一、服务间隔离
1、分布式结构
分布式系统架构的明显特点，就是按照业务系统的功能，拆分成各种服务，每个服务下面都有自己独立的数据库，以此降低业务间的耦合度，隔离不同的数据库保证系统最大的稳定性等。

例如上图是电商系统中经典的业务场景，订单-仓储-物流的服务模式，不同服务提供不同的应用场景，服务间存在通信机制，以此实现服务的高可用。
2、隔离思想
分布式的架构体系中，涉及一个根本思想逻辑：隔离；
服务和数据库根据业务拆分，进而隔离开来，整个架构中某个服务挂掉，不会影响其他的服务继续执行。例如上述1中：如果物]]></description><category></category></item><item><title><![CDATA[一文细读策略模式、策略模式与Spring的碰撞]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/107047404</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/107047404</guid><author>WANXT1024</author><pubDate>Tue, 30 Jun 2020 17:54:17 +0800</pubDate><description><![CDATA[##前言
策略模式是GoF23种设计模式中比较简单的了，也是常用的设计模式之一，今天我们就来看看策略模式。
实际案例
我工作第三年的时候，重构旅游路线的机票查询模块，旅游路线分为四种情况：

如果A地-B地往返都可以直达，那么查询两张机票（往返）
如果A地-B地去程无法直达，需要中转，但是返程可以直达，那么查询三张机票（去程两张，返程一张）
如果A地-B地去程可以直达，但是返程需要中转，那么查询三张机票（去程一张，返程两张）
如果A地-B地往返都无法直达，那么查询四张机票（去程两张，返程两张）

在我重构前]]></description><category></category></item><item><title><![CDATA[重磅出击：IntelliJ IDEA 2020.2 EAP 5 发布，Java 15 支持]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/107022794</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/107022794</guid><author>WANXT1024</author><pubDate>Mon, 29 Jun 2020 16:24:19 +0800</pubDate><description><![CDATA[IntelliJ IDEA 2020.2 EAP5&nbsp;现已[发布]新版本的主要亮点内容如下：

Java 15 支持
Related problems
Intentions preview
Java intention actions&nbsp;改进
结构搜索和替换检查
在 build.gradle 文件中对 completion&nbsp;和&nbsp;navigation&nbsp;的改进

##&nbsp;Java 15&nbsp;支持
即将发布的 IntelliJ IDEA 2020.2 版]]></description><category></category></item><item><title><![CDATA[一文带你了解并发 HashMap 的一种简单实现]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/106999897</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/106999897</guid><author>WANXT1024</author><pubDate>Sun, 28 Jun 2020 15:25:19 +0800</pubDate><description><![CDATA[##前言

java.util.concurrent.ConcurrentHashMap,
java.util.concurrent.ConcurrentHashMap 虽然效果不错，但其实现相当复杂。在开发一款工具的过程中，由于无法使用 java.util.concurrent.ConcurrentHashMap (工具的目标之一就是跟踪 ConcurrentHashMap 内部实现)&nbsp;因此笔者决定自己实现一个 “乞丐版” computeIfAbsent 方法。这样一个简单可扩展的 Concur]]></description><category></category></item><item><title><![CDATA[程序员，IntelliJ IDEA的这些调试技巧，你用过多少？]]></title><link>https://blog.youkuaiyun.com/WANXT1024/article/details/106928238</link><guid>https://blog.youkuaiyun.com/WANXT1024/article/details/106928238</guid><author>WANXT1024</author><pubDate>Tue, 23 Jun 2020 17:39:59 +0800</pubDate><description><![CDATA[##前言
今天来给大家分享一下 IntelliJ IDEA 的骚操作调试技巧，关键具体有多骚，大家可以来对比下，不过确实要比 Eclipse 强太多了！
####一、条件断点
循环中经常用到这个技巧，比如：遍历1个大[List]的过程中，想让断点停在某个特定值。

参考上图，在断点的位置，右击断点旁边的小红点，会出来一个界面，在Condition这里填入断点条件即可，这样调试时，就会自动停在i=10的位置

二、回到"上一步"
该技巧最适合特别复杂的方法套方法的场景，好不容易跑起来，一不小心手一抖，断点过去]]></description><category></category></item></channel></rss>