<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Zerohuan的专栏]]></title><description><![CDATA[我的新博客：http://blog.zerohuan.com/，PS：难道只有我一个人觉得优快云卡的不行。。。]]></description><link>https://blog.youkuaiyun.com/Zerohuan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Zerohuan]]></copyright><item><title><![CDATA[TCP/IP学习笔记（三）——IP，ARP，RARP]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/51182498</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/51182498</guid><author>Zerohuan</author><pubDate>Mon, 18 Apr 2016 20:26:48 +0800</pubDate><description><![CDATA[参考文献： 
  * 《TCP/IP详解 卷一：协议》；
1. IP网际协议1.1 特点：不可靠：不能保证IP数据报能成功到达目的地； 
无连接：不维护任何关于后续数据报状态信息，即没有握手的环节，比如UDP也是无连接的；1.2 IP首部普通IPv4首部长度20字节（除非含有选项字段）；网络字节序：Big-endian；服务类性（TOS）：共8位，实际有效位4bit，最小时延，最大吞吐量，最高可靠性]]></description><category></category></item><item><title><![CDATA[图论复习笔记]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/51134757</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/51134757</guid><author>Zerohuan</author><pubDate>Tue, 12 Apr 2016 16:36:44 +0800</pubDate><description><![CDATA[补充小细节： 
  a. 什么样的图可以称为“稀疏”：|E|=O(|V|)，也就是说平均每个顶点的邻接顶点数量是常数；
1. 基本定义图（Graph）的定义：G=(V,E)由顶点(vertex)集V和边(edge)集E组成。 
边（弧arc）是一个点对(v, w)，其中v,w∈V； 
有向：点对是有序的，那么图有就有向的； 
邻接：v和w邻接当且仅当(v,w)∈E，而(w,v)是指w和v邻接； 
简]]></description><category></category></item><item><title><![CDATA[对象拷贝类PropertyUtils，BeanUtils，BeanCopier的技术沉淀]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/51056658</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/51056658</guid><author>Zerohuan</author><pubDate>Mon, 04 Apr 2016 15:09:08 +0800</pubDate><description><![CDATA[转自：http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp37



对象拷贝类PropertyUtils，BeanUtils，BeanCopier的技术沉淀

性能对比： BeanCopier > PropertyUtils > BeanUtils. 其中BeanCopier的性能高出另外两个100数量级。

Be]]></description><category></category></item><item><title><![CDATA[2016暑期实习面试小记]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/51013106</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/51013106</guid><author>Zerohuan</author><pubDate>Wed, 30 Mar 2016 11:50:31 +0800</pubDate><description><![CDATA[楔子隔了好长时间没写博客了，这一段时间基本忙于实习以及实验室的事情。从2月底到3月18日收到阿里的offer短短十几天，经历了不少面试，这里把主要的经历简单的记录总结一下，也为接下来的学习和工作做一个铺垫。阿里，蚂蚁金服，Java研发一面 
3月1日在找到小百合有校友内推投递简历，第二天一面就到了。整体来说不是很难。 
开始同样是自我介绍，结尾我提到了之前做的项目，面试官（一个很nice的JJ）就让]]></description><category></category></item><item><title><![CDATA[Servlet深入学习，规范，理解和实现（中）——深入理解Tomcat（一）]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/50752635</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/50752635</guid><author>Zerohuan</author><pubDate>Fri, 26 Feb 2016 21:45:31 +0800</pubDate><description><![CDATA[心得：在写这篇博客之前，我大致阅读一些关于Tomcat的书籍和博客等资料，有些资料由于时间的关系，讲解的Tomcat版本太老，有些资料可以很好的说明Tomcat整理结构和设计思想但是很多重要的问题因为篇幅的原因不能很好的说明，还有写资料很可以说明一些类和API但不能结合实际问题说明实际运行中的流程和设计思路等等。当然我并不是说它们不好，只是不同的人的看到同一个事物和问题的角度和思路可能不同，出发点不]]></description><category></category></item><item><title><![CDATA[Servlet深入学习，规范，理解和实现（上）]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/50533966</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/50533966</guid><author>Zerohuan</author><pubDate>Sun, 17 Jan 2016 22:51:48 +0800</pubDate><description><![CDATA[虽然现在是实际工作中很少直接使用Servlet，但了解Servlet规范中对不同组件（Servlet，Filter，Listener等等）以及Servlet容器的实现对于基于Servlet的Java EE应用的理解也是大有益处的。因此基于上面3个资料的学习所得以及我自己阅读Tomcat 8相关部分源码的一些收获在这里总结记录一下。]]></description><category></category></item><item><title><![CDATA[Servlet & Spring对Multipart数据请求的支持]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/50511816</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/50511816</guid><author>Zerohuan</author><pubDate>Wed, 13 Jan 2016 16:50:27 +0800</pubDate><description><![CDATA[参考资料： 
（1）RFC 1867 
（2）Java Servlet Specification 3.1； 
（3）《Java Web高级编程》；1. Multipart FormDataMultipart是HTML中表单文件上传的基本格式，一般通过如下方法可以通过HTTP上传文件：    <form action="_URL_" method="POST" enctype="multipart/]]></description><category></category></item><item><title><![CDATA[JVM（一）——GC，内存分配和垃圾回收]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/50451269</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/50451269</guid><author>Zerohuan</author><pubDate>Sun, 03 Jan 2016 15:54:05 +0800</pubDate><description><![CDATA[心得：Java中垃圾回收和内存可以实现高度的自动化，栈帧可以由JVM自动分配和回收，局部变量表和操作数栈也可以在编译时就确定好，堆中的内存分配和回收才是JVM关注的重点，JVM实现大多采用可达性分析来标记存活对象，什么时候标记？让用户线程主动跑到那些安全的地方（引用关系不变的时候，SafePoint和Safe Region），再由GC收集器来标记进行处理。不同的垃圾收集器甚至可以决定堆的内存布局，比]]></description><category></category></item><item><title><![CDATA[数据结构的理解和应用——红黑树]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/50438883</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/50438883</guid><author>Zerohuan</author><pubDate>Thu, 31 Dec 2015 00:18:30 +0800</pubDate><description><![CDATA[心得：看了《数据结构和算法分析》，《算法导论》以及《算法》上关于红黑树的章节，总算把红黑树的实现和操作给理解了一边。虽然插入和删除的情况有些复杂，因为1,2年前看过一次，后来就忘了，感觉还是当时没有真正理解。因此记住插入和删除的形式是不行的，关键是结合红黑树的5个特点，理解插入和删除中循环不变式的以及终止条件。这样才能知道为什么要弄一个“一重额外的黑色”才能知道为什么红黑树一次更新可以在O(1)中完]]></description><category></category></item><item><title><![CDATA[Java基础知识总结（八）——反射]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/50438859</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/50438859</guid><author>Zerohuan</author><pubDate>Thu, 31 Dec 2015 00:17:15 +0800</pubDate><description><![CDATA[心得：每个对象都对应自己类的Class对象，这个Class对象是这个类的类新信息的对外入口，通过这个Class对象我们可以从方法区知道这个类有哪些域，构造器，方法，结合具体的对象可以获得域在运行时的值，还可以基于Method调用（查找方法表调用？）。反射的意义在于运行时的扩展能力。PS： 
（1）在HotSpot（JDK 1.7）中Class对象是放在方法区中的。 
（2）自己动手写一个工具输入类名]]></description><category></category></item><item><title><![CDATA[Java基础知识总结（七）——泛型]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/50438828</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/50438828</guid><author>Zerohuan</author><pubDate>Thu, 31 Dec 2015 00:15:41 +0800</pubDate><description><![CDATA[心得： 
我觉得Java泛型的意义在于在我们使用父类引用操作子类时（擦除），让编译器和JVM来代替我们进行必要的类型检查和转换（checkcast指令，桥方法，signature这些都是编译器和JVM提供的额外帮助）。问题的关键在于签名实在调用者的方法表属性中的；而描述符是在自己类型信息中的。对象本身不知道自己的泛型参数具体是什么。]]></description><category></category></item><item><title><![CDATA[Java基础知识总结（五）——安全]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/50438581</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/50438581</guid><author>Zerohuan</author><pubDate>Thu, 31 Dec 2015 00:12:51 +0800</pubDate><description><![CDATA[小结：系统的整理了下有关的Java的安全的三个方面：语言特性，安全管理器（保护域），签名和加密算法的应用。在整理时，我觉得基于第三方的数字签名认证的方式充分体现了解耦的思想，这和集群中中心式拓扑结构的方式很像，将复杂耦合几种在中介上（中介者模式和迪米特法则），设计模式这个东西只要仔细理解，灵活运用才可以举一反三。1. 概括Java语言的安全由三个方面共同进行保证：（1）语言特性：类，域，方法的访问控]]></description><category></category></item><item><title><![CDATA[Java基础知识总结（四）——异常与异常处理表]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/50438473</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/50438473</guid><author>Zerohuan</author><pubDate>Thu, 31 Dec 2015 00:11:02 +0800</pubDate><description><![CDATA[要想弄清楚异常的一些知识点，比如try/finally的return，异常的丢失等等，光记住“形式”是不够的，不从字节码异常表的层面分析是很难真正的将一些问题弄明白。]]></description><category></category></item><item><title><![CDATA[Java 8集合框架源码学习——HashMap]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/50351357</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/50351357</guid><author>Zerohuan</author><pubDate>Fri, 18 Dec 2015 13:56:00 +0800</pubDate><description><![CDATA[心得：相较于JDK 1.7，Java 8中的HashMap有了较大的性能提升。修改了hash和resize方式，增加了红黑树的支持。学习参考资料： 
（1）疫苗：Java HashMap的死循环；1. HashMap要点（1）结构特点：Java中的HashMap是基于“数组+链表”的方式（链表法解决冲突），到了Java 8，应该是“数组+链表/红黑树”的方式。 
（2）线程安全：HashMap是不安]]></description><category></category></item><item><title><![CDATA[Java中的final参数/变量+匿名内部类的字节码分析，以及Java 8中的使用]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/50074377</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/50074377</guid><author>Zerohuan</author><pubDate>Fri, 27 Nov 2015 20:53:30 +0800</pubDate><description><![CDATA[在Java 8之前一个常识就是如果要在方法中定义一个匿名内部类并使用该方法内的局部变量（包括参数），需要使用final关键字修饰。网上也有很多对这种机制的解释和说明，但是大部分都是一种抽象的认识。如果能够分析一下字节码，这个问题其实很清楚。


显然的一个事实是局部变量（称为变量a）是保存在栈帧的局部变量表中的（引用或基本类型），这里把定义匿名内部类的方法称为方法A，匿名内部类的中使用这个局]]></description><category></category></item><item><title><![CDATA[Java中的享元模式——不可变类的valueOf]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/50063039</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/50063039</guid><author>Zerohuan</author><pubDate>Fri, 27 Nov 2015 14:12:20 +0800</pubDate><description><![CDATA[1. 享元模式是什么：
定义：运用共享技术有效地支持大量的细粒度的对象。
这个定义似乎有些抽象。我的理解就是在大量的对象中将那些重复出现，值相对稳定的属性集合抽象出来封装到共享对象从而减少重复对象的创建。


既然是可共享的状态，我觉得的很重要的一个特点就是不可变性，因为它被很多对象所引用，不可变性才能保证安全的使用（包括线程安全），Java中String，Integer，Double等]]></description><category></category></item><item><title><![CDATA[Java中的命令模式——Thread，ThreadPoolExecutor和Runnable]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/50039005</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/50039005</guid><author>Zerohuan</author><pubDate>Wed, 25 Nov 2015 17:37:47 +0800</pubDate><description><![CDATA[1. 命令模式是什么：
定义理解：命令模式最大的特性就在于将请求封装成抽象，也就是“命令”，并可以提供命令队列（可选的），支持排队、撤销等功能。


优点：
（1）将请求抽象，可以动态的扩展请求的类型；
（2）将调用代码和接收执行的代码分离开来，用“命令”这个第三方进行解耦；
（3）可以方便对对命令进行管理：提供队列，日志，撤销，重做等等额外的功能；


缺点：
将命令抽象出]]></description><category></category></item><item><title><![CDATA[关于Java类初始化和实例化中的2个“雷区”]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/50015029</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/50015029</guid><author>Zerohuan</author><pubDate>Tue, 24 Nov 2015 19:36:46 +0800</pubDate><description><![CDATA[在考虑类初始化时，我们都知道进行子类初始化时，如果父类没有初始化要先初始化子类。然而事情并没有一句话这么简单。
首先看看Java中初始化触发的条件：
（1）在使用new实例化对象，访问静态数据和方法时，也就是遇到指令：new，getstatic/putstatic和invokestatic时；
（2）使用反射对类进行调用时；
（3）当初始化一个类时，父类如果没有进行初始化，先触发父类的初始]]></description><category></category></item><item><title><![CDATA[Java基础知识总结（三）——类和接口]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/49850633</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/49850633</guid><author>Zerohuan</author><pubDate>Sun, 15 Nov 2015 21:41:10 +0800</pubDate><description><![CDATA[1. 访问控制权限：
1.1 访问控制权限的种类：
私有：private，default-private（包访问权限）；
保护：protected；
公有：public；
1.2 为什么要访问控制权限：
信息隐藏：私有权限可以增强内聚性，便于之后的版本更新；公有权限说明对外界的承诺，必须兼容。
1.3 重要概念：
编译单元：一个Java源代码文件，最多顶层可以有一个public类，]]></description><category></category></item><item><title><![CDATA[Java中的设计模式应用（23种）]]></title><link>https://blog.youkuaiyun.com/Zerohuan/article/details/49850759</link><guid>https://blog.youkuaiyun.com/Zerohuan/article/details/49850759</guid><author>Zerohuan</author><pubDate>Sun, 15 Nov 2015 18:52:52 +0800</pubDate><description><![CDATA[你可以通过Wikipedia对设计模式有个整体上的理解。Wikipedia上也提高了GoF所涉及到的模式。我这里总结一下，并且尽可能指出在JavaSE与JavaEE的API中是如何运用这些模式的。



1.创建型设计模式

抽象工厂模式


特点：创建方法返回一个可以用来创建抽象类或接口的工厂类。

javax.xml.parsers.DocumentBuilderFact]]></description><category></category></item></channel></rss>