<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[小虾记事]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cq1982</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cq1982]]></copyright><item><title><![CDATA[GoPacket研究——reassemblydump结构体]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/118328418</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/118328418</guid><author>cq1982</author><pubDate>Mon, 05 Jul 2021 13:09:59 +0800</pubDate><description><![CDATA[一、统计信息


var stats struct {
	ipdefrag            int
	missedBytes         int
	pkt                 int
	sz                  int
	totalsz             int
	rejectFsm           int
	rejectOpt           int
	rejectConnFsm       int
	reassembled         int
	ou]]></description><category></category></item><item><title><![CDATA[HTTPie：一个不错的 HTTP 命令行客户端]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/50008777</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/50008777</guid><author>cq1982</author><pubDate>Tue, 24 Nov 2015 10:06:22 +0800</pubDate><description><![CDATA[HTTPie （读aych-tee-tee-pie）是一个 HTTP 的命令行客户端。其目标是让 CLI 和 web 服务之间的交互尽可能的人性化。
其有特点如下：
直观的语法
格式化和色彩化的终端输出
内置 JSON 支持
支持上传表单和文件
HTTPS、代理和认证
任意请求数据
自定义头部
持久性会话
类 Wget 下载
支持 Python 2.6, 2.7 和 3.x
支持 Linux,]]></description><category></category></item><item><title><![CDATA[java forEach实现原理]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/49121879</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/49121879</guid><author>cq1982</author><pubDate>Wed, 14 Oct 2015 10:44:36 +0800</pubDate><description><![CDATA[java.util.List实现了java.lang.Iterable接口.
jdk api文档中是这样描述Iterable接口的：实现这个接口允许对象成为 "foreach" 语句的目标。不过咋一看Iterable接口并没啥特别之处，只是定义了一个迭代器而已。


[java] 
view plaincopy


public interface Iterable {      ]]></description><category></category></item><item><title><![CDATA[Python中setuptools的简介]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/48002395</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/48002395</guid><author>cq1982</author><pubDate>Wed, 26 Aug 2015 13:57:02 +0800</pubDate><description><![CDATA[Python中setuptools的简介
http://www.juziblog.com/?p=365001
经常接触Python的同学可能会注意到，当需要安装第三方python包时，可能会用到easy_install命令。easy_install是由PEAK(Python
 Enterprise Application Kit)开发的setuptools包里带的一个命令，所以使用easy_]]></description><category></category></item><item><title><![CDATA[[转]Python、Django以及PyCharm安装心得]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/47728521</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/47728521</guid><author>cq1982</author><pubDate>Mon, 17 Aug 2015 17:56:12 +0800</pubDate><description><![CDATA[第一步：安装python（最好安装2.x的版本，3.x的版本目前还不支持Django）
 
 
 
我装的是python2.7，下载网址：
 
http://www.python.org/getit/releases/2.7/
 
安装过程比较简单，略了
 
 
 
第二步：安装PostgreSQL和Psycopy
 
 
 
Django支持的数据库有Postgr]]></description><category></category></item><item><title><![CDATA[5分钟了解Mockito]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/46806109</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/46806109</guid><author>cq1982</author><pubDate>Wed, 08 Jul 2015 17:21:28 +0800</pubDate><description><![CDATA[一、什么是mock测试，什么是mock对象？
 
先来看看下面这个示例：

从上图可以看出如果我们要对A进行测试，那么就要先把整个依赖树构建出来，也就是BCDE的实例。
 
一种替代方案就是使用mocks

从图中可以清晰的看出
mock对象就是在调试期间用来作为真实对象的替代品。
mock测试就是在测试过程中，对那些不容易构建的对象用一个虚拟对象来代替测试的方法就叫mock测]]></description><category></category></item><item><title><![CDATA[一个牛x的mock框架--Powermock]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/46806097</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/46806097</guid><author>cq1982</author><pubDate>Wed, 08 Jul 2015 17:20:56 +0800</pubDate><description><![CDATA[首先，官网：
http://code.google.com/p/powermock/
先做好心理准备，这个开源工具的官网基本上没啥文字说明。但是可以下载源代码，里面有一些示例测试用例。
 
当你的领导对你说，UT的代码覆盖率要达到100%！！
你会觉得这人疯了。
但是现在有了powermock，100%就成为the goal you can reach!!!
powermock将以往]]></description><category></category></item><item><title><![CDATA[《深入理解Java虚拟机》学习小记一之自动内存管理机制(三)]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/46429327</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/46429327</guid><author>cq1982</author><pubDate>Tue, 09 Jun 2015 17:20:47 +0800</pubDate><description><![CDATA[目录[-]


概要
对象优先分配在Eden分配
大对象直接进入老年代
长期存活的对象进入老年代
动态对象年龄判定






概要

在Java技术体系中，自动内存管理最终可以归结为自动化地解决了两个问题：给对象分配内存以及回收分配给对象的内存。



本文主要探讨给对象分配内存这点事。对象的内存分配，往大的方向上讲，就是在堆上分配。但是也有一些情况会在栈]]></description><category></category></item><item><title><![CDATA[《深入理解Java虚拟机》学习小记一之自动内存管理机制(二)]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/46429305</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/46429305</guid><author>cq1982</author><pubDate>Tue, 09 Jun 2015 17:20:09 +0800</pubDate><description><![CDATA[目录[-]


1.概要
2.判断对象是否存活的算法
2.1引用计数算法
2.2根搜索算法
3.GC算法
3.1标记-清除（Mark-Sweep）算法
3.2复制（Copying）算法
3.3标记-整理（Mark-Compact）算法
3.4分代收集算法
3.5几种算法的优缺点
4.垃圾收集器
5.垃圾收集器的参数总结 6.关于GC的几点补充



1.概要
]]></description><category></category></item><item><title><![CDATA[Spring中使用Hessian暴露服务]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/46429285</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/46429285</guid><author>cq1982</author><pubDate>Tue, 09 Jun 2015 17:17:46 +0800</pubDate><description><![CDATA[Spring Framework中有对RMI,Hessian,Burlap,JAX-RPC,JAX-WS.JMS的服务支持,更方便的用于开发异构的服务系统,自身也有HTTPinvoker技术提供远端服务.
以下示例来自SpringFramework-doc文档, 我们先建立用于测试的实体、服务接口类：



public class Account implements Serializ]]></description><category></category></item><item><title><![CDATA[《深入理解Java虚拟机》学习小记一之自动内存管理机制(一)]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/46429291</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/46429291</guid><author>cq1982</author><pubDate>Tue, 09 Jun 2015 17:17:11 +0800</pubDate><description><![CDATA[目录[-]


Java内存区域与内存溢出异常
一、概要
二、运行时数据区域
2.1程序计数器
2.2虚拟机栈
2.3本地方法栈
2.4堆
2.5方法区
2.6运行时常量池
三、对象访问
四、OutOfMemoryError异常
4.1Java堆溢出
4.2虚拟机栈溢出
4.3 方法区溢出
4.4 运行时常量池溢出
五、小结




Java内存区域与]]></description><category></category></item><item><title><![CDATA[Spring HTTP Invoker 学习小记]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/46429269</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/46429269</guid><author>cq1982</author><pubDate>Tue, 09 Jun 2015 17:15:40 +0800</pubDate><description><![CDATA[Spring HTTP Invoker是spring框架中的一个远程调用模型，执行基于HTTP的远程调用，也就是说，可以通过防火墙，并使用java的序列化机制在网络间传递对象。客户端可以很轻松的像调用本地对象一样调用远程服务器上的对象，要注意的一点是，服务端、客户端都是使用Spring框架。下面通过一个例子，来
 讲解Spring HTTP Invoker的使用，这里使用的是 Spring2.5]]></description><category></category></item><item><title><![CDATA[Spring HTTP invoker简介]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/46429225</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/46429225</guid><author>cq1982</author><pubDate>Tue, 09 Jun 2015 17:13:35 +0800</pubDate><description><![CDATA[Spring HTTP invoker简介
Spring HTTP invoker是spring框架中的一个远程调用模型，执行基于HTTP的远程调用（意味着可以通过防火墙），并使用java的序列化机制在网络间传递对象。客户端可以很轻松的像调用本地对象一样调用远程服务器上的对象，这有点类似于webservice，但又不同于webservice，区别如下：




webservice
]]></description><category></category></item><item><title><![CDATA[Java @override报错的解决方法]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/46426685</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/46426685</guid><author>cq1982</author><pubDate>Tue, 09 Jun 2015 14:48:05 +0800</pubDate><description><![CDATA[有时候Java的Eclipse工程换一台电脑后编译总是@override报错，把@override去掉就好了，但不能从根本上解决问题，因为有时候有@override的地方超级多。

这是jdk的问题，@Override是JDK5就已经有了，但是不支持对接口的实现，认为这不是Override而报错。JDK6修正了这个Bug，无论是对父类的方法覆盖还是对接口的实现都可以加上@Override。]]></description><category></category></item><item><title><![CDATA[深入理解Java：注解（Annotation）--注解处理器]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/46422473</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/46422473</guid><author>cq1982</author><pubDate>Tue, 09 Jun 2015 09:36:52 +0800</pubDate><description><![CDATA[如果没有用来读取注解的方法和工作，那么注解也就不会比注释更有用处了。使用注解的过程中，很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API，以帮助程序员快速的构造自定义注解处理器。


注解处理器类库(java.lang.reflect.AnnotatedElement)：

　　Java使用Annotation接口来代表程序元素前面的注解，该接口是所有Anno]]></description><category></category></item><item><title><![CDATA[深入理解Java：注解（Annotation）基本概念]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/46422387</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/46422387</guid><author>cq1982</author><pubDate>Tue, 09 Jun 2015 09:28:23 +0800</pubDate><description><![CDATA[什么是注解（Annotation）：

　　Annotation（注解）就是Java提供了一种元程序中的元素关联任何信息和着任何元数据（metadata）的途径和方法。Annotion(注解)是一个接口，程序可以通过反射来获取指定程序元素的Annotion对象，然后通过Annotion对象来获取注解里面的元数据。

　　Annotation(注解)是JDK5.0及以后版本引入的。它可以用于]]></description><category></category></item><item><title><![CDATA[深入理解Java：注解（Annotation）自定义注解入门]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/46422339</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/46422339</guid><author>cq1982</author><pubDate>Tue, 09 Jun 2015 09:23:45 +0800</pubDate><description><![CDATA[要深入学习注解，我们就必须能定义自己的注解，并使用注解，在定义自己的注解之前，我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。


元注解：

　　元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型，它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解：
　　　　1.@Target,
　　　　]]></description><category></category></item><item><title><![CDATA[分布式服务框架 Zookeeper -- 管理分布式环境中的数据]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/46415299</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/46415299</guid><author>cq1982</author><pubDate>Mon, 08 Jun 2015 17:15:12 +0800</pubDate><description><![CDATA[Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目，它主要是用来解决分布式应用中经常遇到的一些数据管理问题，如：统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。本文将从使用者角度详细介绍
 Zookeeper 的安装和配置文件中各个配置项的意义，以及分析 Zookeeper 的典型的应用场景（配置文件的管理、集群管理、同步锁、Leader 选举、队列管]]></description><category></category></item><item><title><![CDATA[分布式系统编程，你到哪一级了？]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/46412367</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/46412367</guid><author>cq1982</author><pubDate>Mon, 08 Jun 2015 14:39:07 +0800</pubDate><description><![CDATA[介绍

当分布式系统编程成为你生活中的一部分时，你需要经历一段学习曲线。这篇文章描述了一下我当前在这个领域大致属于哪个层次，并希望能为你指出足够多的错误，从别人的错误中学习，从而使你能以最优的路径通向成功。先声明一下，我在1995年时达到第1级，我现在处于第3级。你自己属于哪一级呢？

第0级：完全一无所知

每个程序员都从这一级开始。我不会在此浪费太多口舌，因为这实在没什么太多可说的]]></description><category></category></item><item><title><![CDATA[log4j详解与实战]]></title><link>https://blog.youkuaiyun.com/cq1982/article/details/46390659</link><guid>https://blog.youkuaiyun.com/cq1982/article/details/46390659</guid><author>cq1982</author><pubDate>Sat, 06 Jun 2015 19:02:25 +0800</pubDate><description><![CDATA[log4j是一个非常强大的log记录软件，下面我们就来看看在项目中如何使log4j。

 

首先当然是得到log4j的jar档，推荐使用1.2.X版，下载地址：

http://logging.apache.org/log4j/1.2/download.html

 

我们先看一个最简单的示例：

【示例1】

项目结构：



【注：由于这里的多个项目公用]]></description><category></category></item></channel></rss>