<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[IRON__MAN__的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/IRON__MAN__</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; IRON__MAN__]]></copyright><item><title><![CDATA[剑指offer：二叉搜索树的第k个节点]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109585468</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109585468</guid><author>IRON__MAN__</author><pubDate>Mon, 09 Nov 2020 23:42:57 +0800</pubDate><description><![CDATA[二叉搜索树概念：
（又：二叉搜索树，二叉排序树）它或者是一棵空树，或者是具有下列性质的二叉树： 若它的左子树不空，则左子树上所有结点的值均小于它的根结点的值； 若它的右子树不空，则右子树上所有结点的值均大于它的根结点的值； 它的左、右子树也分别为二叉排序树。
举例中的二叉树实际结构：

核心思想：中序遍历，也就是  左 根 右    ，二叉树变成了2，3，4，5，6，7，8这样的顺序。查找第k个元素即可。
第一种办法：递归中序遍历+利用数组存储二叉树数据。再获取第k个元素。
 static ArrayLi.]]></description><category></category></item><item><title><![CDATA[剑指offer：旋转数组的最小数字]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109366778</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109366778</guid><author>IRON__MAN__</author><pubDate>Thu, 29 Oct 2020 19:31:15 +0800</pubDate><description><![CDATA[1.没什么好说的直接排序，输出最小值就完了。暴力直接，有api不用是傻瓜。
  public int minNumberInRotateArray(int[] array) {
        //直接排序
        if (array.length == 0) return 0;
        Arrays.sort(array);
        return array[0];
    }

2.站在学习的角度上
理解题意:非递减数组的一个旋转数组，作为参数。
那么传入的参数格式要么是：
1.]]></description><category></category></item><item><title><![CDATA[数据结构：堆——概念、代码实现]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109221313</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109221313</guid><author>IRON__MAN__</author><pubDate>Thu, 22 Oct 2020 16:52:24 +0800</pubDate><description><![CDATA[1.概念：二叉堆是经常被提到的堆， 堆满足：
堆中某个节点的值总是不大于或不小于其父节点的值；
堆总是一棵完全二叉树
2.分类：堆具体分为大根堆和小根堆。大根堆的父节点一定是比子节点的value大的，小根堆的父节点一定是比子节点的value小的。
父节点和子节点的关系，已知父节点为k,则左孩子为2k+1,右孩子为2k+2，且都应该小于等于总结点个数。根节点从0开始，因为底层是数组。
已知子节点位置为k，则父节点位置为（k-1）/2，向下取整
（以大根堆为例） 向下调整：
整体思想： 从最后一个子树开始调整。]]></description><category></category></item><item><title><![CDATA[手撕排序算法和个人理解]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109212549</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109212549</guid><author>IRON__MAN__</author><pubDate>Thu, 22 Oct 2020 00:30:41 +0800</pubDate><description><![CDATA[排序作为最入门的算法，说简单也简单，但是初学者不好想象。下面就做一介绍。
针对于排序算法，我主要关注的点是：
1.代码实现（参杂一些个人的理解）
2.时间，空间复杂度（概念就不介绍了）
3.稳定性
ps：稳定的排序，可以通过代码变成不稳定，不稳定的排序无法变成稳定。界定稳定有一个比较好的办法就是判断有没有跳跃式交换，如果有那么就是不稳定的。如果没有就是稳定的。（这是一个小点，后面会有介绍）

1.直接插入排序
思想：接牌思想，第一个数据默认有序，从第二个数据开始遍历。每次把插入的值放入到tmp中，从它的前一]]></description><category></category></item><item><title><![CDATA[JMM和JVM的区别]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109188142</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109188142</guid><author>IRON__MAN__</author><pubDate>Tue, 20 Oct 2020 21:02:33 +0800</pubDate><description><![CDATA[在面试的时候我经常被问到JVM内存模型，我一直以为JVM也就5大区域，线程共享的方法区（包含运行常量池），堆和线程私有的本地方法栈，和虚拟机栈还有程序计数器。当问道JMM我下意识觉得可能是在问JVM。其实不是，二者本来不是一个东西。
JVM是java实现的虚拟计算机，（Java  Virtual Machine），既然是虚拟实现的计算机，那么它也有对应的存储区，这就是刚才说的那些堆，栈等等。
JMM是什么？JMM的主要目的是定义程序中各种变量的访问规则，变量包含实例字段和静态字段，但是不包括局部变量和方法参]]></description><category></category></item><item><title><![CDATA[java基础：内部类]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109059365</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109059365</guid><author>IRON__MAN__</author><pubDate>Tue, 13 Oct 2020 21:56:03 +0800</pubDate><description><![CDATA[内部类概念：定义在类的内部的类叫做内部类。内部类根据不同的定义方式：可以分为：
1.静态内部类
2.成员内部类
3.局部内部类
4.匿名内部类
一、静态内部类
概念：定义在类的内部的静态内部类。静态内部类可以访问外部类的静态成员属性和方法。在静态类内部也可以定义静态变量，方法，构造函数等。静态内部类通过      外部类名.静态内部类名   来new实例 进行调用。

public class OUT {

     private static String className="我是类的静态成员属性";]]></description><category></category></item><item><title><![CDATA[HashTable、HashMap、CurrentHashMap的关系]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109036191</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109036191</guid><author>IRON__MAN__</author><pubDate>Mon, 12 Oct 2020 22:15:57 +0800</pubDate><description><![CDATA[在上一个博客中提到了hashmap，HashMap是基于哈希表实现的，内部通过链表或红黑树解决哈希冲突问题。容量不足时，会进行2的幂次方扩容，但是非常重要的一点就是HashMap并不是线程安全的，只能使用在单线程下，如果要使用在多线程下，就要采用jdk1.5引入的concurrent包下的concurrentHashMap。
这篇博客主要就是介绍HashMap、HashTable 、ConcurrentHashMap的区别和联系。

HashMap是继承自AbstractMap类，而HashTable是继承]]></description><category></category></item><item><title><![CDATA[java基础：集合框架以及背后的数据结构]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109016352</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/109016352</guid><author>IRON__MAN__</author><pubDate>Sun, 11 Oct 2020 22:02:00 +0800</pubDate><description><![CDATA[集合框架以及对应的数据结构一、集合框架（集合类）概念二、集合类接口和类的总览三、List1.arraylist2.linkedlist3.vectorps：4.arraylist和linkedlist的区别四、Queue
一、集合框架（集合类）概念
java集合框架 Java   collection  framework也就是我们通常叫的集合类，又被称为容器container，定义在java.util包下的一组接口和类，就是api（应用程序接口）。
它的作用是管理元素，也就是说通过这个集合类我们可以对元素]]></description><category></category></item><item><title><![CDATA[HTTP常见状态码小结]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/108458717</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/108458717</guid><author>IRON__MAN__</author><pubDate>Mon, 07 Sep 2020 23:52:25 +0800</pubDate><description><![CDATA[HTTP状态码是什么？
当浏览器访问一个网页时，客户端得浏览器会向目标网页所在得服务器发出请求，当浏览器接收并显示网页前，服务器会返回一个包含HTTP状态码得信息头用来响应浏览器的请求。
常见的状态码？
1xx：信息，服务器收到请求但是需要请求者继续执行操作。
2xx：成功，操作成功并被接收处理。
3xx：重定向，需要进一步操作以完成请求.
4xx：客户端错误，请求包含语法错误或无法完成请求。
5xx：服务端错误，服务器在处理请求的过程中发生了错误。
常用的HTTP状态码表
一、
100，继续，客户端应继续]]></description><category></category></item><item><title><![CDATA[网络通信的概念以及浅谈套接字socket的作用？]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/108435141</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/108435141</guid><author>IRON__MAN__</author><pubDate>Sun, 06 Sep 2020 21:07:57 +0800</pubDate><description><![CDATA[网络通信是指两个主机间的通信，但是这样并不具体，准确来说来说真正进行通信的是主机中的进程。也就是说进行通信的只一台主机上的进程和另一个主机上的进程进行数据交换。我们常说TCP/IP，那么它到底是什么？

...]]></description><category></category></item><item><title><![CDATA[java实操项目：悦读FM总结]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/108266514</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/108266514</guid><author>IRON__MAN__</author><pubDate>Tue, 01 Sep 2020 00:59:17 +0800</pubDate><description><![CDATA[悦读FM——项目总结项目概述项目背景项目应用到的技术项目功能项目小亮点项目总结和展望开源代码
项目概述
项目背景
悦读FM这个项目最主要的目的还是练习自己的技术，因为突然看到了别人的毕业论文是一个本地播放音频的题目，于是想了想，似乎在数据库存储音频视频这类东西时，自己没有关注过。同时也为了弥补在上个易班项目中没有联系过前端代码，自己写了写简单的HTML表单代码，同时学到了一些
项目应用到的技术
项目功能
项目小亮点
项目总结和展望
开源代码

...]]></description><category></category></item><item><title><![CDATA[java：JDBC链接数据库步骤]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/108202269</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/108202269</guid><author>IRON__MAN__</author><pubDate>Mon, 24 Aug 2020 16:36:43 +0800</pubDate><description><![CDATA[声明数据库驱动，数据源的url，用于登录数据库的账户和密码（将其他功能封装成方法的时候方便使用）
String driver = “数据库驱动名称”；
String url = “数据库连接地址”
String user = “用来连接数据库的用户名”；
String pwd = “用来连接数据库的密码”；
加载数据库驱动
Class.forName(driver);
根据url创建数据库连接对象Connection
Connection con = DriverManage.getConnection(u]]></description><category></category></item><item><title><![CDATA[stactic关键字的作用]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/108126129</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/108126129</guid><author>IRON__MAN__</author><pubDate>Thu, 20 Aug 2020 17:26:02 +0800</pubDate><description><![CDATA[1.static是什么？
static作为java中的修饰符，可修饰成员属性，成员方法，内部类，代码块。
2.static有什么用？
java是面向对象的语言，说白了就是我们只关心对象，而不去关心它内部具体是如何实现的。我们通常使用   对象.    来获取这个对象所具有的一些属性或者方法，但是前提是我们必须有对象（扎心了）。那么如果没有对象怎么去调用这些呢，这就是static的作用。
static可以让我们没有创建对象的情况下来进行调用。
也就是说static修饰的东西不依赖于对象，根据类名就可以去访问。]]></description><category></category></item><item><title><![CDATA[“易班”学生管理平台小项目   万字总结  泪目！！！]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/107959301</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/107959301</guid><author>IRON__MAN__</author><pubDate>Thu, 13 Aug 2020 16:18:45 +0800</pubDate><description><![CDATA["易班"——项目总结1. 项目概述2.项目背景3. 项目应用到的技术1.Maven项目功能项目中遇到的难点展望链接以及开源代码
1. 项目概述
"易班"项目是基于Java语言的一个Web项目，是一个学生和班级信息管理平台，它可以对学生或者班级信息进行增加，删除，改正，查询的一个信息平台，通过网页访问管理人员可以了解到实时的学生信息和班级信息，最直接的适用场景是适用于各个学校，对字段进行修改后也可以适用于公司，组织等等一切需要对人力资源信息进行管理的场景下，因此这个项目具有相当的实用性和必要性。
2.项目背景]]></description><category></category></item><item><title><![CDATA[Linux系统和windows系统得区别？]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/107580385</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/107580385</guid><author>IRON__MAN__</author><pubDate>Sat, 25 Jul 2020 16:14:39 +0800</pubDate><description><![CDATA[一、特bai点不同
Windows 系统直观、高效的面向对象du的图形用户zhi界dao面，易学易用，Windows 用户界面和开发环境都是面向对象的，这种操作方式模拟了现实世界的行为，易于理解、学习和使用；Linux 适用性强，微型计算机的 Linux 系统也能够移植到大型计算机中运行。
二、软件获取的途径不一样
windows 系统每一种特定功能可能都需要商业软件的支持，需要购买相应的授权；linux 系统大部分软件都可以自由获取，同样功能的软件选择较少。
三、源代码公布不一样
linux 系统源代码完]]></description><category></category></item><item><title><![CDATA[Java经典面试基础知识：==和equals有什么区别？]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/107526066</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/107526066</guid><author>IRON__MAN__</author><pubDate>Thu, 23 Jul 2020 23:51:30 +0800</pubDate><description><![CDATA[一、==当比较的值是基本类型时是值比较，当值是引用类型时是引用比较

]]></description><category></category></item><item><title><![CDATA[java乒乓球筐——牛客]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/107526088</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/107526088</guid><author>IRON__MAN__</author><pubDate>Wed, 22 Jul 2020 23:51:00 +0800</pubDate><description><![CDATA[nowcoder有两盒（A、B）乒乓球，有红双喜的、有亚力亚的……现在他需要判别A盒是否包含了B盒中所有的种类，并且每种球的数量不少于B盒中的数量，该怎么办呢？
链接：https://www.nowcoder.com/questionTerminal/bb4f1a23dbb84fd7b77be1fbe9eaaf32?pos=100&amp;orderByHotValue=1
来源：牛客网
输入描述:
输入有多组数据。
每组数据包含两个字符串A、B，代表A盒与B盒中的乒乓球，每个乒乓球用一个大写字母表示，即相]]></description><category></category></item><item><title><![CDATA[OSI七层模型、TCP/IP五层(或四层)模型]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/107468791</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/107468791</guid><author>IRON__MAN__</author><pubDate>Wed, 22 Jul 2020 14:22:16 +0800</pubDate><description><![CDATA[要说OSI七层模型和TCP/IP五层(或四层)模型，我们先做问题得拆解，1.什么 是OSI？2.七层模型是那些？如何划分？有那些功能？3.有了OSI七层模型，我们为什么还要引入TCP/IP层模型以及他们又是怎么划分的？
1.什么是OSI？
开放式系统互联通信参考模型（英语：Open System Interconnection Reference Model，缩写为 OSI），简称为OSI模型（OSI model），它是由ISO(国际标准化组织）制定的一种概念模型，由国际标准化组织提出，一个试图使各种计算机]]></description><category></category></item><item><title><![CDATA[JAVA基础——单例模式]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/106919983</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/106919983</guid><author>IRON__MAN__</author><pubDate>Tue, 23 Jun 2020 18:27:59 +0800</pubDate><description><![CDATA[1.介绍单例模式之前我们先看什么是模式？
所谓模式就是一种规定好的范例，用白话讲就是套路，在java中遵循某个模式会让你的代码更加规范避免一些自己没有考虑到的错误。
2.再说什么是单例模式？
单例模式（singleton  pattern）是java一种较为简单的设计模式，这中类的设计模式属于创建模式，它提供了一种创建对象的最佳方式，单例模式是指一个单一的类，该类负责自己创建对象，并确保只能创建出一个对象，并对外提供访问这个唯一的对象的方法。外部可以直接访问，而不需要再构造对象。
注意：
1.单例类只能由一]]></description><category></category></item><item><title><![CDATA[Thread线程安全]]></title><link>https://blog.youkuaiyun.com/IRON__MAN__/article/details/106852075</link><guid>https://blog.youkuaiyun.com/IRON__MAN__/article/details/106852075</guid><author>IRON__MAN__</author><pubDate>Fri, 19 Jun 2020 14:25:58 +0800</pubDate><description><![CDATA[要理解线程安全我们首先举一个例子：
问题：


启动两个线程，同时操作一个变量 v = 0


一个线程对该变量执行 N 次 v++


另一个线程对该变量执行 N 次 v–


问，当两个线程都执行结束时，v 的值是多少？
结论：
理论上我们的期望值应该是0，但是实际上是一个随机值（也有可能出现0），并且当N越大时出现随机值的概率越高。
通过这个例子我们就可以简单的给线程安全下一个定义，程序运行的结果假如我们100%符合我们的预期，不会出现有时正确有时错误，就是线程安全。
再回到我们刚才那个例子，为什么会]]></description><category></category></item></channel></rss>