<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hanlin]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/javaee520</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; javaee520]]></copyright><item><title><![CDATA[基于Redis分布式锁（一）]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/126938396</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/126938396</guid><author>javaee520</author><pubDate>Thu, 22 Sep 2022 17:30:06 +0800</pubDate><description><![CDATA[redis分布式锁使用]]></description><category></category></item><item><title><![CDATA[Linux日志排查方法]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/126883311</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/126883311</guid><author>javaee520</author><pubDate>Fri, 16 Sep 2022 08:44:26 +0800</pubDate><description><![CDATA[Linux日志排查方法。]]></description><category></category></item><item><title><![CDATA[PostgreSQL主键自增]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/126586970</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/126586970</guid><author>javaee520</author><pubDate>Wed, 31 Aug 2022 10:08:04 +0800</pubDate><description><![CDATA[PostgreSQL主键自增]]></description><category></category></item><item><title><![CDATA[ElasticSearch基本使用]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/120906421</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/120906421</guid><author>javaee520</author><pubDate>Fri, 22 Oct 2021 15:52:05 +0800</pubDate><description><![CDATA[创建索引
# 创建名为shopping的索引名称
PUT http://127.0.0.1:9200/shopping


响应


查看索引
# 查看名为shopping的索引
GET http://127.0.0.1:9200/shopping


响应


查看所有索引
GET http://127.0.0.1:9200/_cat/indices?v


响应


删除索引
# 删除名为shopping的索引
DELETE http://127.0.0.1:9200/shopping


响应


创]]></description><category></category></item><item><title><![CDATA[JSP中使用EL表达式不生效]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/120824642</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/120824642</guid><author>javaee520</author><pubDate>Mon, 18 Oct 2021 13:33:32 +0800</pubDate><description><![CDATA[问题

在Servlet设置了name属性和list集合 但是在页面中却原样显示了（EL表达式失效）


页面代码

页面原样显示

原因

EL表达式只有在Servlet2.4/JSP2.0版本下才会生效，如果在别的版本使用需要在JSP头文件加上

&lt;%@ page isELIgnored="false"%&gt;



...]]></description><category></category></item><item><title><![CDATA[二叉树广度优先搜索（BFS）- Java]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/120642799</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/120642799</guid><author>javaee520</author><pubDate>Thu, 07 Oct 2021 22:18:37 +0800</pubDate><description><![CDATA[/**
 * 广度优先搜索
 */
public class BFDMain {

    public static void main(String[] args) {

        TreeNode n11 = new TreeNode(11);
        TreeNode n10 = new TreeNode(10);
        TreeNode n9 = new TreeNode(9);
        TreeNode n8 = new TreeNode(8);
        ]]></description><category></category></item><item><title><![CDATA[二叉树深度优先搜索（DFS）- Java]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/120642661</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/120642661</guid><author>javaee520</author><pubDate>Thu, 07 Oct 2021 22:17:29 +0800</pubDate><description><![CDATA[public class DFSMain {

    public static void main(String[] args) {
		// 创建二叉树
        TreeNode n11 = new TreeNode(11);
        TreeNode n10 = new TreeNode(10);
        TreeNode n9 = new TreeNode(9);
        TreeNode n8 = new TreeNode(8);
        TreeNode]]></description><category></category></item><item><title><![CDATA[JUC高并发编程]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/118857203</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/118857203</guid><author>javaee520</author><pubDate>Tue, 05 Oct 2021 23:21:58 +0800</pubDate><description><![CDATA[JUC概述
1.1 JUC简介

java.util.concurrent包名的简写,是关于并发编程的API
与JUC相关的有三个包：java.util.concurrent、java.util.concurrent.atomic、java.util.concurrent.locks

1.2 进程和线程

进程：系统中一个正在运行的应用程序；一个程序就是一个进程；进程操作系统资源分配的最小单位
线程：系统分配处理器时间资源的基本单位；进程之内独立执行的一个单元执行流。线程是程序执行的最小单位

1.3 线]]></description><category></category></item><item><title><![CDATA[MySQL基础笔记（一）]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/119997775</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/119997775</guid><author>javaee520</author><pubDate>Mon, 30 Aug 2021 15:56:00 +0800</pubDate><description><![CDATA[入门
MySQL服务启动和停止
# 启动服务
net start &lt;服务名&gt; 

# 停止服务
net stop &lt;服务名&gt;


连接MySQL
# 携带地址端口连接
mysql -h localhost -P 3306 -u root -p *****

# 本机连接
mysql -u root -p *****

# 退出
exit
或者 ctrl + c

MySQL基本命令
# 列出所有数据库
show databases;

# 打开数据库
use 数据库名;

# 列出数]]></description><category></category></item><item><title><![CDATA[前端Long类型精度丢失]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/118416894</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/118416894</guid><author>javaee520</author><pubDate>Fri, 02 Jul 2021 15:36:45 +0800</pubDate><description><![CDATA[描述

在后台返回的Long类型的id为长整型：1400467439103381504，但是在前端接收参数造成末尾精度丢失：1400467439103381500

解决

在实体类字段上添加注解

@JsonFormat(shape = JsonFormat.Shape.STRING)



]]></description><category></category></item><item><title><![CDATA[SpringCloud - Token校验失效]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/117900459</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/117900459</guid><author>javaee520</author><pubDate>Mon, 14 Jun 2021 12:10:31 +0800</pubDate><description><![CDATA[问题描述

在微服务工程中，JwtToken作为common工程下的公共模块，同时被goods8011和ucenter8081服务调用，
在使用ucenter模块登陆后生成的token可以在ucenter模块校验成功，但是goods模块校验token失败


无法校验token

使用生成的token在ucenter模块中是可以校验并成功解析

但是在goods模块中无法解析token


解决
原因


在JwtToken生成的工具类中加密/解密密钥使用了UUID，在两个模块校验token的时候使用的是两]]></description><category></category></item><item><title><![CDATA[com.netflix.client.ClientException: Load balancer does not have available server for client: XXX-XXX]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/117900427</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/117900427</guid><author>javaee520</author><pubDate>Mon, 14 Jun 2021 12:09:52 +0800</pubDate><description><![CDATA[问题描述

再order服务中调用goods的服务（order远程调用）
使用nacos作为注册中心和配置中心，再使用openfeign作为远程调用


消费者：server-fish-order
生产者：server-fish-goods

报错：java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client: SERVER-FIS]]></description><category></category></item><item><title><![CDATA[MybatisPlus - updateTime自动填充失败]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/117900411</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/117900411</guid><author>javaee520</author><pubDate>Mon, 14 Jun 2021 12:08:56 +0800</pubDate><description><![CDATA[@TableFIled

在字段上使用注解@TableFIled

public class User {
    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone]]></description><category></category></item><item><title><![CDATA[JDK8 - LocalDateTime（反）序列化异常]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/117900388</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/117900388</guid><author>javaee520</author><pubDate>Mon, 14 Jun 2021 12:08:11 +0800</pubDate><description><![CDATA[异常信息
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime` from String "2021-05-25 11:02:00": Failed to deserialize java.time.LocalDateTime: (java.time.format.DateTi]]></description><category></category></item><item><title><![CDATA[SpringBoot Json不返回NULL]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/117900370</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/117900370</guid><author>javaee520</author><pubDate>Mon, 14 Jun 2021 12:07:35 +0800</pubDate><description><![CDATA[配置springboot中返回的json不包含null的属性值
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import]]></description><category></category></item><item><title><![CDATA[com.fasterxml.jackson.core.JsonParseException]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/117900355</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/117900355</guid><author>javaee520</author><pubDate>Mon, 14 Jun 2021 12:07:05 +0800</pubDate><description><![CDATA[完整异常信息

com.fasterxml.jackson.core.JsonParseException: Unrecognized token ‘provider’: was expecting (JSON String, Number, Array, Object or token ‘null’, ‘true’ or ‘false’)
at [Source: (PushbackInputStream); line: 1, column: 10]

2021-05-20 10:05:06.245 ERR]]></description><category></category></item><item><title><![CDATA[牛客网 - 模拟笔试.天弃之子]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/117900340</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/117900340</guid><author>javaee520</author><pubDate>Mon, 14 Jun 2021 12:06:31 +0800</pubDate><description><![CDATA[题目

有一款游戏，过关的方式是按按钮。
游戏一共有n关，每一关有a[i]个按钮，其中只有唯一一个按钮是可以通关的，按下其他的按钮游戏就会失败。
好在这个游戏可以重来，而且由于设计者的疏忽，每一关的通关按钮是不变的，所以你可以记住前几关的按钮，重来时就可以直接通关。
但是…你的运气似乎用在了其他地方，你使用了最多的按按钮次数才成功通关。
求这个最多的按按钮次数吧！

备注

输入一维数组a[i],表示每一关的按钮数
1 ≤ a[i] ≤ 10^5
1 ≤ a[i] 数组的长度 ≤ 10^5


输入


[]]></description><category></category></item><item><title><![CDATA[二元运算符]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/117900317</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/117900317</guid><author>javaee520</author><pubDate>Mon, 14 Jun 2021 12:05:57 +0800</pubDate><description><![CDATA[(+=) 与 (= ？+)

在赋值中使用二院运算符


// 运算符要放在 = 号左边
x += 4


等价于


x = x+4

注意

如果运算符得到一个值(x=10)，其类型与左侧操作数的类型不同(假设为: 10.0)，就会发生强制类型转换。
例如，x是一个int，则 x += 10.0 是合法的，将把x设置为: (int)(x+10.0)


但是

同理

x *= 10.0; // 等价于: x = (int) (x * 10.0);
x /= 10.0; // 等价于: x = (int]]></description><category></category></item><item><title><![CDATA[力扣 - 11. 盛最多水的容器]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/117900295</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/117900295</guid><author>javaee520</author><pubDate>Mon, 14 Jun 2021 12:05:21 +0800</pubDate><description><![CDATA[题目
盛最多水的容器

思路1（暴力破解）

迭代每两个组合
找到最大值并输出

题解
class Solution {
    public int maxArea(int[] height) {
        int ans= 0;
        for (int i = 0; i &lt; height.length - 1; i++) {
            for (int j = i + 1; j &lt; height.length; j++) {
                //]]></description><category></category></item><item><title><![CDATA[Shiro学习_02（认证）]]></title><link>https://blog.youkuaiyun.com/javaee520/article/details/117900285</link><guid>https://blog.youkuaiyun.com/javaee520/article/details/117900285</guid><author>javaee520</author><pubDate>Mon, 14 Jun 2021 12:04:49 +0800</pubDate><description><![CDATA[Shiro身份验证

认证: 判断一个用户是否为合法用户的处理过程。即提供用户名和密码，检验是否与数据库存储的用户名密码一致。

Shrio中认证的管家对象

Subject:主体


访问系统的用户


Principal:身份信息


身份，即主体的标识属性，可以是任何东西，如用户名、邮箱等，唯一即可。
一个主体可以有多个principals，但只有一个Primary principals,一般是用户名/密码/手机号


Credential:凭证信息


证明 / 凭证，即只有主体知道的安全值，如密码]]></description><category></category></item></channel></rss>