<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lzh_86的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lzh_86</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lzh_86]]></copyright><item><title><![CDATA[Git命令]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/100189338</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/100189338</guid><author>lzh_86</author><pubDate>Sun, 01 Sep 2019 22:58:18 +0800</pubDate><description><![CDATA[1. gitstash

把本地修改过的代码 暂存在栈中

2. git pull

更新远端服务器代码到本地

3. git stash pop

将栈中的代码合并到代码中

4.git add .

提交全部工作区代码到暂存区

5. git commit

代码从暂存区提交到本地仓库

6. git push

文件从本地仓库提交到远程仓库



git 撤回提交远端的版本
1...]]></description><category></category></item><item><title><![CDATA[动态代理]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/90415240</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/90415240</guid><author>lzh_86</author><pubDate>Tue, 21 May 2019 21:00:09 +0800</pubDate><description><![CDATA[反射最大的作用就在于我们可以不在编译时知道某个对象的类型，而在运行时得到。

反射 一般使用 Class.forName()方法;

动态代理就是实现InvocationHandler 接口；通过reflect.Proxy的类的newProxyInstance方法就可以得到这个接口的实例

实现动态代理的方式有很多,比如JDK自身提供的动态代理,就是主要利用反射机制.还有其他的实现方式,比如利用传...]]></description><category></category></item><item><title><![CDATA[java 多线程]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/90313280</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/90313280</guid><author>lzh_86</author><pubDate>Sat, 18 May 2019 11:57:34 +0800</pubDate><description><![CDATA[Java通过Executors提供四种线程池

(1) newCachedThreadPool

创建一个可缓存的线程池。如果线程池的大小超过了处理任务所需要的线程，那么就会回收部分空闲（60秒不执行任务）的线程，当任务数增加时，此线程池又可以智能的添加新线程来处理任务。此线程池不会对线程池大小做限制，线程池大小完全依赖于操作系统（或者说JVM）能够创建的最大线程大小。

(2) newFixed...]]></description><category></category></item><item><title><![CDATA[MySQL语句执行顺序]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/90269149</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/90269149</guid><author>lzh_86</author><pubDate>Thu, 16 May 2019 21:17:15 +0800</pubDate><description><![CDATA[1.select a,b,c from table where x = 1; ==》》 where条件的 变量x 必须在表中存在；where是针对表做操作。
2.select a, b, c AS x having x = 1; ==》》 having 后的变量 x 可以是表中的列，也可以是别名，having是对查询结果集进行再筛选。这点区别于where，如果where使用别名，则会报"unkn...]]></description><category></category></item><item><title><![CDATA[拦截器和过滤器]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/90268499</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/90268499</guid><author>lzh_86</author><pubDate>Thu, 16 May 2019 17:48:36 +0800</pubDate><description><![CDATA[- Filter过滤器：拦截web访问url地址。 这个比拦截器范围广，过滤器是大集合，拦截器是大集合中的小集合。而且任何url是先经过过滤器后才进入拦截器的。
- Interceptor拦截器：拦截url以action结尾或者没有后缀的,没有后缀拦截器会认为是.action结尾。 如：struts2拦截器、spring拦截器
- Spring AOP拦截器：只能拦截Spring管理Bean的访问...]]></description><category></category></item><item><title><![CDATA[mybatis 中 foreach 批量操作]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/90268218</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/90268218</guid><author>lzh_86</author><pubDate>Thu, 16 May 2019 17:34:22 +0800</pubDate><description><![CDATA[mybatis 中 foreach collection的三种用法

foreach的主要用在构建in条件中，它可以在SQL语句中进行迭代一个集合。

foreach元素的属性主要有 item，index，collection，open，separator，close。

  item表示集合中每一个元素进行迭代时的别名，
  index指 定一个名字，用于表示在迭代过程中，每次迭代到的位...]]></description><category></category></item><item><title><![CDATA[Linux日志查看常用操作]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/90268077</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/90268077</guid><author>lzh_86</author><pubDate>Thu, 16 May 2019 17:31:58 +0800</pubDate><description><![CDATA[Linux 日志查询：
先必须了解两个最基本的命令:

tail -n 10 test.log  查询日志尾部最后10行的日志;

tail -n +10 test.log  查询10行之后的所有日志;

head -n 10 test.log  查询日志文件中的头10行日志;

head -n -10 test.log  查询日志文件除了最后10行的其他所有日志;



场...]]></description><category></category></item><item><title><![CDATA[lambda 表达式去重、查找元素、分组、过滤]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/90267813</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/90267813</guid><author>lzh_86</author><pubDate>Thu, 16 May 2019 17:27:48 +0800</pubDate><description><![CDATA[1. lambda 表达式根据对象某个属性进行去重
List&lt;ReparationOperation&gt; insuranceReparationsMoneyList = reparationOperationsList.stream().collect(
          Collectors.collectingAndThen(
       ...]]></description><category></category></item><item><title><![CDATA[full GC触发的条件]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/90267777</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/90267777</guid><author>lzh_86</author><pubDate>Thu, 16 May 2019 17:18:40 +0800</pubDate><description><![CDATA[full GC触发的条件
除直接调用System.gc外，触发Full GC执行的情况有如下四种。
1. 旧生代空间不足
旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象，当执行Full GC后空间仍然不足，则抛出如下错误：
java.lang.OutOfMemoryError: Java heap space
为避免以上两种状况引起的FullGC，调优时应尽量做到让对象...]]></description><category></category></item><item><title><![CDATA[json基本知识以及常用方法]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/90267227</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/90267227</guid><author>lzh_86</author><pubDate>Thu, 16 May 2019 17:05:38 +0800</pubDate><description><![CDATA[一、JSONObject的数据是用 { } 来表示的，

   例如：  { "id" : "123", "courseID" : "huangt-test", "title" : "提交作业", "content" : null } 

   而JSONArray，顾名思义是由JSONObject构成的数组，用 [ { } , { } , ...... , { } ]...]]></description><category></category></item><item><title><![CDATA[java中排序算法]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/90267150</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/90267150</guid><author>lzh_86</author><pubDate>Thu, 16 May 2019 16:58:31 +0800</pubDate><description><![CDATA[// 归并排序  需要占用额外空间
   public static int[] sort(int[] a,int low,int high){
       int mid = (low+high)/2;
       if(low&lt;high){
           sort(a,low,mid);
           sort(a,mid+1,high);
           ...]]></description><category></category></item><item><title><![CDATA[java解释执行和编译执行]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/90267082</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/90267082</guid><author>lzh_86</author><pubDate>Thu, 16 May 2019 16:55:14 +0800</pubDate><description><![CDATA[解释执行：将编译好的字节码一行一行地翻译为机器码执行。

编译执行：以方法为单位，将字节码一次性翻译为机器码后执行。


前者的优势在于不用等待，后者则在实际运行当中效率更高。
为了满足不同的场景，HotSpot虚拟机内置了多个即时编译器：C1,C2与Graal。

C1：即Client编译器，面向对启动性能有要求的客户端GUI程序，采用的优化手段比较简单，因此编译的时间较短。

C2：即Ser...]]></description><category></category></item><item><title><![CDATA[java设计模式——建造者模式]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/81842569</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/81842569</guid><author>lzh_86</author><pubDate>Sun, 19 Aug 2018 22:17:12 +0800</pubDate><description><![CDATA[StringBuilder使用了建造者模式



首先我们要了解建造者模式的构成。



将一个复杂对象的构造与它的表示分离，使同样的构建过程可以创建不同的表示，这样的设计模式被称为建造者模式。

 


public class House {
	private String floor;
	private String wall;
	private String housetop;
	publ...]]></description><category></category></item><item><title><![CDATA[java设计模式——代理模式]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/81782230</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/81782230</guid><author>lzh_86</author><pubDate>Fri, 17 Aug 2018 20:15:36 +0800</pubDate><description><![CDATA[代理模式UML图



从UML图中，可以看出代理类与真正实现的类都是继承了抽象的主题类，这样的好处在于代理类可以与实际的类有相同的方法，可以保证客户端使用的透明性。 

静态代理：


//抽象主题角色     真实主题与代理主题的共同接口
public interface Subject {
	public void sailBook();
}



//真实主题角色   定义了代理角色所代表...]]></description><category></category></item><item><title><![CDATA[java设计模式——单例模式]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/81712074</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/81712074</guid><author>lzh_86</author><pubDate>Thu, 16 Aug 2018 21:23:51 +0800</pubDate><description><![CDATA[        单例模式：类只能有一个实例。

　　类的特点：1、私有构造器；2、内部构造实例对象；3、对外提供获取唯一实例的public方法。

       饿汉式单例特点：线程安全，不能延时加载


public class Person {
	//类初始化的时候直接实例化  多线程中也可保证
	public static final Person person = new Person()...]]></description><category></category></item><item><title><![CDATA[java设计模式——备忘录模式]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/81675458</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/81675458</guid><author>lzh_86</author><pubDate>Tue, 14 Aug 2018 22:08:58 +0800</pubDate><description><![CDATA[       备忘录模式：又叫做快照模式，指在不破坏封装性的前提下，获取到一个对象的内部状态，并在对象之外记录或保存这个状态。在有需要的时候可将该对象恢复到原先保存的状态。我们相当于把对象原始状备份保留，所以叫备忘录模式。
模式 角色对象组成：
1.发起者对象：负责创建一个备忘录来记录当前对象的内部状态，并可使用备忘录恢复内部状态。
2.备忘录对象：负责存储发起者对象的内部状态，并防止其他对象访问...]]></description><category></category></item><item><title><![CDATA[什么是内存溢出以及java中内存泄漏5种情况的总结]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/81568645</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/81568645</guid><author>lzh_86</author><pubDate>Fri, 10 Aug 2018 19:28:09 +0800</pubDate><description><![CDATA[内存泄漏定义（memory leak）：一个不再被程序使用的对象或变量还在内存中占有存储空间。

     一次内存泄漏似乎不会有大的影响，但内存泄漏堆积后的后果就是内存溢出。内存溢出 out of memory :指程序申请内存时，没有足够的内存供申请者使用，或者说，给了你一块存储int类型数据的存储空间，但是你却存储long类型的数据，那么结果就是内存不够用，此时就会报错OOM,即所谓的内存溢...]]></description><category></category></item><item><title><![CDATA[JVM、栈(stack)、堆(heap)和静态区(static area)以及内存溢出的认识]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/81415309</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/81415309</guid><author>lzh_86</author><pubDate>Sun, 05 Aug 2018 20:24:33 +0800</pubDate><description><![CDATA[一、认识JVM

1. 什么是JVM？

JVM是Java Virtual Machine（Java虚拟机）的缩写，JVM是一种用于计算设备的规范，它是一个虚构出来的计算机，是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息，使Java程序只需生成在Java虚拟机上...]]></description><category></category></item><item><title><![CDATA[mybatis @Select注解中当参数为空则不添加该参数的判断]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/80918613</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/80918613</guid><author>lzh_86</author><pubDate>Wed, 04 Jul 2018 21:15:22 +0800</pubDate><description><![CDATA[@Select(&quot;select * from &quot;+DEPTTABLE+&quot; &quot;)
	List&amp;lt;Dept&amp;gt; selectAllDept();在mybatis中不用xml文件的形式，selectDept方法执行的就是上面的Sql语句，如果是遇到动态的语句就需要用到下面的形式。1.用Provider去实现SQL拼接：@SelectProvider(type=DeptDynaSqlProvide...]]></description><category></category></item><item><title><![CDATA[（转）Servlet3.0下@WebFilter注解配置Filter]]></title><link>https://blog.youkuaiyun.com/lzh_86/article/details/80808384</link><guid>https://blog.youkuaiyun.com/lzh_86/article/details/80808384</guid><author>lzh_86</author><pubDate>Wed, 04 Jul 2018 21:05:14 +0800</pubDate><description><![CDATA[Servlet3.0下@WebFilter注解配置FilterFilter（过滤器）主要对请求到达前进行处理，也可以在请求结束后进行处理，类似于链式。一个请求可以被多个过滤器拦截到，会依次进入各个Filter中，放行后直至进入Servlet，Servlet处理请求结束后，回到各个Filter继续执行后面的代码，先执行的Filter后执行完。常用到的地方：用户权限过滤记录日志字符编码处理配置Filt...]]></description><category></category></item></channel></rss>