<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xwe_147jyz的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xwe_147jyz</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xwe_147jyz]]></copyright><item><title><![CDATA[Tcp三次握手/Tcp协议数据传输（服务器端开启多线程）]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/125713101</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/125713101</guid><author>xwe_147jyz</author><pubDate>Sun, 10 Jul 2022 23:51:12 +0800</pubDate><description><![CDATA[TCP协议的三次握手和数据传输，服务器端采用多线程，可接收多个客户端的数据]]></description><category></category></item><item><title><![CDATA[udp传输数据]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/125697810</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/125697810</guid><author>xwe_147jyz</author><pubDate>Sat, 09 Jul 2022 19:49:10 +0800</pubDate><description><![CDATA[理解udp的传输]]></description><category></category></item><item><title><![CDATA[JAVA（Spring）学习笔记---＞动态代理+切面]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123797598</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123797598</guid><author>xwe_147jyz</author><pubDate>Mon, 28 Mar 2022 17:35:15 +0800</pubDate><description><![CDATA[代理分为静态代理和动态代理，今天笔者就和大家聊一聊动态代理，期间我们加入了切面，笔者并且进行了两个单元测试，一个没有加切面，一个加入切面，我们来看看结果有什么不同，大家就知道笔者加入切面的用意。

首先笔者用一个通俗易懂的例子来概述代理，由浅入深，大家就能理解深入理解代理，希望读者能认真看完，一定会对你们在这一块有所帮助的。

代理：

代理就好比租房子，这个过程中有三方人。第一个是租客，第二个是中介，第三个是房东。那么，代理是什么？这里的代理就是中介，租客只需要找中介租房子，而找房子的事就交个中介就行了，]]></description><category></category></item><item><title><![CDATA[Java（Spring)学习笔记---＞生命周期]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123783590</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123783590</guid><author>xwe_147jyz</author><pubDate>Sun, 27 Mar 2022 23:03:00 +0800</pubDate><description><![CDATA[笔者这篇文章和大家聊一聊对象的生命周期，其中加入了作用域，包含了饿汉式和懒汉式，希望对大家的学习有所帮助。

首先我们在一个类中加入初始化的方法和销毁方法，在让IOC容器创建我们需要的对象，与此同时我们在给对象加入作用域，和懒加载，以便于我们的测试。

BuLiangRen类：


package com.kaifamiao.ioc.lifecycle2;

import com.kaifamiao.ioc.Logable;

/**
 * @author 后来的老李
 * @version 1.0
 */]]></description><category></category></item><item><title><![CDATA[Java（Spring）学习笔记---＞自动装配（autowire）]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123779735</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123779735</guid><author>xwe_147jyz</author><pubDate>Sun, 27 Mar 2022 20:20:52 +0800</pubDate><description><![CDATA[这篇文章笔者和大家聊一聊自动装配，首先我们学习它的时候我们应该知道何为自动装配？

举个例子：一个人他有一只狗和一只猫，他有的 这两个动物就相当于这个人的名字一样，写在一个personn类中并且生成无参，有参，get和set对吧？在传统的创建这个人类的对象中，我们得先new一个人，再创建这两个动物；然而在Spring中，我们只需在XML文件中创建Person的对象，因为Person类中有了这两个动物，所以我们要得到这两个动物对象只需要自动装配上去，可以通过byName,也可以通过byType来实现自动装配，]]></description><category></category></item><item><title><![CDATA[Java（Spring）学习笔记----＞IOC容器中两个对象的关系]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123776564</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123776564</guid><author>xwe_147jyz</author><pubDate>Sun, 27 Mar 2022 17:15:18 +0800</pubDate><description><![CDATA[既然在传统的对象与对象中有继承，接口的关系，那么通过IOC容器创建的对象也有这样的关系，这篇文章笔者聊一聊IOC容器中的对象和抽象类

直接上代码，我们通过代码来聊聊。

首先先创建一个类


package com.kaifamiao.ioc.relation;

import java.util.logging.Logger;

/**
 * @author 后来的老李
 * @version 1.0
 */
public class Bear {
    
    //属性
    //无参构造
  ]]></description><category></category></item><item><title><![CDATA[JAVA（Spring）学习笔记----＞Scope(作用域）]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123774018</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123774018</guid><author>xwe_147jyz</author><pubDate>Sun, 27 Mar 2022 16:33:04 +0800</pubDate><description><![CDATA[这篇文章笔者和大家来聊一聊Spring中的两个标签配置范围，即singleton和prototype，前者意味单例的，后者则是多例的。

Scope取值
			实例化个数
			实例化时机
			对象创建
			对象运行
			对象销毁
		singleton(单例)
			1个
			当Spring文件被加载时，实例话配置的Bean实例（只创建一次）
			创建容器时，对象向就被创建
			容器在，对象一直活着
			容器销毁，对象被销毁
		prototype(多例)
			多个
			当调用getBe]]></description><category></category></item><item><title><![CDATA[JAVA(Spring)学习笔记---＞控制反转、依赖注入]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123771501</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123771501</guid><author>xwe_147jyz</author><pubDate>Sun, 27 Mar 2022 14:47:20 +0800</pubDate><description><![CDATA[1：Spring资源目录（resource）的XML文件头：


&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/s]]></description><category></category></item><item><title><![CDATA[JAVA框架【mybatis】资料]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123617131</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123617131</guid><author>xwe_147jyz</author><pubDate>Sun, 20 Mar 2022 17:28:28 +0800</pubDate><description><![CDATA[解决资源导出问题：


&lt;build&gt;
&lt;resources&gt;
      &lt;resource&gt;
        &lt;directory&gt;src/main/resources&lt;/directory&gt;
        &lt;includes&gt;
          &lt;include&gt;**/*.properties&lt;/include&gt;
          &lt;include&gt;**/*.xml&lt;/include]]></description><category></category></item><item><title><![CDATA[利用servlet写文件下载]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123616810</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/123616810</guid><author>xwe_147jyz</author><pubDate>Sun, 20 Mar 2022 17:21:26 +0800</pubDate><description><![CDATA[文件下载需要有几个步骤：


1.要获取下载文件路径 2.下载的文件名是什么？3.设置让浏览器能够支持的下载的文件 4.获取下载文件的输入流 5.创建缓冲区 6.获取outputStream对象 7.将fileOutputStream流写入到buffer缓冲区，使用outputStream将缓冲区的数据输出到客户端

首先将需要的文件放在resourcce的资源目录下，然后写好FileServlet的文件下载代码，最后不要忘记给出映射或者注解，因为再浏览器的访问中，它访问的是webAPP，那么我们需要再给出]]></description><category></category></item><item><title><![CDATA[JAVA递归调用实现数的阶乘]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121458511</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121458511</guid><author>xwe_147jyz</author><pubDate>Sun, 21 Nov 2021 19:31:45 +0800</pubDate><description><![CDATA[5的阶乘==5*（4*3*2*1）怎样用递归实现


package com.kaifamiao.day13CDSN;
/*
一个数的阶乘
 */
import java.util.Scanner;

public class DiGui04 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请你输入一个数："]]></description><category></category></item><item><title><![CDATA[JAVA实现纳税算法]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121458271</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121458271</guid><author>xwe_147jyz</author><pubDate>Sun, 21 Nov 2021 19:16:20 +0800</pubDate><description><![CDATA[代码如下：


package com.kaifamiao.day1115;

import java.util.Scanner;

public class JiaoShui {
    private static double shui;
    private double salary;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System..]]></description><category></category></item><item><title><![CDATA[JAVA递归调用求一个数的几次方]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121458149</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121458149</guid><author>xwe_147jyz</author><pubDate>Sun, 21 Nov 2021 19:10:27 +0800</pubDate><description><![CDATA[递归实现这个题目很简单，例如：4的3次方——&gt;result=4*4*4,这就相当于4*4的2次方一个意思，那么递归调用就少一个次方，递归调用，代码如下：


package com.kaifamiao.day13CDSN;
/*
一个数的次方
 */
import java.util.Scanner;

public class DiGui03 {
    public static void main(String[] args) {
        Scanner scanner = new Sc]]></description><category></category></item><item><title><![CDATA[JAVA递归调用实现数字的逆序输出]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121457853</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121457853</guid><author>xwe_147jyz</author><pubDate>Sun, 21 Nov 2021 18:50:05 +0800</pubDate><description><![CDATA[输入一串数字，将数字逆序输出出来，如：12，运行结果为21；首先不管怎样，我们都要先得到十位上的数字和个位上的数字，十位上的数字，就是用12/10；个位上的数字就是得到他的余数即12%10；然后用字符串将它们加起来，递归调用就是不断调用自身的方法实现他，代码如下：


package com.kaifamiao.day1117;

import java.util.Scanner;

public class DiGui02 {
    public static void main(String[] ar]]></description><category></category></item><item><title><![CDATA[JAVA遍历字符串]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121457767</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121457767</guid><author>xwe_147jyz</author><pubDate>Sun, 21 Nov 2021 18:41:13 +0800</pubDate><description><![CDATA[先将字符串转换为字符串数组，在遍历，计数


package com.kaifamiao.day1118;

public class TonJi {
    public static void main(String[] args) {
        String str="csdnisgood";
        counts(str);
    }
    public static void counts(String str){
        char[] chars=str.toCharA]]></description><category></category></item><item><title><![CDATA[JAVA实现两数的最大公因数]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121307213</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121307213</guid><author>xwe_147jyz</author><pubDate>Sat, 13 Nov 2021 17:22:28 +0800</pubDate><description><![CDATA[求最大公因数这里笔者讲解一下，再用 递归调用实现；M=24，N=16，求24和16的最大公因数，分两步：

1：M&gt;N，M%N==0，最大公因数为最小的数N；

2：M&gt;N，M%N！=0，求M%N的余数，再用M和N中最小的数除以余数，如果余数==0，则最大公因数为余数

如：24%16！=0；余数==8,16%8==0；则最大公因数为8；

注：这第二步就需要用到递归调用，用自己的方法调用。


package com.kaifamiao.day13CDSN;

import java.util]]></description><category></category></item><item><title><![CDATA[JAVA实现十进制数转二进制数，八进制数，十六进制数]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121306739</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121306739</guid><author>xwe_147jyz</author><pubDate>Sat, 13 Nov 2021 16:58:53 +0800</pubDate><description><![CDATA[二进制：

将每个余数倒着输出来，怎样实现，s=num%2+s;每次得到的数都进入到等号右边的s中，那么第二个余数就是num%2,加在s的前面，这就是字符串的拼接，切记不能交换两者的位置。

八进制：

同二进制一样

十六进制：

十六进制不外乎就是写一个数组:


char[] arr = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };

假如给一个17这样的十进制数，将其转换成十六进]]></description><category></category></item><item><title><![CDATA[JAVA完成诗词数组的反转]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121305410</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121305410</guid><author>xwe_147jyz</author><pubDate>Sat, 13 Nov 2021 15:47:11 +0800</pubDate><description><![CDATA[数组中写行式诗词，用数组反转将诗词变成列示的，

例如《江雪》：


千 山 鸟 飞 绝
万 径 人 踪 灭
孤 舟 蓑 笠 翁
独 钓 寒 江 雪

通过数组的反转：

独 孤 万 千
钓 舟 径 山
寒 蓑 人 鸟
江 笠 踪 飞
雪 翁 灭 绝

这里用到二维数组，我们将未反转的数组从第一列倒着遍历一次，就能得到第二个数组。行不变，列发生变化，从列的最后一个开始遍历即可。


package com.kaifamiao.day13CDSN;

public class ShiCi {
    publ]]></description><category></category></item><item><title><![CDATA[JAVA求菲波那切数列]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121304780</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121304780</guid><author>xwe_147jyz</author><pubDate>Sat, 13 Nov 2021 15:19:40 +0800</pubDate><description><![CDATA[斐波那契数列（Fibonacci sequence），又称黄金分割数列，因数学家莱昂纳多·斐波那契（Leonardo Fibonacci）以兔子繁殖为例子而引入，故又称为“兔子数列”，指的是这样一个数列：0、1、1、2、3、5、8、13、21、34、……在数学上，斐波那契数列以如下被以递推的方法定义：F(0)=0，F(1)=1, F(n)=F(n - 1)+F(n - 2)（n ≥ 2，n ∈ N*）。

因为第0项，第1项，第2项的值特殊，所以写一个条件，从第3项开始就是另一种情况。这里笔者总结了思路，希]]></description><category></category></item><item><title><![CDATA[用JAVA完成1000以内素数的判断]]></title><link>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121183158</link><guid>https://blog.youkuaiyun.com/xwe_147jyz/article/details/121183158</guid><author>xwe_147jyz</author><pubDate>Sat, 06 Nov 2021 18:47:45 +0800</pubDate><description><![CDATA[素数：素数一般指质数，质数是指在大于1的自然数中，除了1和它本身以外不再有其他因数的自然数。

思路：再1000以内找出素数当然我们得用一个循环，这里笔者提供一个思路，假如这里笔者找出一个35来判断这个数是否是素数，那么我们就要从1开始让35%1来判断它的余数是否是0，这里35%1==0，接着我们继续35%2！=0，35%3！=0；35%4！=0；35%5！=0；好这里一直到35%5！这里，我们知道5*7=35，说明5和7是35的因数，记住这个思路，我们到for()循环中使用；

使用for()循环的意义：]]></description><category></category></item></channel></rss>