<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[java_fight的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/java_fight</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; java_fight]]></copyright><item><title><![CDATA[父页面调用子页面的function 的小坑]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/107490211</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/107490211</guid><author>java_fight</author><pubDate>Tue, 21 Jul 2020 15:37:28 +0800</pubDate><description><![CDATA[不少写前端的都会在父页面去拿子页面的方法，网上几乎都是这样：
$("#ifm")[0].contentWindow().iClick();
将这些连成了一长串，我试了半天还是不行，然后我就拆开来用了；
var contentWindow = $("#ifm")[0].comtentWindow;
contentWindow.子页面方法（）；
然后就好用了哈哈

...]]></description><category></category></item><item><title><![CDATA[关于 SQL的 as 用法]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/106568663</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/106568663</guid><author>java_fight</author><pubDate>Fri, 05 Jun 2020 16:26:26 +0800</pubDate><description><![CDATA[前段时间一直在忙项目，导致很久没有更新博客了，这几天项目中碰到两个很有意思的事情。如下
一：				我数据库中id是主键，不能重复，不能为空，且因为业务原因也不能设置为自增，业务是从另一个临时表中查出数据放入正式表，且放入id还不能与临时表一样。所以就有了这个，在mybatis的XML中
&lt;insert&gt;
&lt;selectKey keyProperty="id" order="before"&gt;
 select replace(uuid)
&lt;/selectKey&gt;
 inse]]></description><category></category></item><item><title><![CDATA[Git中分支的应用]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/103469335</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/103469335</guid><author>java_fight</author><pubDate>Tue, 10 Dec 2019 09:48:58 +0800</pubDate><description><![CDATA[首先说明，gitlab上有一个master分支，其实这个分支应该只有管理员可管理的，我设置的是所有开发者都把自己代码直接提交到了master，这显然是不安全的，所以此次更新是分支的使用。

分支应用步骤：
1）查看分支：git branch   （只有一个master分支）

2）新建自己的分支  git branch 分支名

此时再看分支列表出现两个分支

切换到新建的自己的分支

查看...]]></description><category></category></item><item><title><![CDATA[MongoDB之按时间查询]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/103200008</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/103200008</guid><author>java_fight</author><pubDate>Fri, 22 Nov 2019 14:27:56 +0800</pubDate><description><![CDATA[mongo数据库按照时间查询数据比较常见，有一点大家比较容易忽略，有时候是因为数据量太大的缘故，可能开发者没有注意。
今天要说的就是通过时间查询容易遇到的问题。mongo数据库中存的时间为格林尼治时间，也就是大家所说的世界时间。中国通用的时间是北京时间，而北京时间是东八区的时间，大家在查询中请求的时间也是为北京时间，比mongo数据库中存的时间要晚了8小时，所以我们在利用时间去查询mongo数据库...]]></description><category></category></item><item><title><![CDATA[MongoDB 查询中遇到的坑]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/103069160</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/103069160</guid><author>java_fight</author><pubDate>Thu, 14 Nov 2019 16:11:37 +0800</pubDate><description><![CDATA[首先mongoDB由于有优越的性能被广泛应用，尤其是处理千万，甚至上亿的数据上，对于有索引ID的查询不会比Mysql慢，不仅查厉害，写入也是血虐Mysql。当然各有各的好处。此篇博客不是要对比两个，而是要说一下我在工作中遇到的一个坑。
简单说吧

这是我的一个接口的请求的参数，大家可以看到时间这个参数是String类型的，写好接口后，我就开始一遍一遍的测，次次空指针，回到代码里检查n遍，没错呀。这...]]></description><category></category></item><item><title><![CDATA[Spring基于Xml注入bean的几种方式]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/99674141</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/99674141</guid><author>java_fight</author><pubDate>Fri, 16 Aug 2019 11:31:20 +0800</pubDate><description><![CDATA[spring中的依赖注入
依赖注入：  Dependency Injection
IOC的作用：          降低程序间的耦合（依赖关系）
依赖关系的管理：  以后都交给spring来维护，在当前类需要用到其他类的对象，由spring为我们提供，
我们只需要在配置文 件中说明
依赖关系的维护：  就称之为依赖注入。
能注入的数据：有三类

基本类型和String
其他bean类型（在配置文件...]]></description><category></category></item><item><title><![CDATA[今天写一个死锁的实例吧]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/98770202</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/98770202</guid><author>java_fight</author><pubDate>Wed, 07 Aug 2019 18:20:59 +0800</pubDate><description><![CDATA[死锁
这个词相信大家都听说过，或者也明白它的意思，但是不知道如何去实现，今天咱就写一个死锁的实现。
实现死锁前咱们在回顾一下死锁的概念：死锁是指两个或两个以上的进程在执行过程中，由于竞争资源或者由于彼此通信而造成的一种阻塞的现象，若无外力作用，它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁，这些永远在互相等待的进程称为死锁进程。（这是百度百科给的定义）
形象比喻一下把，比如我有一个鸡...]]></description><category></category></item><item><title><![CDATA[常见的数据结构]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/97645497</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/97645497</guid><author>java_fight</author><pubDate>Mon, 29 Jul 2019 15:43:59 +0800</pubDate><description><![CDATA[数据存储的常用结构有：栈、队列、数组、链表和红黑树。
一：栈（stack）


栈：stack,又称堆栈，它是运算受限的线性表，其限制是仅允许在标的一端进行插入和删除操作，不允许在其 他任何位置进行添加、查找、删除等操作。


先进后出（即，存进去的元素，要在后它后面的元素依次取出后，才能取出该元素）。


栈的入口、出口的都是栈的顶端位置



压栈：就是存元素


弹栈：就是取元素


二：队...]]></description><category></category></item><item><title><![CDATA[Docker]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/97114621</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/97114621</guid><author>java_fight</author><pubDate>Fri, 26 Jul 2019 14:15:42 +0800</pubDate><description><![CDATA[Docker
Docker ：一种容器技术

从他的图标就可以看出，鲸鱼（货轮），集装箱（容器），用来运输  " 货物 " 。
容器里装的是什么呢？就是我们日常搭载的环境，也可以说每个容器里就装着一个操作系统（共享一个操作系统的内核）。相当于虚拟机软件中的一个镜像系统。

日常开发中我们都会用到一些软件：比如Redis ，MySql等，我们使用它就必须要安装配置他们的环境，但是这些步骤是很复杂繁琐...]]></description><category></category></item><item><title><![CDATA[TCP/UDP 之 webSocket]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/95481110</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/95481110</guid><author>java_fight</author><pubDate>Thu, 11 Jul 2019 17:24:16 +0800</pubDate><description><![CDATA[1.  TCP协议：控制传输协议
特点：面向有链接，所有问题都要建立连接，数据安全，完整，三次握手后建立连接后才可以数据传输
TCP协议传输的客户端
package ClientAndServer_TCP;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.ut...]]></description><category></category></item><item><title><![CDATA[内部类]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/93080649</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/93080649</guid><author>java_fight</author><pubDate>Thu, 20 Jun 2019 21:04:40 +0800</pubDate><description><![CDATA[什么是内部类
将一个类A定义在另一个类B里面，里面的那个类A就称为内部类，B则称为外部类。
在描述事物时，若一个事物内部还包含其他事物，就可以使用内部类这种结构。
例如：Body类中包含着Hreat类,这个Hreat类就可以使用内部类来描述。（来一幅很形象的图吧）

代码举例
class Body{       //外部类

		class Hreat{    //内部类
		}
}

访问特点
...]]></description><category></category></item><item><title><![CDATA[java多线程的创建]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/91350366</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/91350366</guid><author>java_fight</author><pubDate>Sun, 09 Jun 2019 09:09:45 +0800</pubDate><description><![CDATA[说多线程之前先说一下线程与进程的区别吧
**进程：**是指一个内存中运行的应用程序，每个进程都有一个独立的内存空间，一个应用程序可以同时运行多个进程；进程也是程序的一次执行过程，是系统运行程序的基本单位；系统运行一个程序即是一个进程从创建、运行到消亡的过程。（如图这就是进程，以及他们所占的内存空间）

线程：线程是进程中的一个执行单元，负责当前进程中程序的执行，一个进程中至少有一个线程。一个进程中...]]></description><category></category></item><item><title><![CDATA[反射（框架的灵魂）]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/90906645</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/90906645</guid><author>java_fight</author><pubDate>Wed, 05 Jun 2019 17:55:46 +0800</pubDate><description><![CDATA[什么是反射：
反射就是将类的各个组成部分封装为其他对象，这就是反射机制。
我们在编码时定义的类中包括：成员变量，各种方法，构造方法等信息，利用反射技术可以对这个类进行全面的剖析，将这个类的各个组成部分封装为其他的对象。
获取Class对象的方式

Class.forName(“全类名”)：将字节码文件加载进内存，返回Class对象
类名.class：通过类名的属性class获取
对象.getCla...]]></description><category></category></item><item><title><![CDATA[javaWeb的三层架构图]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/90769590</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/90769590</guid><author>java_fight</author><pubDate>Tue, 04 Jun 2019 15:22:19 +0800</pubDate><description><![CDATA[用查询用户信息来做一个例子（原理图）


]]></description><category></category></item><item><title><![CDATA[java快速排序 （任何人都能看懂的快速排序）]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/90765881</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/90765881</guid><author>java_fight</author><pubDate>Tue, 04 Jun 2019 11:29:49 +0800</pubDate><description><![CDATA[快速排序
如果有人问我什么是快速排序，第一反应就是将乱序的数从小到大排列好，也可以是从大到小。好像其他的也说不出什么了，还有一个就是简称"快排"。
先说一说快排的基本思想
1.先从数列中取出一个数作为基准数（简单起见就选第一个数）
2.分区过程：将比这个数大的数全放到他的右边，比他小的数全放到他的左边（分治）
3.再对左右两边的区重复第一步和第二部操作，直到各区间只有一个数（递归）
简单来说就是：...]]></description><category></category></item><item><title><![CDATA[String类和StringBuilder类的原理 以及 比较]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/90748397</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/90748397</guid><author>java_fight</author><pubDate>Mon, 03 Jun 2019 10:44:17 +0800</pubDate><description><![CDATA[StringBuilder类和String类的区别:
String类的对象内容不可改变，所以每当进行字符串拼接时，总是会在内存中创建一个新的对象，所以经常改变内容的字符串最好不要用String，因为每次生成对象都会对系统性能产生影响。
StringBuilder又称为可变字符序列，它是一个类似于String的字符串缓冲区，通过某些方法调用可以改变该序列的长度和内容。即它是一个容器，容器中可以装很多...]]></description><category></category></item><item><title><![CDATA[Object类equals方法与“ == ”]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/90746998</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/90746998</guid><author>java_fight</author><pubDate>Mon, 03 Jun 2019 09:24:14 +0800</pubDate><description><![CDATA[闲话不说直接上例子:
（“ == ” 和 equals 返回的均为布尔类型）
例一：
String s1 = new String("abc");
String s2 = "abc";
System.out.println(s1 == s2);        	// 打印false
System.out.println(s1.equals(s2));     	// 打印true

例二：
Str...]]></description><category></category></item><item><title><![CDATA[数值类型乘除的优化位运算原理]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/90745447</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/90745447</guid><author>java_fight</author><pubDate>Sun, 02 Jun 2019 23:42:00 +0800</pubDate><description><![CDATA[首先说一下数值类型的乘积
例如：a  =  256 * 100  原理就是将256加100次以后得出结果。
下面说一下位运算的原理：
100 = 64 + 32 + 4  =  26  +  25  + 22
a = 256 *  26 + 256 * 25  + 256 * 22 =  (256&lt;&lt;6)+(256&lt;&lt;5)+(256&lt;&lt;2)
内容中出现的  “&...]]></description><category></category></item><item><title><![CDATA[数组存储压缩原理]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/90745036</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/90745036</guid><author>java_fight</author><pubDate>Sun, 02 Jun 2019 23:02:46 +0800</pubDate><description><![CDATA[例如某个数组的内容为：
1 1 1 1 1 3 3 3 3 5 1 1 1 1 7 7 7 7 7 2 3 1 1 1 1 3 3 3 3 3 9
可以看出数组内容中有许多连续相同的字符
此时我们可以：
使 a = “1 1 1 1”
b = "3 3 3 3 "
c = “7 7 7 7 7”
压缩后的数组变为：
a 1 b 5 a c 2 3 a b 3 9
比之前的超长位数少了好多，节省了内...]]></description><category></category></item><item><title><![CDATA[java字符串小知识]]></title><link>https://blog.youkuaiyun.com/java_fight/article/details/90742919</link><guid>https://blog.youkuaiyun.com/java_fight/article/details/90742919</guid><author>java_fight</author><pubDate>Sun, 02 Jun 2019 20:19:43 +0800</pubDate><description><![CDATA[不可变字符串
字符串的存储是数组形式，地址连续不可变




S
t
r
i
n
g
其他应用



例如：一个字符串存储空间为012345 存储着String，  后边的接连的空间被其他程序所占用 ，所以其值是不可被改变的，可变的只是其引用 也就是改变其指向。
equals和"=="
==判断是否是同一个存储地址：返回布尔类型
Equals判断字符串是否相等  ：返回布尔类型
字符串常量池中 有...]]></description><category></category></item></channel></rss>