<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[码海拾贝]]></title><description><![CDATA[记录工作中的点点滴滴]]></description><link>https://blog.youkuaiyun.com/java0506</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; java0506]]></copyright><item><title><![CDATA[Java stream流支持多字段排序]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/141004191</link><guid>https://blog.youkuaiyun.com/java0506/article/details/141004191</guid><author>java0506</author><pubDate>Thu, 08 Aug 2024 00:19:29 +0800</pubDate><description><![CDATA[对于排序而言,比较常见的场景是前端传递所需的排序字段名和排序方向,然后通过stream流或者数据库来实现排序.为动态接收参数,继承Map来支持多字段传入.另外stream流原生的sorted写起来相对比较繁琐,通过compartor方法封装构建多字段排序的逻辑.具体就是通过反射拿到对应字段的值,然后利用Compartor的comparing和thenComparing完成多字段排序.]]></description><category></category></item><item><title><![CDATA[Linux常用命令总结]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/140089288</link><guid>https://blog.youkuaiyun.com/java0506/article/details/140089288</guid><author>java0506</author><pubDate>Mon, 01 Jul 2024 01:24:05 +0800</pubDate><description><![CDATA[test.txt原文查询IP出现最多次数最多的前3名。]]></description><category></category></item><item><title><![CDATA[Kafka入门教程]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/129462503</link><guid>https://blog.youkuaiyun.com/java0506/article/details/129462503</guid><author>java0506</author><pubDate>Sat, 11 Mar 2023 16:14:02 +0800</pubDate><description><![CDATA[Kafka常用的API可以分为5类,包括admin,producer,consumer,stream,connect。]]></description><category></category></item><item><title><![CDATA[达到阈值自动执行的工具类]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/128334297</link><guid>https://blog.youkuaiyun.com/java0506/article/details/128334297</guid><author>java0506</author><pubDate>Thu, 15 Dec 2022 19:32:50 +0800</pubDate><description><![CDATA[简单工具类,让代码不一样]]></description><category></category></item><item><title><![CDATA[MongoTemplate查询工具类,大家都来试试吧]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/126219063</link><guid>https://blog.youkuaiyun.com/java0506/article/details/126219063</guid><author>java0506</author><pubDate>Sun, 07 Aug 2022 23:25:42 +0800</pubDate><description><![CDATA[MongoTemplate查询构建工具类,减少模板代码的编写]]></description><category></category></item><item><title><![CDATA[百万数据导出Excel工具类,欢迎指正]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/125631461</link><guid>https://blog.youkuaiyun.com/java0506/article/details/125631461</guid><author>java0506</author><pubDate>Wed, 06 Jul 2022 03:14:01 +0800</pubDate><description><![CDATA[生成100w行数据的Excel,大约耗时9.3s(包含生成100w个对象的时间).]]></description><category></category></item><item><title><![CDATA[数据结构:队列之循环队列]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/124791778</link><guid>https://blog.youkuaiyun.com/java0506/article/details/124791778</guid><author>java0506</author><pubDate>Mon, 16 May 2022 01:20:22 +0800</pubDate><description><![CDATA[背景
循环队列出队和入队的均摊复杂度均为O(1)级别,性能比普通队列更高
普通队列的入队复杂度为O(1),但出队复杂度为O(n),因为当出队时,后面的数组有个前移一位的过程.
实现原理
语言描述
实现原理其实也比较简单,就是数组维护队首front和队尾tail索引.当出队时,无需移动数据位置.当入队时,到达数组底部后,通过取余回到数组前端.索引类似在一个数组环上移动,这也是循环一名的由来.
当front和tail相同时,即代表队列为空.当tail的下一个为front时,即代表队列已满,需要扩容.

代码实现]]></description><category></category></item><item><title><![CDATA[Jackson反序列化问题: java.util.LinkedHashMap cannot be cast to xx]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/123196387</link><guid>https://blog.youkuaiyun.com/java0506/article/details/123196387</guid><author>java0506</author><pubDate>Tue, 01 Mar 2022 01:37:38 +0800</pubDate><description><![CDATA[转化对象带泛型时,必须使用 new TypeReference进行包装

正确写法

正确写法
	@RequestMapping("test2")
	public String test2() throws JsonProcessingException {
		ObjectMapper objectMapper = new ObjectMapper();
		Result&lt;Result&lt;User&gt;&gt; result = objectMapper.readValue("{\n" +
	]]></description><category></category></item><item><title><![CDATA[[2021]年度反思总结]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/122904786</link><guid>https://blog.youkuaiyun.com/java0506/article/details/122904786</guid><author>java0506</author><pubDate>Sun, 13 Feb 2022 01:49:15 +0800</pubDate><description><![CDATA[年度总结
值得表扬的点

1 技术栈大大丰富


activiti工作流引擎
mongo db数据库
redis各种数据结构深入使用
shiro权限控制框架
spring security框架
xxl job定时框架
quartz定时框架
dubbo
sharding-jdbc
CDN
OSS


2 熟悉了各种设计模式


观察者模式
适配器模式
策略模式
模板模式
代理模式
工厂模式
单例模式
原型模式
建造者模式


3 接触了多种语言


python: 学习了pyqt的使用,flask框架简单应用]]></description><category></category></item><item><title><![CDATA[VS code配置Elint自动格式化插件prettier踩坑记录]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/122711437</link><guid>https://blog.youkuaiyun.com/java0506/article/details/122711437</guid><author>java0506</author><pubDate>Thu, 27 Jan 2022 01:52:02 +0800</pubDate><description><![CDATA[根目录新增.prettierrc.js
搜索扩展 Prettier - Code formatter并安装
module.exports = {
    singleQuote: true, // 使用单引号
    printWidth: 200, // 超过最大值换行
    htmlWhitespaceSensitivity: 'ignore',
    semi: false, // 结尾不用分号
}

自动格式化
Shift+Ctrl+P 搜索settings.json,然后添加如下内容
{
  ]]></description><category></category></item><item><title><![CDATA[Centos7版本不能联网]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/122248591</link><guid>https://blog.youkuaiyun.com/java0506/article/details/122248591</guid><author>java0506</author><pubDate>Fri, 31 Dec 2021 02:28:27 +0800</pubDate><description><![CDATA[cd /etc/sysconfig/network-scripts/
编辑ifcfg-ens33文件的最后一行，将ONBOOT=no改为ONBOOT=yes
service network restart

]]></description><category></category></item><item><title><![CDATA[git新手教程,本地新增项目并上传至码云指定仓库]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/120620755</link><guid>https://blog.youkuaiyun.com/java0506/article/details/120620755</guid><author>java0506</author><pubDate>Wed, 06 Oct 2021 03:39:12 +0800</pubDate><description><![CDATA[1. 码云操作

点击新建远程仓库



填写仓库必须信息,注意不要勾选下面的选项

熟练git操作之后，勾选了也没有关系,可以解决冲突或者强制推送.新手的话，最好不要勾选.


仓库简介,里面包含了下一步的命令

其实官方已经写的很详细了，我这里只是截图示范一下

2. 本地操作
如上所述，官方给的命令已经比较完整.
下面给个实操的命令截图，当看到git status的结果为Your branch is up to date with 'origin/master'.说明本地仓库已经和远程仓库同步了,即操]]></description><category></category></item><item><title><![CDATA[Java构建树形菜单工具类,递归写法]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/120620616</link><guid>https://blog.youkuaiyun.com/java0506/article/details/120620616</guid><author>java0506</author><pubDate>Wed, 06 Oct 2021 01:48:12 +0800</pubDate><description><![CDATA[树形菜单构建工具类(递归写法)
1. 工具类源码
模型定义,这里受Spring Security的UserService启发,给model设置接口.想要使用此工具类的话，实现此接口即可.
package xyz.yq56.easytool.abs;

import java.util.List;

/**
 * @author yi qiang
 * @date 2021/10/5 14:35
 */
public interface TreeNode {

    /**
     * 获取id
    ]]></description><category></category></item><item><title><![CDATA[关于Springboot中跨域问题的解决(Response to preflight request doesn‘t pass access control check)]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/120620447</link><guid>https://blog.youkuaiyun.com/java0506/article/details/120620447</guid><author>java0506</author><pubDate>Wed, 06 Oct 2021 01:21:06 +0800</pubDate><description><![CDATA[Springboot中跨域问题的解决
等不及的小伙伴，直接跳到结论部分即可，谢谢!!!
1. 背景
1.1 使用技术栈

Spring Security
Springboot
Vue.axios
Jwt

1.2 关键代码

Spring Security实现了JWT验证

配置类相关代码
package xyz.yq56.sm.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springf]]></description><category></category></item><item><title><![CDATA[代码编写过程中常遇到的坑，看完总会有所收获的]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/119364388</link><guid>https://blog.youkuaiyun.com/java0506/article/details/119364388</guid><author>java0506</author><pubDate>Wed, 04 Aug 2021 01:46:39 +0800</pubDate><description><![CDATA[1 最常见的空指针异常
1.1 初始化了空对象，但后来被篡改成了null

public void test(c){
	//此处初始化了user对象
	User user=new User();
	
	//可能获取了null值，导致后续使用报空指针异常
	user=userService.getById(userId);
	
	//特别注意，此处依然可能报空指针异常
	user.getName();
}

1.2 连续多次获取属性
public void test(String userId){
	User]]></description><category></category></item><item><title><![CDATA[利用JDK工具编写监听者模式代码]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/117971299</link><guid>https://blog.youkuaiyun.com/java0506/article/details/117971299</guid><author>java0506</author><pubDate>Thu, 17 Jun 2021 01:16:09 +0800</pubDate><description><![CDATA[本文主要是利用java.util包里面的Observable和Observer来编写监听者模式的代码，仅仅是为了练手而已.
以新华网发布新闻，然后新浪和百度作为监听者跟随播报新闻为例，
下面贴一下代码和类图
1 代码示例
1.1 Subject：被监听者
只要继承Observable即可，无需其他操作
package observer.practice_02;

import java.util.Observable;

/**
 * @author yi qiang
 * @date 2021/6/17 ]]></description><category></category></item><item><title><![CDATA[Integer源码解析]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/117968819</link><guid>https://blog.youkuaiyun.com/java0506/article/details/117968819</guid><author>java0506</author><pubDate>Wed, 16 Jun 2021 22:52:08 +0800</pubDate><description><![CDATA[1. 示例代码
接下来，以一段代码来解释Integer的装箱与拆箱
public class IntegerTest {
    public static void main(String[] args) {
		//装箱
        Integer obj=1;
		//拆箱
        int result=obj*2;

		//不在-128~127之间，结果为false
        Integer a=200;
        Integer b=200;
        System]]></description><category></category></item><item><title><![CDATA[面试实录: 6月份中级Java开发面试题]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/117828556</link><guid>https://blog.youkuaiyun.com/java0506/article/details/117828556</guid><author>java0506</author><pubDate>Sat, 12 Jun 2021 08:50:51 +0800</pubDate><description><![CDATA[0. 前言
以下面试题全为实际遇到的面试题，坐标广州，定位中级Java开发，匹配薪资在12K~14K.各位小伙伴可以看看自己的水平如何，是否可以拿稳这个薪资.
1. Java 基础
虽然是基础，但是平时一直在面向框架编程，基础也不一定记得那么牢靠，面试前也好好复习一下吧.

Java有几种基本数据类型，各占多少个字节，其取值范围如何?
JDBC连接过程?
谈谈你对Java集合类的理解，常用的有哪些？
谈谈HashMap底层原理？为什么用红黑树？
谈谈ConcurrentHashMap底层原理，靠什么保证线程]]></description><category></category></item><item><title><![CDATA[Lniux校正时间]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/117112009</link><guid>https://blog.youkuaiyun.com/java0506/article/details/117112009</guid><author>java0506</author><pubDate>Fri, 21 May 2021 10:46:44 +0800</pubDate><description><![CDATA[Debian系统安装NTP校时包：apt-get install ntpdate
CentOS系统安装NTP校时包： yum install ntp
校时命令： ntpdate cn.pool.ntp.org
定时校正00 12 * * * /sbin/ntpdate cn.pool.ntp.org

]]></description><category></category></item><item><title><![CDATA[设计模式概述（复习）--持续更新]]></title><link>https://blog.youkuaiyun.com/java0506/article/details/116333277</link><guid>https://blog.youkuaiyun.com/java0506/article/details/116333277</guid><author>java0506</author><pubDate>Mon, 03 May 2021 01:28:24 +0800</pubDate><description><![CDATA[1 设计模式7大原则
1.1 单一职责原则
1.1.1 含义

降低类的复杂度，一个类只负责一项职责
降低代码更改的影响
提供可读性、可维护性
通常都需要遵守单一职责原则，逻辑足够简单才可以违反；只有类中方法比较少，可以在方法级别遵守单一职责原则

1.2 开闭原则
1.3 迪米特原则
1.4 接口隔离原则

客户端不应该依赖它不需要的接口，即一个类对另一个类的依赖应该建立在最小的接口上.
示例：如果C依赖1~3方法，而A依赖1、4、5方法，那么依赖关系应该从图1改为图2



1.5 依赖转置原则

高层]]></description><category></category></item></channel></rss>