<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chengxuzx的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chengxuzx</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chengxuzx]]></copyright><item><title><![CDATA[2019小米java开发]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/126854454</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/126854454</guid><author>chengxuzx</author><pubDate>Wed, 14 Sep 2022 16:07:37 +0800</pubDate><description><![CDATA[1]]></description><category></category></item><item><title><![CDATA[哈希表冲突]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/121087515</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/121087515</guid><author>chengxuzx</author><pubDate>Wed, 24 Nov 2021 15:01:04 +0800</pubDate><description><![CDATA[哈希表是啥子？

1、哈希表其实也叫散列表，两个是一个玩意，英文是Hash Table

2、哈希表是一个数据结构



哈希冲突







当有两个不同key值经过哈希函数计算后，得到同一个下标，那么它们就存在在同一个桶里，那么就会产生哈希冲突。实际中冲突是不可避免的，只能通过改进哈希函数的性能来减少冲突。



解决哈希冲突的方法

1.开放寻址法



简单来说，就是当你的位置被占了之后，你就只能再另换位置，那就可以看下一位（下一个桶）是否被占，如果没有就存在这个桶中，如果被占，那就再查找...]]></description><category></category></item><item><title><![CDATA[1.8 JDK新特性 -- 函数式编程 lambda 表达式 接口里的方法]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/121422486</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/121422486</guid><author>chengxuzx</author><pubDate>Fri, 19 Nov 2021 15:52:36 +0800</pubDate><description><![CDATA[1.什么是函数式编程？

Java为函数式编程引入了三个新的语法概念：Stream类、Lambda表达式和函数接口（Functional Inteface）。 Stream类用来支持通过“.”级联多个函数操作的代码编写方式；引入Lambda表达式的作用是简化代码编写；函数接口的作用是让我们可以把函数包裹成函数接口，来实现把函数当做参数一样来使用（Java 不像C那样支持函数指针，可以把函数直接当参数来使用）

函数式编程不是我们平时在 Java 中编写的函数或者方法，它是一种针对于数学的概念，可以将其理解为]]></description><category></category></item><item><title><![CDATA[java集合类总结]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/121357034</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/121357034</guid><author>chengxuzx</author><pubDate>Tue, 16 Nov 2021 15:23:55 +0800</pubDate><description><![CDATA[本文链接：Java集合类总结，详细且易懂！_WgRui的博客-优快云博客
]]></description><category></category></item><item><title><![CDATA[泛型的协变和逆变,类型擦除]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/121327255</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/121327255</guid><author>chengxuzx</author><pubDate>Mon, 15 Nov 2021 08:39:03 +0800</pubDate><description><![CDATA[1.类型擦除：





会报错：bothmethodshavasomeerasure；

原因是java在编译的时候会把泛型，上面的String和Integer给擦除掉，java的泛型机制是在编译级别实现的，编译器生成的字节码在允许期间不包含泛型的类型信息。

注意：但并没有真正擦除掉。



二.不变：





ArrayList是List的子类,apple是fruit的子类，为什么这里的泛型转换出问题了？

原因是泛型没有内建的协变类型 。无法关联起来，也就就是没有关系。



...]]></description><category></category></item><item><title><![CDATA[二叉树的先序，中序，后序遍历序列]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/121253648</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/121253648</guid><author>chengxuzx</author><pubDate>Fri, 12 Nov 2021 18:35:39 +0800</pubDate><description><![CDATA[二叉树有三种遍历：

1.先序遍历： （根左右）

2.中序遍历 ： （左根右）

3.后序遍历： （左右根）

举个例子：（以下动画图转载自https://blog.youkuaiyun.com/chinesekobe/article/details/110874773）：








先(根)序遍历（根左右）：A B D H I E J C F K G





中(根)序遍历（左根右） : H D I B E J A F K C G





后(根)序遍历（左右根） : H I D J E ...]]></description><category></category></item><item><title><![CDATA[int 和integer的比较]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/121087742</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/121087742</guid><author>chengxuzx</author><pubDate>Mon, 01 Nov 2021 20:20:52 +0800</pubDate><description><![CDATA[区别：

int是基本数据类型，Integer是引用数据类型；
	int默认值是0，Integer默认值是null；
	Integer实际是对象的引用，指向此new的Integer对象；int是直接存储数据值 ；
	int类型直接存储数值，Integer需要实例化对象，指向对象的地址。

package HelloWorld;

public class Intandinteger {
	 @SuppressWarnings("removal")
	public static void main...]]></description><category></category></item><item><title><![CDATA[为什么重写equals方法，还必须要重写hashcode方法（面试题）]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/121087246</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/121087246</guid><author>chengxuzx</author><pubDate>Mon, 01 Nov 2021 19:55:41 +0800</pubDate><description><![CDATA[1.目的：

1. 1使用hashcode方法提前校验，可以避免每一次对比都使用equals方法，提高效率

1.2 保证是同一个对象，如果重写了equals方法，没有重写hashcode方法，那么会出现equals相等，hashcode不相等的情况，所以就是为了避免这种情况发生。

2.总结

hashCode主要用于提升查询效率，来确定在散列结构中对象的存储地址；

重写equals()必须重写hashCode()，二者参与计算的自身属性字段应该相同；

hash类型的存储结构，添加元素重复性校验的标准]]></description><category></category></item><item><title><![CDATA[java中 == 和equals 的区别（面试题）]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/120921614</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/120921614</guid><author>chengxuzx</author><pubDate>Mon, 01 Nov 2021 19:40:35 +0800</pubDate><description><![CDATA[什么是==?
== 等于比较运算符,如果进行比较的两个操作数都是数值类型,即使他们的数据类型不相同,只要他们的值相等,也都将返回true.如果两个操作数都是引用类型,那么只有当两个引用变量的类型具有父子关系时才可以比较,而且这两个引用必须指向同一个对象,才会返回true.(在这里我们可以理解成==比较的是两个变量的内存地址)

什么是equals()?
equals()方法是Object类的方法,在Object类中的equals()方法体内实际上返回的就是使用==进行比较的结果.但是我们知道所有的类都继..]]></description><category></category></item><item><title><![CDATA[静态static关键字 ，final关键字]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/121060177</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/121060177</guid><author>chengxuzx</author><pubDate>Mon, 01 Nov 2021 08:44:47 +0800</pubDate><description><![CDATA[1.static关键字


]]></description><category></category></item><item><title><![CDATA[java 类的加载顺序]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/121036178</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/121036178</guid><author>chengxuzx</author><pubDate>Fri, 29 Oct 2021 16:00:45 +0800</pubDate><description><![CDATA[Java类的加载顺序

父类静态字段 → 父类静态代码块 → 子类静态字段 → 子类静态代码块 → 父类成员变量 → 父类非静态代码块 → 父类非静态构造方法 → 子类成员变量 → 子类非静态代码块 → 子类构造方法


package HelloWorld;
//父类静态 &gt; 子类静态 &gt; 父类非静态 &gt; 父类构造方法  &gt; 子类非静态 &gt; 子类构造方法 
class A {
    private static int numA;
    private int nu...]]></description><category></category></item><item><title><![CDATA[java中重载和重写的区别]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/121034510</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/121034510</guid><author>chengxuzx</author><pubDate>Fri, 29 Oct 2021 15:19:52 +0800</pubDate><description><![CDATA[1.重载

重载指在一个类中，具有多个相同名称的类，他们的参数列表却不相同

（参数类型不同、参数个数不同甚至是参数顺序不同）

重载对返回类型没有要求，可以相同也可以不同，但是不能返回类型来判断他们是否是重载。

例如


package HelloWorld;

public class Zuoye {
	public static void main(String[] args) {
		Zuoye z = new Zuoye();
		z.fangfa1();
		z.fangfa1("张旭");
]]></description><category></category></item><item><title><![CDATA[java面向对象（1）]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/121019536</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/121019536</guid><author>chengxuzx</author><pubDate>Thu, 28 Oct 2021 18:13:35 +0800</pubDate><description><![CDATA[一、为什么使用面向对象

编程思想：
面向过程：做某件事情都需要自己亲历亲为，按照步骤去完成
面向对象：做某件事情不需要自己亲历亲为，只需指定特定的对象去完成即可

优点：

1.开发交流更加流畅

2.提高开发效率

3.符合人类的思想思维



2.什么是对象？

对象是实际存在的该事物的个体，是具体的、现实的。万物皆为对象

对象 包含哪些东西？

属性： 由名词构成的一些数据 被称为属性 例如 名字 身高 等等

方法： 由动词构成的一些功能 被称为方法 例如 唱歌跳舞 等等



类中的属性...]]></description><category></category></item><item><title><![CDATA[什么是值传递，什么是引用传递]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/120920793</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/120920793</guid><author>chengxuzx</author><pubDate>Sat, 23 Oct 2021 14:52:34 +0800</pubDate><description><![CDATA[一般认为，java中基础类型数据传递都是值传递，java中实例对象的传递是引用传递，值传递是对基本型变量而言，传递的是该变量的一个副本，不影响该原变量，而引用传递是一般对于对象型变量而言，传递的是该对象地址的副本，并不是原对象本身。

1.值传递

值传递：方法调用时，实际参数把它的值传递给对应的形式参数，形式参数只是用实际参数的值初始化自己的存储单元内容，是两个不同的存储单元，所以方法执行中形式参数值的改变不影响实际参数的值。

2.引用传递

引用传递：也称为传地址。方法调用时，实际参数是对象（或者数组]]></description><category></category></item><item><title><![CDATA[JVM运行原理，float和long的范围比较，数据类型解析]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/120869651</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/120869651</guid><author>chengxuzx</author><pubDate>Wed, 20 Oct 2021 17:13:47 +0800</pubDate><description><![CDATA[1.JAM的运行原理：

JVM
JVM是Java Virtual Machine（Java虚拟机）的缩写，是一个虚构出来的计算机，是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机主要由字节码指令集、寄存器、栈、垃圾回收堆和存储方法域等构成。 JVM屏蔽了与具体操作系统平台相关的信息，使Java程序只需生成在Java虚拟机上运行的目标代码（字节码）,就可以在多种平台上不加修改地运行。JVM在执行字节码时，实际上最终还是把字节码解释成具体平台上的机器指令执行。

JVM基本概念

(1) ]]></description><category></category></item><item><title><![CDATA[HCIA综合实验]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/120242743</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/120242743</guid><author>chengxuzx</author><pubDate>Sat, 11 Sep 2021 21:01:44 +0800</pubDate><description><![CDATA[第一步，先分配网段，图中内部网段有5个。可得。



第二步，先配置交换机vlan。

sw1：



sw2：

第三步，对路由器配置vlan和干路ip

r1：



r2：



lsp：（lsp不做其他配置）

第五步，然后配置pc机的ip，用dhcp：

r1:

dhcp enable-----network 192.168.1.32 mask 27------gateway-list 192.168.1.33 -----dns-list 114.114.114.114----进入...]]></description><category></category></item><item><title><![CDATA[向linux系统添加磁盘、分区和文件系统]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/119062522</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/119062522</guid><author>chengxuzx</author><pubDate>Sat, 24 Jul 2021 19:21:52 +0800</pubDate><description><![CDATA[1、添加两块5g大小的磁盘，将第一块磁盘的分区分为两个主分区并格式化为xfs的文件系统类型，第二块磁盘的分区分为一个逻辑分区并格式化为ext4的文件系统类型。

1.添加磁盘



2.查看



3.分区第一块





4.分区第二块（第二块因为是逻辑分区，要选择e）



5.查看分区情况



6.格式化









2、将三个分区分别开机自动挂载在/disk1,/disk2,/disk3目录上。

先创建三个目录



1.先查看UUID ，找到三个分区的UUID

blkid



然后.]]></description><category></category></item><item><title><![CDATA[linux 论坛的搭建]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/119043855</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/119043855</guid><author>chengxuzx</author><pubDate>Fri, 23 Jul 2021 21:06:06 +0800</pubDate><description><![CDATA[1.光盘的挂载

查看光盘所在地方 df-h

然后cd到光盘地方 cd /run/media/root/RHEL-8-2-0-BaseOS-x86_64

修改光盘挂载地方 :  mount /dev/sr0 /mnt

cd /mnt

cd AppStream/

cd Packages/

2.对yum本地源配置文件：

ll /usr/bin/dnf

ll /usr/bin/yum

cd /etc/yum.repos.d/

定义配置文件：vim /etc/yum.repos...]]></description><category></category></item><item><title><![CDATA[linux中用户和用户组以及用户的身份切换]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/118971864</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/118971864</guid><author>chengxuzx</author><pubDate>Wed, 21 Jul 2021 17:47:06 +0800</pubDate><description><![CDATA[1、新建几个普通用户wukong，wuneng，wujing，他们都属于xiyouji组的成员，其中wujing没有和系统交互的shell。



因为这三个普通用户都在xiyouji组，所以第一步我们先创建一个用户组叫xiyouji

 groupaddxiyouji



然后创建三个用户，并把他们放入xiyouji组里

useradd -gxiyouji wukong





然后对wujing修改

usermod -s /sbin/nologinwujing





2、wukon...]]></description><category></category></item><item><title><![CDATA[Linux 创建，删除目录文件，复制，移动文件，以及压缩，从linux服务器上传文件]]></title><link>https://blog.youkuaiyun.com/chengxuzx/article/details/118913519</link><guid>https://blog.youkuaiyun.com/chengxuzx/article/details/118913519</guid><author>chengxuzx</author><pubDate>Mon, 19 Jul 2021 20:51:12 +0800</pubDate><description><![CDATA[1、在根下创建一个目录ceshi，在测试目录下创建一个user目录，将/etc/passwd和/etc/shadow文件复制到/ceshi/user目录中，给/ceshi//user/passwd文件创建一个硬链接文件为passwd.bak，给/ceshi/user/shadow文件创建一个软链接为sh.link。



第一步：创建一个/ceshi/user目录



第二步： 将/etc/passwd和/etc/shadow文件复制到/ceshi/user目录中





第三步：给/ceshi//u.]]></description><category></category></item></channel></rss>