<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zs_world的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zs_world</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zs_world]]></copyright><item><title><![CDATA[关于++运算符的前后问题。]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/114856451</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/114856451</guid><author>zs_world</author><pubDate>Mon, 15 Mar 2021 22:59:33 +0800</pubDate><description><![CDATA[++运算符平时用的基本上都是在遍历中，但是在面试中却经常碰到符号在前后的面试题，记录一下。

++在前 先自增再运算

++在后 先运算再自增




]]></description><category></category></item><item><title><![CDATA[查端口杀进程]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107913767</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107913767</guid><author>zs_world</author><pubDate>Mon, 10 Aug 2020 15:20:56 +0800</pubDate><description><![CDATA[查找6379端口的占用情况
netstat -ano|findstr 6379

杀死找到的PID进程
taskkill /pid 18012 /f
（中间有一次说拒绝访问，把cmd控制台的权限修改为管理员就可以杀死成功）
再次运行程序

]]></description><category></category></item><item><title><![CDATA[mybatis返回值为map或对象  一对多 多对一精简例子]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107761437</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107761437</guid><author>zs_world</author><pubDate>Fri, 07 Aug 2020 11:34:37 +0800</pubDate><description><![CDATA[准备，两张表，两个实体类，并且在类中配置关系，员工和公司是多对一，公司和员工之间是一对多关系


编写接口

]]></description><category></category></item><item><title><![CDATA[redis序列化]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107847108</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107847108</guid><author>zs_world</author><pubDate>Thu, 06 Aug 2020 18:45:15 +0800</pubDate><description><![CDATA[package com.lhyt.zsgc.controller;
 
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
im]]></description><category></category></item><item><title><![CDATA[java.sql.SQLException: Access denied for user ‘?????–???‘@‘localhost‘ (using password: YES) 查了好一会儿]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107802806</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107802806</guid><author>zs_world</author><pubDate>Tue, 04 Aug 2020 23:00:28 +0800</pubDate><description><![CDATA[出现问题

properties配置文件详情

解决办法：只要不写成username都可以可以，username这个变量被jvm环境给占用了。

]]></description><category></category></item><item><title><![CDATA[mybatis 核心配置文件]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107761107</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107761107</guid><author>zs_world</author><pubDate>Mon, 03 Aug 2020 12:34:01 +0800</pubDate><description><![CDATA[mybatis核心配置文件
&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
&lt;!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd"&gt;
&lt;configuration&gt;
    &lt;!--加载properties配置文件--&gt;
   ]]></description><category></category></item><item><title><![CDATA[java.io.IOException: Could not find resource mybatis-config.xml 问题出现的方式之一]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107749171</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107749171</guid><author>zs_world</author><pubDate>Sun, 02 Aug 2020 19:06:16 +0800</pubDate><description><![CDATA[练习mybatis偶然出现了问题记录一下
检查配置文件看了都没有问题
最后发现是resources文件夹没有标记，idea不能识别

选中resources文件夹，点击右键，添加成为resources root

测试成功


]]></description><category></category></item><item><title><![CDATA[Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: ja]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107736678</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107736678</guid><author>zs_world</author><pubDate>Sat, 01 Aug 2020 21:08:09 +0800</pubDate><description><![CDATA[在练习mybatis时候出现这个异常


原因是idea默认不编译src目录下的xml文件，所以加载不到
解决办法在pom文件中加入如下配置,注意不要放到dependencies标签中
    &lt;build&gt;
        &lt;resources&gt;
            &lt;resource&gt;
                &lt;directory&gt;src/main/java&lt;/directory&gt;
                &lt;inclu]]></description><category></category></item><item><title><![CDATA[maven 镜像]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107700524</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107700524</guid><author>zs_world</author><pubDate>Thu, 30 Jul 2020 20:50:18 +0800</pubDate><description><![CDATA[maven镜像
maven仓库中国镜像
&lt;mirror&gt;
        &lt;id&gt;maven.net.cn&lt;/id&gt;
        &lt;name&gt;oneof the central mirrors in china&lt;/name&gt;
        &lt;url&gt;http://maven.net.cn/content/groups/public/&lt;/url&gt;
        &lt;mirrorOf&gt;central&lt;/m]]></description><category></category></item><item><title><![CDATA[Warning:java: 来自注释处理程序 ‘org.eclipse.sisu.space.SisuIndexAPT6‘ 的受支持 source 版本 ‘RELEASE_6‘ 低于 -source]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107699635</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107699635</guid><author>zs_world</author><pubDate>Thu, 30 Jul 2020 20:19:09 +0800</pubDate><description><![CDATA[解决问题




]]></description><category></category></item><item><title><![CDATA[hashMap 1.7 视频笔记]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107663009</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107663009</guid><author>zs_world</author><pubDate>Wed, 29 Jul 2020 14:14:54 +0800</pubDate><description><![CDATA[hashMap 1.7
put 方法的调用
首先判断数组是否进行了初始,化，如果没有的话，调用方法进行初始话，把传入的参数进行2的次方数的转换，先转换为小于等于最最接近它的2的次方数，然后减一，在进行右移一位，然后再找大于等于的2的次方数。初始化完成后，判断key是否为null，如果为null，调用方法把值存在table【0】处，不为null，调用hashcode方法进行key的hash值的计算，不是简单的hash计算，要进行扰动，把hash值二进制数值进行位运算，左移，右移，让hash指的高位参与到运算中]]></description><category></category></item><item><title><![CDATA[面试题soa和微服务的定义]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107662578</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107662578</guid><author>zs_world</author><pubDate>Wed, 29 Jul 2020 13:59:12 +0800</pubDate><description><![CDATA[SOA（Service Oriented Architecture）“面向服务的架构”:他是一种设计方法，其中包含多个服务， 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在于操作系统进程中。各个服务之间 通过网络调用。
微服务架构:其实和 SOA 架构类似，微服务是在 SOA 上做的升华，微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”，原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。

...]]></description><category></category></item><item><title><![CDATA[多线程（三）生产者消费者模型]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107587991</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107587991</guid><author>zs_world</author><pubDate>Sun, 26 Jul 2020 00:30:22 +0800</pubDate><description><![CDATA[多线程（三）
生产者消费者模型
模型描述：通常有两类线程，有若干个生产者线程和若干个消费者线程，生产者线程负责生产数据，消费者线程负责消费数据，在生产者和消费者之间设置缓存区域进行线程之间的通讯。
解决问题：由于缓冲区的存在，可以使生产者和消费者之间进行解耦，解决了生产者和消费者之间消息生产和消费不平衡的问题，实现线程之间的互相通信。
存在角色：
生产者：负责消息的生产。
消费者：负责消费生产者产生的消息。
缓存区：负责存放消息，生产者将消息放入，消费者将消息拿出。
模型举例
举一个送牛奶的例子，我在屋里写]]></description><category></category></item><item><title><![CDATA[多线程（二）线程同步的理解]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107581319</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107581319</guid><author>zs_world</author><pubDate>Sat, 25 Jul 2020 17:00:08 +0800</pubDate><description><![CDATA[多线程（二）
线程同步
定义
线程同步：即当有一个线程在对内存进行操作时，其他线程都不可以对这个内存地址进行操作，处于等待状态，直到该线程完成操作， 其他线程才能对该内存地址进行操作。
举例卖票（模拟这类情况不能继承Thread，thread类的任务和线程是绑到一起的，开启一个线程，任务也会重新开启一个）
用卖票的例子，来模拟出现的一些问题，创建一个类，继承Thread类，在run方法中写买票的逻辑，创建多个线程，模拟买票的窗口。
卖票逻辑
package com.sj.thread;

public cl]]></description><category></category></item><item><title><![CDATA[多线程（一）多线程的实现方式]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107577419</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107577419</guid><author>zs_world</author><pubDate>Sat, 25 Jul 2020 13:20:41 +0800</pubDate><description><![CDATA[多线程
程序、进程、线程的定义
程序：为了实现某个特定的任务，使用某种语言编写的一组指令的集合。
进程：正在硬件上运行的程序
线程：是进程内部的一个顺序控制流，是程序运行调度的最小执行单元，如果一个程序中只有一个线程，这个程程序就是单线程程序，有多个线程就是多线程程序，一个程序中至少有一个线程。
为什么要使用多线程
1.充分利用计算机的cpu的处理能力
2.方便业务拆分，提升系统的并发能力和性能
并发容易引发的问题
线程安全：多个线程操作同一个变量，例如买票，不加处理会出现同一张票卖多次
死锁：多个线程因为]]></description><category></category></item><item><title><![CDATA[集群和分布式的区别]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107560965</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107560965</guid><author>zs_world</author><pubDate>Fri, 24 Jul 2020 14:47:25 +0800</pubDate><description><![CDATA[小饭店原来只有一个厨师，切菜洗菜备料炒菜全干。后来客人多了，厨房一个厨师忙不过来，又请了个厨师，两个厨师都能炒一样的菜，这两个厨师的关系是集群。 为了让厨师专心炒菜，把菜做到极致，又请了个配菜师负责切菜，备菜，备料，厨师和配菜师的关系是分布式，一个配菜师也忙不过来了，又请了个配菜师，两个配 菜师关系是集群
这世界不缺善良，缺的是加了理智的善良。
————————————————
https://blog.youkuaiyun.com/jiangxiaoqi0111/article/details/97679695

.]]></description><category></category></item><item><title><![CDATA[观察者模式]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107511013</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107511013</guid><author>zs_world</author><pubDate>Wed, 22 Jul 2020 12:52:28 +0800</pubDate><description><![CDATA[观察者模式
定义：观察者模式定义了一个一对多的依赖关系，让一个或多个观察者对象监听一个主题对象。当被观察者状态发生改变时，需要通知相应的观察者，使这些观察者对象能够自动更新。
具体实现：
1.Subject（被观察的对象接口)：定义一个被观察者接口，每一个被观察者都可以有多个观察者。2.ConcreteSubject（具体被观察对象)：实现了被观察者接口，如果自身状态发生改变，通知所有的观察者。3.Observer（观察者接口): 定义一个观察者接口，内部定义一个方法，在被观察对象状态改变时会被调用。4.C]]></description><category></category></item><item><title><![CDATA[模板模式]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107486241</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107486241</guid><author>zs_world</author><pubDate>Tue, 21 Jul 2020 12:36:52 +0800</pubDate><description><![CDATA[模板模式
定义：定义了一个算法的步骤，并允许子类为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下，重新定义算法中的某些步骤。简单理解就是父类中定义一个总的操作顺序，并且父类对整个顺序中的各别步骤做了实现，父类没有实现步骤在类中进行了抽象的定义，子类可以对这些步骤做自己的实现，但是定义的总体的操作顺序不变的。
使用场景：
(1).多个子类有公有的方法，并且逻辑基本相同。
(2).重要、复杂的算法，可以把核心算法设计为模板方法，周边相关的细节则在子类中实现。
定义一个抽象类，其中定义一个完整的操]]></description><category></category></item><item><title><![CDATA[装饰者模式]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107484999</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107484999</guid><author>zs_world</author><pubDate>Tue, 21 Jul 2020 11:30:47 +0800</pubDate><description><![CDATA[装饰者模式
定义：动态地给一个对象添加一些额外的职责，提供了比子类更加灵活的增强功能的方式。
优点：1、装饰者模式和继承关系的目的都是要扩展对象的功能，但是装饰模式可以提供比继承更多的灵活型。
​			2、通过使用不同的具体装饰者类及不同的组合顺序，可以得到不同装饰后具有不同行为或者状态的对象。
​			3、符合开闭原则。
缺点：1、增加了抽象装饰者类和具体装饰者类，一定程度增加了系统的复杂度，加大了系统的学习和理解成本。
​			2、灵活性也意味着更容易出错，对于多次被多次修饰的对象，调试时寻找错误可能需]]></description><category></category></item><item><title><![CDATA[代理模式]]></title><link>https://blog.youkuaiyun.com/zs_world/article/details/107474111</link><guid>https://blog.youkuaiyun.com/zs_world/article/details/107474111</guid><author>zs_world</author><pubDate>Mon, 20 Jul 2020 21:21:20 +0800</pubDate><description><![CDATA[代理模式
代理模式分为静态代理和动态代理，动态代理又分为jdk动态代理和CGLIB动态代理，动态代理的主要目的就是在不改变原有代码的情况下，对原代码的功能进行增强，其中Spirng的Aop ，rpc框架远程调用以及开发中dao层接口调用方法时。
1.静态代理
实现方式：目标对象和代理对象实现相同接口
缺点：接口改变时，目标对象和代理对象都需要维护
定义一个抽象的对象
package com.sj.staticproxy;

public interface Add {

    void save();
}]]></description><category></category></item></channel></rss>