Google开源协议Protobuf的简介及其序列化原理 Google开源协议Protobuf的简介及其序列化原理

<link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON">
<title>Google开源协议Protobuf的简介及其序列化原理 - Chengzi_comm的专栏 - CSDN博客</title>

    
                <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/detail-a0a545005c.min.css">
        
        <script type="application/ld+json">{"@context":"https:\/\/ziyuan.baidu.com\/contexts\/cambrian.jsonld","@id":"https:\/\/blog.csdn.net\/chengzi_comm\/article\/details\/53199278","appid":"1563894916825412","title":"Google\u5f00\u6e90\u534f\u8baeProtobuf\u7684\u7b80\u4ecb\u53ca\u5176\u5e8f\u5217\u5316\u539f\u7406 - Chengzi_comm\u7684\u4e13\u680f","images":["https:\/\/img-blog.csdn.net\/20161117135003782","https:\/\/img-blog.csdn.net\/20161117135049548","https:\/\/img-blog.csdn.net\/20161117135124264"],"pubDate":"2019-02-24T09:54:09"}</script>
    
      <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/themes/skin3-template/skin3-template-9b39979775.min.css">
    <script type="text/javascript">
    var username = "Chengzi_comm";
    var blog_address = "https://blog.csdn.net/chengzi_comm";
    var static_host = "https://csdnimg.cn/release/phoenix/";
    var currentUserName = "zzb2019";
    var isShowAds = true;
    var isOwner = false;
    var loginUrl = "http://passport.csdn.net/account/login?from=https://blog.csdn.net/chengzi_comm/article/details/53199278"
    var blogUrl = "https://blog.csdn.net/";
    //页面皮肤样式
    var curSkin = "skin3-template";
    // 第四范式所需数据
    var articleTitles = "Google开源协议Protobuf的简介及其序列化原理 - Chengzi_comm的专栏";
    var articleID = "53199278";
    
    var nickName = "Chengzi_comm";
    var isCorporate = false;
    var subDomainBlogUrl = "https://blog.csdn.net/"
</script>
<script type="text/javascript">
    // Traffic Stats of the entire Web site By baidu
    var _hmt = _hmt || [];
    (function() {
        var hm = document.createElement("script");
        hm.src = "https://hm.baidu.com/hm.js?6bcd52f51e9b3dce32bec4a3997715ac";
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(hm, s);
    })();
    // Traffic Stats of the entire Web site By baidu end
</script>
<script src="https://csdnimg.cn/public/common/libs/jquery/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="https://csdnimg.cn/rabbit/exposure-click/main-1.0.6.js"></script>
<script src="//g.csdnimg.cn/fixed-sidebar/1.1.3/fixed-sidebar.js" type="text/javascript"></script>
<!-- 新版上报 -->
<script src="//g.csdnimg.cn/track/1.2.4/track.js" type="text/javascript"></script>
<!-- 新版上报end -->
        <link rel="stylesheet" href="https://csdnimg.cn/public/sandalstrap/1.4/css/sandalstrap.min.css">
<style>
    .MathJax, .MathJax_Message, .MathJax_Preview{
        display: none
    }
</style>

Google开源协议Protobuf的简介及其序列化原理

什么是probobuf、作用是什么:

   Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。

protobuf协议是以一个 .proto 后缀的文件为基础,这个文件描述了存在哪些数据,数据类型是怎么样的。

修饰符

  • required :  不可以增加或删除的字段,必须初始化;
  • optional :   可选字段,可删除,可以不初始化;
  • repeated :  可重复字段, 对应到java文件里,生成的是List。

protobuf使用

假设有一个person.proto的文件,使用protoc编译器,编译该文件:

protoc -I=SRC_DIR --cpp_out=DST_DIR person.proto

这里以C++为例,上面cpp表示生成C++文件;protobuf协议还支持Java、Python语言,可以换成相应的类型;
上面SRC_DIR表示的是.proto文件所在的路径,DST_DIR表示的是要生成的文件存放到哪里。
这句执行完,就会在DST_DIR目录生成两个文件,person.pb.h和person.pb.cc文件,
前者存放person类的声明,后者是实现。我们只需要包含person.pb.h就可以使用其中的多种序列化方法了。对于使用这个文件,下面说明protobuf序列化原理时会仔细讲的。当然,实现文件需要使用google一个库,可以自己网上下载,放到/usr/include/目录即可。

protobuf序列化原理

上面说了protobuf的message中有很多字段,每个字段的格式为:
修饰符 字段类型 字段名 = 域号;
在序列化时,protobuf按照TLV的格式序列化每一个字段,T即Tag,也叫Key;V是该字段对应的值value;L是Value的长度,如果一个字段是整形,这个L部分会省略。
序列化后的Value是按原样保存到字符串或者文件中,Key按照一定的转换条件保存起来,序列化后的结果就是 KeyValueKeyValue…。Key的序列化格式是按照message中字段后面的域号与字段类型来转换。转换公式如下:


(field_number << 3) | wire_type

上面的field_number就是域号, wire_type与字段的类型有关,

wire_type与类型的对应关系表
wire_type meaning type
0 Vaint int32、int64、uint32、uint64、sint32、sint64、bool、enum
1 64-bit fixed、sfixed64、double
2 Length-delimi string、bytes、embedded、messages、packed repeated fields
3 Start group Groups(deprecated)
4 End group Groups(deprecated)
5 32-bit fixed32、sfixed32、float

   As you can see, each field in the message definition has a unique numbered tag. These tags are used to identify your fields in the message binary format, and should not be changed once your message type is in use. Note that tags with values in the range 1 through 15 take one byte to encode. Tags in the range 16 through 2047 take two bytes. So you should reserve the tags 1 through 15 for very frequently occurring message elements. Remember to leave some room for frequently occurring elements that might be added in the future.

上面一段话是来自Google Protobuf Documents,上面有几个信息需要注意的地方:
protobuf协议使用二进制格式表示Key字段;对value而言,不同的类型采用的编码方式也不同,如果是整型,采用二进制表示;如果是字符,会直接原样写入文件或者字符串(即不编码)。由于刚开始接触protobuf协议,我也在学习中,下面我会给出一个例子,对于其他一些类型的编码方式,可以仿照这个例子自己实验一下。
(这个例子主要是讲述Key的编码方式)

上面说过,对于message中的每一个域,都对应一个域号。protobuf规定:

扫描二维码关注公众号,回复: 5297641 查看本文章
  • 如果域号在[1,15]范围内,会使用一个字节表示Key;
  • 如果域号大于等于16,会使用两个字节表示Key;

Key编码过后,该字节的第一个比特位表示之后的一个字节是否与当前这个字节有关:

  • 如果第一个比特位为1,表示有关,即连续两个字节都是Key的编码;
  • 如果第一个比特位为0,表示Key的编码只有当前一个字节,后面的字节是Length或者Value;

结合公式 (field_number << 3)| wire_type ,如果域号大于等于16,两个字节共16位,去掉移位的3位,去掉两个字节中第一个比特位,  
总共16个比特位只有16-5==11个比特位用来表示Key,所以Key的域号要小于2^11== 2048。

下面是protobuf的具体使用:

1、创建一个.proto文件,内容如下:
这里写图片描述

2、使用protoc编译后,生成两个文件:
protoc -I=. –cpp_out=. person.proto
这里写图片描述

3、写端程序如下:
这里写图片描述

4、读端程序:
这里写图片描述

5、首先运行写端程序,把序列化内容写入config文件;再运行读端程序,反序列化文件中的内容,把各个字段的内容打印出来。
这里写图片描述

6、调试写端程序,看序列化后的内容是怎么样的:
这里写图片描述

‘\n’是id字段的Key,后面的\003(八进制)表示id字段的值长度为3;

key的域号不超过15的序列化解析:
因为id字段的域号为1,是小于15的,所以id字段的Key序列化要占1个字节的空间,00000001左移3位变成 00001000,因为string的wire_type值是2,所以00001000再或上2,变成00001010,就是十进制的10,即字符’\n’。下面的字段如果域号不超过15,解析同id字段。
后面连续3个’\61’(八进制)即字符’1’;
同样\022\005是name字段的key和value长度,后面是name字段的值;
\032\004是addr字段的key和value长度;

最后,\302>\005是test字段的Key和Value长度;

key的域号大于15的序列化解析:
由于CSDN编辑器不支持CSS格式,没有办法标记下面的解析内容的颜色,只有放一个图片上去了 ^_^;
下面图片中的\76就是\302后面的‘>’字符的八进制表示,\302与>共同组成最后一个字段的Key的表示(因为最后一个字段test的域号1000大于15,所以需要占两个字节表示Key)
这里写图片描述

以上就是我最近对protobuf的了解,也还在学习中。。。

})()

    <div id="dmp_ad_58"><div id="kp_box_58" data-pid="58" data-track-view='{"mod":"kp_popu_58-402","con":",,"}' data-track-click='{"mod":"kp_popu_58-402","con":",,"}'><div style="width:100%;background:#fff;border:3px solid #fff;">
<div class="comment-edit-box d-flex">
	<a id="commentsedit"></a>
	<div class="user-img">
		<a href="//me.csdn.net/zzb2019" target="_blank">
			<img class="" src="https://avatar.csdn.net/7/0/2/3_zzb2019.jpg">
		</a>
	</div>
	<form id="commentform">
		<input type="hidden" id="comment_replyId">
		<textarea class="comment-content" name="comment_content" id="comment_content" placeholder="想对作者说点什么"></textarea>
		<div class="opt-box"> <!-- d-flex -->
			<div id="ubbtools" class="add_code">
				<a href="#insertcode" code="code" target="_self"><i class="icon iconfont icon-daima"></i></a>
			</div>
			<input type="hidden" id="comment_replyId" name="comment_replyId">
			<input type="hidden" id="article_id" name="article_id" value="53199278">
			<input type="hidden" id="comment_userId" name="comment_userId" value="">
			<input type="hidden" id="commentId" name="commentId" value="">
			<div style="display: none;" class="csdn-tracking-statistics tracking-click" data-mod="popu_384"><a href="#" target="_blank" class="comment_area_btn">发表评论</a></div>
			<div class="dropdown" id="myDrap">
				<a class="dropdown-face d-flex align-items-center" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
				<div class="txt-selected text-truncate">添加代码片</div>
				<svg class="icon d-block" aria-hidden="true">
					<use xlink:href="#csdnc-triangledown"></use>
				</svg>
				</a>
				<ul class="dropdown-menu" id="commentCode" aria-labelledby="drop4">
					<li><a data-code="html">HTML/XML</a></li>
					<li><a data-code="objc">objective-c</a></li>
					<li><a data-code="ruby">Ruby</a></li>
					<li><a data-code="php">PHP</a></li>
					<li><a data-code="csharp">C</a></li>
					<li><a data-code="cpp">C++</a></li>
					<li><a data-code="javascript">JavaScript</a></li>
					<li><a data-code="python">Python</a></li>
					<li><a data-code="java">Java</a></li>
					<li><a data-code="css">CSS</a></li>
					<li><a data-code="sql">SQL</a></li>
					<li><a data-code="plain">其它</a></li>
				</ul>
			</div>  
			<div class="right-box">
				<span id="tip_comment" class="tip">还能输入<em>1000</em>个字符</span>
				<input type="submit" class="btn btn-sm btn-red btn-comment" value="发表评论">
			</div>
		</div>
	</form>
</div>

	<div class="comment-list-container">
	<a id="comments"></a>
	<div class="comment-list-box">
	</div>
	<div id="commentPage" class="pagination-box d-none"></div>
	<div class="opt-box text-center">
		<button class="btn btn-sm btn-link-blue" id="btnMoreComment"></button>
	</div>
</div>
		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/carson_ho/article/details/70568606,BlogCommendFromBaidu_1"}'>
		<div class="content">
			<a href="https://blog.csdn.net/carson_ho/article/details/70568606" target="_blank" title="Protocol Buffer 序列化原理大揭秘 - 为什么Protocol Buffer性能这么好?">
			<h4 class="text-truncate oneline">
					Protocol Buffer <em>序列化</em><em>原理</em>大揭秘 - 为什么Protocol Buffer性能这么好?				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">04-24</span>
					<span class="read-num hover-hide">
          阅读数 
						5</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/carson_ho/article/details/70568606" target="_blank" title="Protocol Buffer 序列化原理大揭秘 - 为什么Protocol Buffer性能这么好?">
						<span class="desc oneline">前言习惯用Json、XML数据存储格式的你们,相信大多都没听过ProtocolBufferProtocolBuffer其实是Google出品的一种轻量&amp;高效的结构化数据存储格式,性能比Json、XML...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/carson_ho">来自:	<span class="blog_title"> 专注分享 Android开发 干货</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/tianmo2010/article/details/42125381,BlogCommendFromBaidu_2"}'>
		<div class="content">
			<a href="https://blog.csdn.net/tianmo2010/article/details/42125381" target="_blank" title="protobuf应用与原理详解">
			<h4 class="text-truncate oneline">
					<em>protobuf</em>应用与<em>原理</em>详解				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">12-24</span>
					<span class="read-num hover-hide">
          阅读数 
						3129</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/tianmo2010/article/details/42125381" target="_blank" title="protobuf应用与原理详解">
						<span class="desc oneline">简介什么是GoogleProtocolBuffer?假如您在网上搜索,应该会得到类似这样的文字介绍:GoogleProtocolBuffer(简称Protobuf)是Google公司内部的混合语言数据...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/tianmo2010">来自:	<span class="blog_title"> tianmo2010的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>

<div class="recommend-item-box recommend-ad-box"><div id="kp_box_59" data-pid="59" data-track-view='{"mod":"kp_popu_59-517","con":",,"}' data-track-click='{"mod":"kp_popu_59-517","con":",,"}'><div id="three_ad1" class="mediav_ad" ></div>
		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/iteye_19607/article/details/82619330,BlogCommendFromBaidu_3"}'>
		<div class="content">
			<a href="https://blog.csdn.net/iteye_19607/article/details/82619330" target="_blank" title="Protobuf与JAVA">
			<h4 class="text-truncate oneline">
					<em>Protobuf</em>与JAVA				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">05-19</span>
					<span class="read-num hover-hide">
          阅读数 
						94</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/iteye_19607/article/details/82619330" target="_blank" title="Protobuf与JAVA">
						<span class="desc oneline">  我们在开发一些RPC调用的程序时,通常会涉及到对象的序列化/反序列化的问题,比如一个“Person”对象从Client端通过TCP方式发送到Server端;因为TCP协议(UDP等这种低级协议)只...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/iteye_19607">来自:	<span class="blog_title"> 深入一点,你会更加快乐</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/u012712901/article/details/73730014,BlogCommendFromBaidu_4"}'>
		<div class="content">
			<a href="https://blog.csdn.net/u012712901/article/details/73730014" target="_blank" title="google protobuf序列化原理">
			<h4 class="text-truncate oneline">
					<em>google</em> <em>protobuf</em><em>序列化</em><em>原理</em>				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">06-25</span>
					<span class="read-num hover-hide">
          阅读数 
						6358</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/u012712901/article/details/73730014" target="_blank" title="google protobuf序列化原理">
						<span class="desc oneline">一、Java数据序列化大致有3种实现方式,1、JSON,2、ObjectSerialize,3、protobuf,今天重点解析第三种使用googleprotobuf的序列化原理。Protobuf的简单...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/u012712901">来自:	<span class="blog_title"> 莫贤彬的博客</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/hebeind100/article/details/84774762,BlogCommendFromBaidu_5"}'>
		<div class="content">
			<a href="https://blog.csdn.net/hebeind100/article/details/84774762" target="_blank" title=" Google 开源技术protobuf工作原理">
			<h4 class="text-truncate oneline">
					 <em>Google</em> 开源技术<em>protobuf</em>工作<em>原理</em>				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">04-03</span>
					<span class="read-num hover-hide">
          阅读数 
						35</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/hebeind100/article/details/84774762" target="_blank" title=" Google 开源技术protobuf工作原理">
						<span class="desc oneline">1. Protobuf简介     protobuf是google提供的一个开源序列化框架,类似于XML,JSON这样的数据表示语言,其最大的特点是基于二进制,因此比传统的XML表示高效短小得多。虽然...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/hebeind100">来自:	<span class="blog_title"> hebeind100的博客</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident recommend-other-item-box"  data-track-click='{"mod":"popu_387","con":",https://bbs.csdn.net/topics/390494132,BlogCommendFromBaidu_6"}'>
	<a href="https://bbs.csdn.net/topics/390494132" target="_blank">
		<h4 class="text-truncate oneline">
				<em>protobuf</em>动态结构解析及内容填充及<em>序列化</em>			</h4>
		<div class="info-box d-flex align-content-center">
				<span class="date">06-19</span>
		</div>
		<p class="content oneline">
    <span class="desc oneline">需求: 1. 跟据proto文件动态推导数据项及类型, 2. 然后根据类型动态的产生输入界面。 3. 从界面输入数据, 编辑完成后则将数据通过protobuf进行序列化。 4. 通过这种方式序列化的数</span>
              <span class="type-show type-show-bbs">论坛</span>
    			</p>
	</a>

</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/u010031673/article/details/50909628,BlogCommendFromBaidu_7"}'>
		<div class="content">
			<a href="https://blog.csdn.net/u010031673/article/details/50909628" target="_blank" title="protobuf的使用和原理">
			<h4 class="text-truncate oneline">
					<em>protobuf</em>的使用和<em>原理</em>				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">03-20</span>
					<span class="read-num hover-hide">
          阅读数 
						2117</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/u010031673/article/details/50909628" target="_blank" title="protobuf的使用和原理">
						<span class="desc oneline">ProtocolBuffers是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或RPC数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/u010031673">来自:	<span class="blog_title"> Mr孔先森</span></a>
                          </span>
				</p>
		</div>
				</div>

<div class="recommend-item-box recommend-ad-box"><div id="kp_box_60" data-pid="60" data-track-view='{"mod":"kp_popu_60-43","con":",,"}' data-track-click='{"mod":"kp_popu_60-43","con":",,"}'><div id="three_ad8" class="mediav_ad" ></div>
		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/u013929284/article/details/72582215,BlogCommendESEnWordWeight_8"}'>
		<div class="content">
			<a href="https://blog.csdn.net/u013929284/article/details/72582215" target="_blank" title="protobuf高效传输">
			<h4 class="text-truncate oneline">
					<em>protobuf</em>高效传输				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">05-20</span>
					<span class="read-num hover-hide">
          阅读数 
						2218</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/u013929284/article/details/72582215" target="_blank" title="protobuf高效传输">
						<span class="desc oneline">protobuffercesium大数据量高效传输</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/u013929284">来自:	<span class="blog_title"> Super洛伽的博客</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/donss/article/details/7792306,BlogCommendESEnWordWeight_9"}'>
		<div class="content">
			<a href="https://blog.csdn.net/donss/article/details/7792306" target="_blank" title="c#序列化与反序列化通用方法, 使用protobuf-net实现">
			<h4 class="text-truncate oneline">
					c#<em>序列化</em>与反<em>序列化</em>通用方法, 使用<em>protobuf</em>-net实现				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">07-27</span>
					<span class="read-num hover-hide">
          阅读数 
						1870</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/donss/article/details/7792306" target="_blank" title="c#序列化与反序列化通用方法, 使用protobuf-net实现">
						<span class="desc oneline">protobuf-net是Google的ProtocolBuffer的.net实现。ProtocolBuffer是用于结构化数据串行化的灵活、高效、自动的方法,有如XML,不过它更小、更快、也更简单。...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/donss">来自:	<span class="blog_title"> donss的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>


      <div class="recommend-item-box blog-expert-recommend-box">
			<div class="d-flex">
				<div class="blog-expert-recommend">
					<div class="blog-expert">
						<div class="blog-expert-flexbox"></div>
					</div>
				</div>
			</div>
  </div>

		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/mawming/article/details/52381740,BlogCommendESEnWordWeight_10"}'>
		<div class="content">
			<a href="https://blog.csdn.net/mawming/article/details/52381740" target="_blank" title="理解并设计rest/restful风格接口">
			<h4 class="text-truncate oneline">
					理解并设计rest/restful风格接口				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">08-31</span>
					<span class="read-num hover-hide">
          阅读数 
						5</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/mawming/article/details/52381740" target="_blank" title="理解并设计rest/restful风格接口">
						<span class="desc oneline">网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/mawming">来自:	<span class="blog_title"> 马万明的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/adparking/article/details/52278794,BlogCommendFromBaidu_11"}'>
		<div class="content">
			<a href="https://blog.csdn.net/adparking/article/details/52278794" target="_blank" title="HTTP的REST服务简介和最佳实践">
			<h4 class="text-truncate oneline">
					HTTP的REST服务<em>简介</em>和最佳实践				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">08-22</span>
					<span class="read-num hover-hide">
          阅读数 
						2</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/adparking/article/details/52278794" target="_blank" title="HTTP的REST服务简介和最佳实践">
						<span class="desc oneline">REST简介  一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式。”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/adparking">来自:	<span class="blog_title"> 大鹏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/baiye_xing/article/details/73249819,BlogCommendFromBaidu_12"}'>
		<div class="content">
			<a href="https://blog.csdn.net/baiye_xing/article/details/73249819" target="_blank" title="【Netty入门】几种序列化协议的介绍">
			<h4 class="text-truncate oneline">
					【Netty入门】几种<em>序列化</em>协议的介绍				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">06-14</span>
					<span class="read-num hover-hide">
          阅读数 
						5861</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/baiye_xing/article/details/73249819" target="_blank" title="【Netty入门】几种序列化协议的介绍">
						<span class="desc oneline">序列化概述1.序列化定义序列化(serialization)就是将对象序列化为二进制形式(字节数组),一般也将序列化称为编码(Encode),主要用于网络传输、数据持久化等;反序列化(deserial...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/baiye_xing">来自:	<span class="blog_title"> 白夜行</span></a>
                          </span>
				</p>
		</div>
				</div>

<div class="recommend-item-box recommend-ad-box"><div id="kp_box_61" data-pid="61" data-track-view='{"mod":"kp_popu_61-557","con":",,"}' data-track-click='{"mod":"kp_popu_61-557","con":",,"}'><div id="three_ad13" class="mediav_ad" ></div>
		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/qq_21383435/article/details/80032375,BlogCommendFromBaidu_13"}'>
		<div class="content">
			<a href="https://blog.csdn.net/qq_21383435/article/details/80032375" target="_blank" title="REST,以及RESTful的讲解">
			<h4 class="text-truncate oneline">
					REST,以及RESTful的讲解				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">04-21</span>
					<span class="read-num hover-hide">
          阅读数 
						3</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/qq_21383435/article/details/80032375" target="_blank" title="REST,以及RESTful的讲解">
						<span class="desc oneline">1.传统下的API接口  http是目前在互联网上使用最多的协议,没有之一。  可是http的创始人一直都觉得,在过去10几年来,所有的人都在错误的使用Http.这句话怎么说呢?  如果说你要删除一个...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/qq_21383435">来自:	<span class="blog_title"> 九师兄-梁川川</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/hailong0715/article/details/52016682,BlogCommendFromBaidu_14"}'>
		<div class="content">
			<a href="https://blog.csdn.net/hailong0715/article/details/52016682" target="_blank" title="Google ProtoBuf简介">
			<h4 class="text-truncate oneline">
					<em>Google</em> <em>ProtoBuf</em><em>简介</em>				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">07-24</span>
					<span class="read-num hover-hide">
          阅读数 
						8965</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/hailong0715/article/details/52016682" target="_blank" title="Google ProtoBuf简介">
						<span class="desc oneline">最近在学习蘑菇街的TeamTalk开源代码,新版的代码中包含了最新的很多框架和技术,其中包括了谷歌的ProtocolBuffer简称ProtoBuf,该篇文章是我通过阅读谷歌开发者中心后的学习总结,顺...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/hailong0715">来自:	<span class="blog_title"> hailong0715的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/u010870518/article/details/79840134,BlogCommendFromBaidu_15"}'>
		<div class="content">
			<a href="https://blog.csdn.net/u010870518/article/details/79840134" target="_blank" title="序列化和反序列化的底层实现原理是什么?">
			<h4 class="text-truncate oneline">
					<em>序列化</em>和反<em>序列化</em>的底层实现<em>原理</em>是什么?				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">04-07</span>
					<span class="read-num hover-hide">
          阅读数 
						1</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/u010870518/article/details/79840134" target="_blank" title="序列化和反序列化的底层实现原理是什么?">
						<span class="desc oneline">序列化和反序列化作为Java里一个较为基础的知识点,大家心里也有那么几句要说的,但我相信很多小伙伴掌握的也就是那么几句而已,如果再深究问一下Java如何实现序列化和反序列化的,就可能不知所措了!遥记当...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/u010870518">来自:	<span class="blog_title"> 徐刘根的博客</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/hengyunabc/article/details/81120954,BlogCommendFromGuangxin_16"}'>
		<div class="content">
			<a href="https://blog.csdn.net/hengyunabc/article/details/81120954" target="_blank" title="思考gRPC :为什么是protobuf">
			<h4 class="text-truncate oneline">
					思考gRPC :为什么是<em>protobuf</em>				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">07-19</span>
					<span class="read-num hover-hide">
          阅读数 
						1655</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/hengyunabc/article/details/81120954" target="_blank" title="思考gRPC :为什么是protobuf">
						<span class="desc oneline">背景谈到RPC,就避免不了序列化的话题。gRPC默认的序列化方式是protobuf,原因很简单,因为两者都是google发明的,哈哈。在当初Google开源protobuf时,很多人就期待是否能把RP...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/hengyunabc">来自:	<span class="blog_title"> 横云断岭的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/abv123456789/article/details/46345111,BlogCommendFromGuangxin_17"}'>
		<div class="content">
			<a href="https://blog.csdn.net/abv123456789/article/details/46345111" target="_blank" title="Protobuf协议格式详解">
			<h4 class="text-truncate oneline">
					<em>Protobuf</em>协议格式详解				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">06-03</span>
					<span class="read-num hover-hide">
          阅读数 
						1</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/abv123456789/article/details/46345111" target="_blank" title="Protobuf协议格式详解">
						<span class="desc oneline">protobuf是google开源的一个序列化框架,类似xml,json,最大的特点是基于二进制,比传统的XML表示同样一段内容要短小得多。还可以定义一些可选字段,用于服务端与客户端通信。前面几篇文章...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/abv123456789">来自:	<span class="blog_title"> 孙飞的博客</span></a>
                          </span>
				</p>
		</div>
				</div>

<div class="recommend-item-box recommend-ad-box"><div id="kp_box_62" data-pid="62" data-track-view='{"mod":"kp_popu_62-556","con":",,"}' data-track-click='{"mod":"kp_popu_62-556","con":",,"}'><div id="three_ad18" class="mediav_ad" ></div>
		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/MYGODLIU/article/details/51993324,BlogCommendFromGuangxin_18"}'>
		<div class="content">
			<a href="https://blog.csdn.net/MYGODLIU/article/details/51993324" target="_blank" title="protobuf的特点">
			<h4 class="text-truncate oneline">
					<em>protobuf</em>的特点				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">07-22</span>
					<span class="read-num hover-hide">
          阅读数 
						1227</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/MYGODLIU/article/details/51993324" target="_blank" title="protobuf的特点">
						<span class="desc oneline">protobuf的特点在网络之间传递可读性强的数据,有xml,还有json。相比之下,json比xml要好。但是他们有个弊端,传递的数据是可读的,也就是没有加密,使用网络抓包工具立马可以抓到。一条消息...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/MYGODLIU">来自:	<span class="blog_title"> MYGODLIU的博客</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/whhlpo/article/details/48681789,BlogCommendFromQuerySearch_19"}'>
		<div class="content">
			<a href="https://blog.csdn.net/whhlpo/article/details/48681789" target="_blank" title="C++序列化方法 参考google protobuf">
			<h4 class="text-truncate oneline">
					C++<em>序列化</em>方法 参考<em>google</em> <em>protobuf</em>				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">09-23</span>
					<span class="read-num hover-hide">
          阅读数 
						1349</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/whhlpo/article/details/48681789" target="_blank" title="C++序列化方法 参考google protobuf">
						<span class="desc oneline">参考googleprotobuf而得来的一种更简化的序列化方法,易扩展,也可以在现有代码扩展。...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/whhlpo">来自:	<span class="blog_title"> whhlpo的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/ourpush/article/details/52829267,BlogCommendFromQuerySearch_20"}'>
		<div class="content">
			<a href="https://blog.csdn.net/ourpush/article/details/52829267" target="_blank" title="【UNITY3D 游戏开发之五】Google-protobuf与FlatBuffers数据的序列化和反序列化">
			<h4 class="text-truncate oneline">
					【UNITY3D 游戏开发之五】<em>Google</em>-<em>protobuf</em>与FlatBuffers数据的<em>序列化</em>和反<em>序列化</em>				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">10-16</span>
					<span class="read-num hover-hide">
          阅读数 
						982</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/ourpush/article/details/52829267" target="_blank" title="【UNITY3D 游戏开发之五】Google-protobuf与FlatBuffers数据的序列化和反序列化">
						<span class="desc oneline">关于Protobuf通过本文的转载和分享的相关链接,足够了解使用了,所以这里不赘述了。但是这里Himi顺便提一下“FlatBuffers”,它是 ProtocolBuffers升级版,其主要区别在于F...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/ourpush">来自:	<span class="blog_title"> 内推君(微信公众号:ourpush)</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/xiaozuo666/article/details/81456680,BlogCommendFromQuerySearch_21"}'>
		<div class="content">
			<a href="https://blog.csdn.net/xiaozuo666/article/details/81456680" target="_blank" title="Google protobuf  用于数据的存储/序列化/反序列化">
			<h4 class="text-truncate oneline">
					<em>Google</em> <em>protobuf</em>  用于数据的存储/<em>序列化</em>/反<em>序列化</em>				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">08-06</span>
					<span class="read-num hover-hide">
          阅读数 
						251</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/xiaozuo666/article/details/81456680" target="_blank" title="Google protobuf  用于数据的存储/序列化/反序列化">
						<span class="desc oneline">protobuf介绍谷歌开源的ProtocolBuffer,简称protobuf,是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,且不受平台和语言的限制。简单来说,如果你需要存储数据,且...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/xiaozuo666">来自:	<span class="blog_title"> 小Z的博客</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/xiaominghimi/article/details/45309385,BlogCommendFromQuerySearch_22"}'>
		<div class="content">
			<a href="https://blog.csdn.net/xiaominghimi/article/details/45309385" target="_blank" title="【转】【UNITY3D 游戏开发之五】Google-protobuf与FlatBuffers数据的序列化和反序列化">
			<h4 class="text-truncate oneline">
					【转】【UNITY3D 游戏开发之五】<em>Google</em>-<em>protobuf</em>与FlatBuffers数据的<em>序列化</em>和反<em>序列化</em>				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">04-27</span>
					<span class="read-num hover-hide">
          阅读数 
						4093</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/xiaominghimi/article/details/45309385" target="_blank" title="【转】【UNITY3D 游戏开发之五】Google-protobuf与FlatBuffers数据的序列化和反序列化">
						<span class="desc oneline">本站文章均为 李华明Himi 原创,转载务必在明显处注明:(作者新浪微博: @李华明Himi ) 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/unit...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/xiaominghimi">来自:	<span class="blog_title"> 李华明Himi</span></a>
                          </span>
				</p>
		</div>
				</div>

<div class="recommend-item-box recommend-ad-box"><div id="kp_box_63" data-pid="63" data-track-view='{"mod":"kp_popu_63-555","con":",,"}' data-track-click='{"mod":"kp_popu_63-555","con":",,"}'><div id="three_ad23" class="mediav_ad" ></div>
		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/zxng_work/article/details/78943167,BlogCommendFromQuerySearch_23"}'>
		<div class="content">
			<a href="https://blog.csdn.net/zxng_work/article/details/78943167" target="_blank" title="Google_Protobuf协议——protobuf代码中的通讯">
			<h4 class="text-truncate oneline">
					<em>Google</em>_<em>Protobuf</em>协议——<em>protobuf</em>代码中的通讯				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">12-31</span>
					<span class="read-num hover-hide">
          阅读数 
						344</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/zxng_work/article/details/78943167" target="_blank" title="Google_Protobuf协议——protobuf代码中的通讯">
						<span class="desc oneline">序列化和反序列化计算序列化后的长度代码实现定义发送与接收基类以及函数序列化到数组数组反序列化序列化到字符串字符串反序列化在类google::protobuf::Message中有protobuf通讯的...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/zxng_work">来自:	<span class="blog_title"> zxng_work的博客</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/junerseven7/article/details/71077875,BlogCommendFromBaidu_24"}'>
		<div class="content">
			<a href="https://blog.csdn.net/junerseven7/article/details/71077875" target="_blank" title="Protobuf 协议的Java应用sample">
			<h4 class="text-truncate oneline">
					<em>Protobuf</em> 协议的Java应用sample				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">05-02</span>
					<span class="read-num hover-hide">
          阅读数 
						1472</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/junerseven7/article/details/71077875" target="_blank" title="Protobuf 协议的Java应用sample">
						<span class="desc oneline">Protobuf协议,全称:ProtocolBuffer它跟JSON,XML一样,是一个规定好的数据传播格式。不过,它的序列化和反序列化的效率太变态了……来看看几张图你就知道它有多变态。Protobu...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/junerseven7">来自:	<span class="blog_title"> 晨曦之星</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/jxhaha/article/details/79897933,BlogCommendFromBaidu_25"}'>
		<div class="content">
			<a href="https://blog.csdn.net/jxhaha/article/details/79897933" target="_blank" title="google protobuf存储原理及一些底层api应用">
			<h4 class="text-truncate oneline">
					<em>google</em> <em>protobuf</em>存储<em>原理</em>及一些底层api应用				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">04-11</span>
					<span class="read-num hover-hide">
          阅读数 
						220</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/jxhaha/article/details/79897933" target="_blank" title="google protobuf存储原理及一些底层api应用">
						<span class="desc oneline">googleprotobuf编码原理核心基础是Varints。它用一个或者多个字节表示一个数字,值越小的数字字节数越小。比如要存储一个int32类型的数字,通常是4个字节。但是Varints最少只需要...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/jxhaha">来自:	<span class="blog_title"> jxhaha的博客</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/ouyangshima/article/details/77126700,BlogCommendFromBaidu_26"}'>
		<div class="content">
			<a href="https://blog.csdn.net/ouyangshima/article/details/77126700" target="_blank" title="[ProtoBuf]ProtoBuf原理">
			<h4 class="text-truncate oneline">
					[<em>ProtoBuf</em>]<em>ProtoBuf</em><em>原理</em>				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">08-12</span>
					<span class="read-num hover-hide">
          阅读数 
						480</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/ouyangshima/article/details/77126700" target="_blank" title="[ProtoBuf]ProtoBuf原理">
						<span class="desc oneline">ProtocolBuffer消息格式ProtocolBuffer编码原理</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/ouyangshima">来自:	<span class="blog_title"> 超越</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/github_39312083/article/details/78673032,BlogCommendFromBaidu_27"}'>
		<div class="content">
			<a href="https://blog.csdn.net/github_39312083/article/details/78673032" target="_blank" title="protobuf序列化原理">
			<h4 class="text-truncate oneline">
					<em>protobuf</em><em>序列化</em><em>原理</em>				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">11-30</span>
					<span class="read-num hover-hide">
          阅读数 
						369</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/github_39312083/article/details/78673032" target="_blank" title="protobuf序列化原理">
						<span class="desc oneline">varints在了解protobuf编码原理之前,首先要了解的是varints。varints是一种用一个或多个字节来序列化整数的方法。整数的值越小,占用的字节数就越少。varints的每个字节的第一...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/github_39312083">来自:	<span class="blog_title"> github_39312083的博客</span></a>
                          </span>
				</p>
		</div>
				</div>

<div class="recommend-item-box recommend-ad-box"><div id="kp_box_64" data-pid="64" data-track-view='{"mod":"kp_popu_64-81","con":",,"}' data-track-click='{"mod":"kp_popu_64-81","con":",,"}'><div id="three_ad28" class="mediav_ad" ></div>
		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/github_39312083/article/details/78653266,BlogCommendFromBaidu_28"}'>
		<div class="content">
			<a href="https://blog.csdn.net/github_39312083/article/details/78653266" target="_blank" title="浅析protobuf(未完待续)">
			<h4 class="text-truncate oneline">
					浅析<em>protobuf</em>(未完待续)				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">11-28</span>
					<span class="read-num hover-hide">
          阅读数 
						2459</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/github_39312083/article/details/78653266" target="_blank" title="浅析protobuf(未完待续)">
						<span class="desc oneline">浅析protobuf序列化和反序列化原理首先,我们先来了解一下protobuf是个什么东西,是用来做什么的。这一点官方文档已经说得很明白:Protocolbuffersareaflexible,eff...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/github_39312083">来自:	<span class="blog_title"> github_39312083的博客</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/dxcn2015/article/details/65443676,BlogCommendFromBaidu_29"}'>
		<div class="content">
			<a href="https://blog.csdn.net/dxcn2015/article/details/65443676" target="_blank" title="到底什么是REST?怎么用通俗的语言解释REST以及RESTful?">
			<h4 class="text-truncate oneline">
					到底什么是REST?怎么用通俗的语言解释REST以及RESTful?				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">03-23</span>
					<span class="read-num hover-hide">
          阅读数 
						4468</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/dxcn2015/article/details/65443676" target="_blank" title="到底什么是REST?怎么用通俗的语言解释REST以及RESTful?">
						<span class="desc oneline">最近在学习Retrofit的时候,看到Square官方对Retrofit的描述:“Atype-safeRESTclientforAndroidandJava“即:Retrofit是为Android和J...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/dxcn2015">来自:	<span class="blog_title"> dxcn2015的博客</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/mynameislu/article/details/78645880,BlogCommendFromBaidu_30"}'>
		<div class="content">
			<a href="https://blog.csdn.net/mynameislu/article/details/78645880" target="_blank" title="protobuf 归纳">
			<h4 class="text-truncate oneline">
					<em>protobuf</em> 归纳				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">11-27</span>
					<span class="read-num hover-hide">
          阅读数 
						8799</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/mynameislu/article/details/78645880" target="_blank" title="protobuf 归纳">
						<span class="desc oneline">前言一什么是protobuf二简单使用示例三为什么使用protobuf四数据编码五反射机制六兼容性七结束语参考资料前言从去年新工作开始接触了protobuffer,参考当时的资料以及笔记,进行一下归纳...</span>
					</a>
					  <span class="blog_title_box oneline no-title">
            <span class="type-show type-show-blog type-show-after">博文</span>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/a837199685/article/details/50611402,BlogCommendFromBaidu_31"}'>
		<div class="content">
			<a href="https://blog.csdn.net/a837199685/article/details/50611402" target="_blank" title="关于序列化协议的思考">
			<h4 class="text-truncate oneline">
					关于<em>序列化</em>协议的思考				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">01-30</span>
					<span class="read-num hover-hide">
          阅读数 
						3664</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/a837199685/article/details/50611402" target="_blank" title="关于序列化协议的思考">
						<span class="desc oneline">思考最近在设计一个RPC框架,需要处理序列化的问题。有很多种序列化协议可以选择,比如Java原生的序列化协议,Protobuf,Thrift,Hessian,Kryo等等,这里说的序列化协议专指Jav...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/a837199685">来自:	<span class="blog_title"> 蜗牛的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/qq_32808253/article/details/78866312,BlogCommendFromBaidu_32"}'>
		<div class="content">
			<a href="https://blog.csdn.net/qq_32808253/article/details/78866312" target="_blank" title="Protobuf2和Protobuf3自动生成代码方法">
			<h4 class="text-truncate oneline">
					<em>Protobuf</em>2和<em>Protobuf</em>3自动生成代码方法				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">12-21</span>
					<span class="read-num hover-hide">
          阅读数 
						1762</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/qq_32808253/article/details/78866312" target="_blank" title="Protobuf2和Protobuf3自动生成代码方法">
						<span class="desc oneline">Protobuf2//required不可以增加或删除的字段,必须初始化//optional可选字段,可删除,可以不初始化//repeated可重复字段,对应到C#文件里,生成的是Listmessag...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/qq_32808253">来自:	<span class="blog_title"> Pyc的博客</span></a>
                          </span>
				</p>
		</div>
				</div>

<div class="recommend-item-box recommend-ad-box"><div id="kp_box_65" data-pid="65" data-track-view='{"mod":"kp_popu_65-84","con":",,"}' data-track-click='{"mod":"kp_popu_65-84","con":",,"}'><div id="three_ad33" class="mediav_ad" ></div>
		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/weixin_41829196/article/details/79641911,BlogCommendFromBaidu_33"}'>
		<div class="content">
			<a href="https://blog.csdn.net/weixin_41829196/article/details/79641911" target="_blank" title="什么是rest? 什么是restful? 傻傻分不清楚。。">
			<h4 class="text-truncate oneline">
					什么是rest? 什么是restful? 傻傻分不清楚。。				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">03-21</span>
					<span class="read-num hover-hide">
          阅读数 
						9304</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/weixin_41829196/article/details/79641911" target="_blank" title="什么是rest? 什么是restful? 傻傻分不清楚。。">
						<span class="desc oneline">一.概念和区别:1.关于restrest :representationalstatetransfer    表述性状态转移,是一种架构风格。rest原则:  &amp;amp;lt;1&amp;amp;gt;网络上...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/weixin_41829196">来自:	<span class="blog_title"> Haines</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/caisini_vc/article/details/5599468,BlogCommendFromQuerySearch_34"}'>
		<div class="content">
			<a href="https://blog.csdn.net/caisini_vc/article/details/5599468" target="_blank" title="Google 的开源技术protobuf  简介与例子">
			<h4 class="text-truncate oneline">
					<em>Google</em> 的开源技术<em>protobuf</em>  <em>简介</em>与例子				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">05-17</span>
					<span class="read-num hover-hide">
          阅读数 
						34</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/caisini_vc/article/details/5599468" target="_blank" title="Google 的开源技术protobuf  简介与例子">
						<span class="desc oneline">本文来自CSDN博客:http://blog.csdn.net/program_think/archive/2009/05/31/4229773.aspx   今天来介绍一下“ProtocolBuff...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/caisini_vc">来自:	<span class="blog_title"> 内方外圆</span></a>
                          </span>
				</p>
		</div>
				</div>



			<div class="recommend-item-box recommend-box-ident recommend-download-box clearfix"  data-track-click='{"mod":"popu_387","con":",https://download.csdn.net/download/u012345149/9119371,BlogCommendFromQuerySearch_35"}'>
		<a href="https://download.csdn.net/download/u012345149/9119371" target="_blank">
			<div class="content clearfix">
				<div class="">
					<h4 class="text-truncate oneline clearfix">
						自己实现的<em>protobuf</em> 压缩类,并能<em>序列化</em>反<em>序列化</em>						</h4>
					<span class="data float-right">09-19</span>
				</div>
				<div class="desc oneline">
						自己实现的protobuf 压缩类,并能序列化反序列化					</div>
      <span class="type-show type-show-download">下载</span>
			</div>
		</a>
	</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/zscjob/article/details/49473851,BlogCommendFromQuerySearch_36"}'>
		<div class="content">
			<a href="https://blog.csdn.net/zscjob/article/details/49473851" target="_blank" title="unity3d中ProtoBuf的序列化和反序列化c#">
			<h4 class="text-truncate oneline">
					unity3d中<em>ProtoBuf</em>的<em>序列化</em>和反<em>序列化</em>c#				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">10-28</span>
					<span class="read-num hover-hide">
          阅读数 
						2346</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/zscjob/article/details/49473851" target="_blank" title="unity3d中ProtoBuf的序列化和反序列化c#">
						<span class="desc oneline">usingSystem;usingSystem.IO;usingProtoBuf;namespaceSensorServerPro{classCommon{//////传递过来的类型序列化成byte[...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/zscjob">来自:	<span class="blog_title"> zscjob的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/boshuzhang/article/details/77453370,BlogCommendFromQuerySearch_37"}'>
		<div class="content">
			<a href="https://blog.csdn.net/boshuzhang/article/details/77453370" target="_blank" title="protobuf Message的序列化和反序列化string类型">
			<h4 class="text-truncate oneline">
					<em>protobuf</em> Message的<em>序列化</em>和反<em>序列化</em>string类型				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">08-21</span>
					<span class="read-num hover-hide">
          阅读数 
						1512</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/boshuzhang/article/details/77453370" target="_blank" title="protobuf Message的序列化和反序列化string类型">
						<span class="desc oneline">protobufMessage的序列化和反序列化string类型标签: protobuf2013-04-0819:02 6746人阅读 评论(0) 收藏 举报 分类:网络/通信(97) Message...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/boshuzhang">来自:	<span class="blog_title"> boshuzhang的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>

<div class="recommend-item-box recommend-ad-box"><div id="kp_box_66" data-pid="66" data-track-view='{"mod":"kp_popu_66-808","con":",,"}' data-track-click='{"mod":"kp_popu_66-808","con":",,"}'><script
async="async"
charset="utf-8"
src="https://shared.ydstatic.com/js/yatdk/3.0.1/stream.js"
data-id="8935aa488dd58452b9e5ee3b44f1212f"
data-div-Style="width:100%;"

data-tit-Style=“margin-bottom: 6px; font-size: 18px; line-height: 24px; color: #3d3d3d;display: inline-block;font-weight:bold;”
data-des-Style=“font-size: 13px; line-height: 22px; white-space: normal; color: #999;”
data-img-Style=“float:left;margin-right:15px;width:90px;height:60px;”>

		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/u010431493/article/details/79786796,BlogCommendFromQuerySearch_38"}'>
		<div class="content">
			<a href="https://blog.csdn.net/u010431493/article/details/79786796" target="_blank" title="Google Protobuf socket通用发送接收模版">
			<h4 class="text-truncate oneline">
					<em>Google</em> <em>Protobuf</em> socket通用发送接收模版				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">04-02</span>
					<span class="read-num hover-hide">
          阅读数 
						261</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/u010431493/article/details/79786796" target="_blank" title="Google Protobuf socket通用发送接收模版">
						<span class="desc oneline">说明:需要传入一个socket和Protobuf对象,传输的时候会先发送一个数据长度,然后才是protobuf的数据#pragmaonce#ifndef__PROTOC_H__#define__PRO...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/u010431493">来自:	<span class="blog_title"> 碗豆豆的博客</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/wangqiuyun/article/details/42119835,BlogCommendFromBaidu_39"}'>
		<div class="content">
			<a href="https://blog.csdn.net/wangqiuyun/article/details/42119835" target="_blank" title="Protobuf简单使用及其抓包分析">
			<h4 class="text-truncate oneline">
					<em>Protobuf</em>简单使用<em>及其</em>抓包分析				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">12-24</span>
					<span class="read-num hover-hide">
          阅读数 
						3</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/wangqiuyun/article/details/42119835" target="_blank" title="Protobuf简单使用及其抓包分析">
						<span class="desc oneline">早之前就用过Google的Protobuf做数据编码,一直没有深入理解其中的原理,最近做了一次通讯抓包,发现其中很多Protobuf编码的数据包,于是决定分析一下其中的数据包及其编码。一、Protob...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/wangqiuyun">来自:	<span class="blog_title"> wangqiuyun的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/qq_27563511/article/details/79201924,BlogCommendFromBaidu_40"}'>
		<div class="content">
			<a href="https://blog.csdn.net/qq_27563511/article/details/79201924" target="_blank" title="Protobuf的使用和原理">
			<h4 class="text-truncate oneline">
					<em>Protobuf</em>的使用和<em>原理</em>				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">01-30</span>
					<span class="read-num hover-hide">
          阅读数 
						223</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/qq_27563511/article/details/79201924" target="_blank" title="Protobuf的使用和原理">
						<span class="desc oneline">原文:https://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.html简介什么是GoogleProtocolBuffer?假如您在网上搜索...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/qq_27563511">来自:	<span class="blog_title"> qq_27563511的博客</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/linyousong/article/details/51759150,BlogCommendFromBaidu_41"}'>
		<div class="content">
			<a href="https://blog.csdn.net/linyousong/article/details/51759150" target="_blank" title="Google protocol buffer 使用和原理浅析 And 进阶使用方式之PbCodec">
			<h4 class="text-truncate oneline">
					<em>Google</em> protocol buffer 使用和<em>原理</em>浅析 And 进阶使用方式之PbCodec				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">07-03</span>
					<span class="read-num hover-hide">
          阅读数 
						6643</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/linyousong/article/details/51759150" target="_blank" title="Google protocol buffer 使用和原理浅析 And 进阶使用方式之PbCodec">
						<span class="desc oneline">GoogleProtocolBuffer又简称Protobuf,它是一种很高效的结构化数据存储格式,一般用于结构化数据的串行化,简单说就是我们常说的数据序列化。这种序列化的协议非常轻便高效,而且是跨平...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/linyousong">来自:	<span class="blog_title"> 来自星星的の松子的博客</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/wk1134314305/article/details/75041314,BlogCommendFromBaidu_42"}'>
		<div class="content">
			<a href="https://blog.csdn.net/wk1134314305/article/details/75041314" target="_blank" title="【Protocol Buffer】Protobuf的序列化和反序列化">
			<h4 class="text-truncate oneline">
					【Protocol Buffer】<em>Protobuf</em>的<em>序列化</em>和反<em>序列化</em>				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">07-12</span>
					<span class="read-num hover-hide">
          阅读数 
						7311</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/wk1134314305/article/details/75041314" target="_blank" title="【Protocol Buffer】Protobuf的序列化和反序列化">
						<span class="desc oneline">前言目前主流的几种数据交互的格式主要有xml、json、protobuf等等。一般的web项目中,最流行的主要还是json。因为浏览器对于json数据支持非常好,有很多内建的函数支持。xml数据格式在...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/wk1134314305">来自:	<span class="blog_title"> KingWang@whu的博客</span></a>
                          </span>
				</p>
		</div>
				</div>

<div class="recommend-item-box recommend-ad-box"><div id="kp_box_67" data-pid="67" data-track-view='{"mod":"kp_popu_67-808","con":",,"}' data-track-click='{"mod":"kp_popu_67-808","con":",,"}'><script
async="async"
charset="utf-8"
src="https://shared.ydstatic.com/js/yatdk/3.0.1/stream.js"
data-id="8935aa488dd58452b9e5ee3b44f1212f"
data-div-Style="width:100%;"

data-tit-Style=“margin-bottom: 6px; font-size: 18px; line-height: 24px; color: #3d3d3d;display: inline-block;font-weight:bold;”
data-des-Style=“font-size: 13px; line-height: 22px; white-space: normal; color: #999;”
data-img-Style=“float:left;margin-right:15px;width:90px;height:60px;”>

		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/tanqian351/article/details/52577181,BlogCommendFromBaidu_43"}'>
		<div class="content">
			<a href="https://blog.csdn.net/tanqian351/article/details/52577181" target="_blank" title="REST简介">
			<h4 class="text-truncate oneline">
					REST<em>简介</em>				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">09-18</span>
					<span class="read-num hover-hide">
          阅读数 
						1604</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/tanqian351/article/details/52577181" target="_blank" title="REST简介">
						<span class="desc oneline">一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式。”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则。...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/tanqian351">来自:	<span class="blog_title"> 谷神通</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/ugg/article/details/9026649,BlogCommendFromBaidu_44"}'>
		<div class="content">
			<a href="https://blog.csdn.net/ugg/article/details/9026649" target="_blank" title="白话REST-识别真假REST">
			<h4 class="text-truncate oneline">
					白话REST-识别真假REST				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">06-13</span>
					<span class="read-num hover-hide">
          阅读数 
						3</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/ugg/article/details/9026649" target="_blank" title="白话REST-识别真假REST">
						<span class="desc oneline">大家对REST的认识?        谈到REST大家的第一印象就是通过http协议的GET,POST,DELETE,PUT方法实现对url资源的CRUD(创建、读取、更新和删除)操作。比如http:...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/ugg">来自:	<span class="blog_title"> ugg的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/fk5431/article/details/52860988,BlogCommendFromBaidu_45"}'>
		<div class="content">
			<a href="https://blog.csdn.net/fk5431/article/details/52860988" target="_blank" title="Protobuf介绍">
			<h4 class="text-truncate oneline">
					<em>Protobuf</em>介绍				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">10-19</span>
					<span class="read-num hover-hide">
          阅读数 
						815</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/fk5431/article/details/52860988" target="_blank" title="Protobuf介绍">
						<span class="desc oneline">今天突然换了个项目T_T,本来就是刚来什么都不是很熟悉,不过这样也好技术提高快。这个项目公司用的是ssh+protobuf,研究到现在总算基本的会使用protobuf了,先不管怎么用,先把这个框架是什...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/fk5431">来自:	<span class="blog_title"> 5431的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/ITer_ZC/article/details/40794845,BlogCommendFromBaidu_46"}'>
		<div class="content">
			<a href="https://blog.csdn.net/ITer_ZC/article/details/40794845" target="_blank" title="聊聊序列化(一)关于序列化协议的一些思考和问题">
			<h4 class="text-truncate oneline">
					聊聊<em>序列化</em>(一)关于<em>序列化</em>协议的一些思考和问题				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">11-04</span>
					<span class="read-num hover-hide">
          阅读数 
						5477</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/ITer_ZC/article/details/40794845" target="_blank" title="聊聊序列化(一)关于序列化协议的一些思考和问题">
						<span class="desc oneline">最近在设计一个RPC框架,需要处理序列化的问题。有很多种序列化协议可以选择,比如Java原生的序列化协议,Protobuf,Thrift,Hessian,Kryo等等,这里说的序列化协议专指Java的...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/ITer_ZC">来自:	<span class="blog_title"> ITer_ZC的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/qq_30643987/article/details/79024350,BlogCommendFromBaidu_47"}'>
		<div class="content">
			<a href="https://blog.csdn.net/qq_30643987/article/details/79024350" target="_blank" title="关于Protobuf的学习">
			<h4 class="text-truncate oneline">
					关于<em>Protobuf</em>的学习				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">01-11</span>
					<span class="read-num hover-hide">
          阅读数 
						3310</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/qq_30643987/article/details/79024350" target="_blank" title="关于Protobuf的学习">
						<span class="desc oneline">简介protoBuf是google的一种数据交换的格式,它独立于语言,独立于平台。google提供了多种语言的实现:java、c#、c++、go和python,每一种实现都包含了相应语言的编译器以及库...</span>
					</a>
					  <span class="blog_title_box oneline no-title">
            <span class="type-show type-show-blog type-show-after">博文</span>
                          </span>
				</p>
		</div>
				</div>

<div class="recommend-item-box recommend-ad-box"><div id="kp_box_68" data-pid="68" data-track-view='{"mod":"kp_popu_68-654","con":",,"}' data-track-click='{"mod":"kp_popu_68-654","con":",,"}'><div id="three_ad48" class="mediav_ad" ></div>
			<div class="recommend-item-box recommend-box-ident recommend-download-box clearfix"  data-track-click='{"mod":"popu_387","con":",https://download.csdn.net/download/xlkkxx/9489752,BlogCommendFromQuerySearch_48"}'>
		<a href="https://download.csdn.net/download/xlkkxx/9489752" target="_blank">
			<div class="content clearfix">
				<div class="">
					<h4 class="text-truncate oneline clearfix">
						<em>google</em> <em>protobuf</em> 开发专业文档						</h4>
					<span class="data float-right">04-13</span>
				</div>
				<div class="desc oneline">
						google protobuf 序列化 开发专业文档					</div>
      <span class="type-show type-show-download">下载</span>
			</div>
		</a>
	</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/laipixiaoxi/article/details/50337117,BlogCommendFromQuerySearch_49"}'>
		<div class="content">
			<a href="https://blog.csdn.net/laipixiaoxi/article/details/50337117" target="_blank" title="C# 使用 protobuf 进行对象序列化与反序列化">
			<h4 class="text-truncate oneline">
					C# 使用 <em>protobuf</em> 进行对象<em>序列化</em>与反<em>序列化</em>				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">12-17</span>
					<span class="read-num hover-hide">
          阅读数 
						5655</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/laipixiaoxi/article/details/50337117" target="_blank" title="C# 使用 protobuf 进行对象序列化与反序列化">
						<span class="desc oneline">本文永久地址:http://www.omuying.com/article/148.aspx,【文章转载请注明出处!】protobuf是google的一个开源项目,可用于以下两种用途:(1)数据的存储...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/laipixiaoxi">来自:	<span class="blog_title"> laipixiaoxi的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/sinat_26917383/article/details/72885715,BlogCommendHotData_0"}'>
		<div class="content">
			<a href="https://blog.csdn.net/sinat_26917383/article/details/72885715" target="_blank" title="keras系列︱人脸表情分类与识别:opencv人脸检测+Keras情绪分类(四)">
			<h4 class="text-truncate oneline">
					keras系列︱人脸表情分类与识别:opencv人脸检测+Keras情绪分类(四)				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">06-06</span>
					<span class="read-num hover-hide">
          阅读数 
						2万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/sinat_26917383/article/details/72885715" target="_blank" title="keras系列︱人脸表情分类与识别:opencv人脸检测+Keras情绪分类(四)">
						<span class="desc oneline">人脸识别热门,表情识别更加。但是表情识别很难,因为人脸的微表情很多,本节介绍一种比较粗线条的表情分类与识别的办法。

Keras系列:keras系列︱Sequential与Model模型、keras基本…


博文
来自: 素质云笔记/Recorder…



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/lubiaopan/article/details/6233517,BlogCommendHotData_1"}'>
		<div class="content">
			<a href="https://blog.csdn.net/lubiaopan/article/details/6233517" target="_blank" title=".NET和java的RSA互通,仅此而已">
			<h4 class="text-truncate oneline">
					.NET和java的RSA互通,仅此而已				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">03-09</span>
					<span class="read-num hover-hide">
          阅读数 
						3万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/lubiaopan/article/details/6233517" target="_blank" title=".NET和java的RSA互通,仅此而已">
						<span class="desc oneline">RSA .net jva 互通 解决不能互通的问题</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/lubiaopan">来自:	<span class="blog_title"> lubiaopan的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/xmt1139057136/article/details/32957663,BlogCommendHotData_2"}'>
		<div class="content">
			<a href="https://blog.csdn.net/xmt1139057136/article/details/32957663" target="_blank" title="jqm视频播放器,html5视频播放器,html5音乐播放器,html5播放器,video开发demo,html5视频播放示例,html5手机视频播放器">
			<h4 class="text-truncate oneline">
					jqm视频播放器,html5视频播放器,html5音乐播放器,html5播放器,video开发demo,html5视频播放示例,html5手机视频播放器				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">06-21</span>
					<span class="read-num hover-hide">
          阅读数 
						6万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/xmt1139057136/article/details/32957663" target="_blank" title="jqm视频播放器,html5视频播放器,html5音乐播放器,html5播放器,video开发demo,html5视频播放示例,html5手机视频播放器">
						<span class="desc oneline">最近在论坛中看到了很多实用html5开发视频播放,音乐播放的功能,大部分都在寻找答案。因此我就在这里做一个demo,供大家相互学习。html5开发越来越流行了,而对于视频这一块也是必不可少的一部分。如...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/xmt1139057136">来自:	<span class="blog_title"> xmt1139057136的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/fendoubasaonian/article/details/50180025,BlogCommendHotData_3"}'>
		<div class="content">
			<a href="https://blog.csdn.net/fendoubasaonian/article/details/50180025" target="_blank" title="虚拟机Linux如何使用笔记本电脑的前置摄像头">
			<h4 class="text-truncate oneline">
					虚拟机Linux如何使用笔记本电脑的前置摄像头				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">12-04</span>
					<span class="read-num hover-hide">
          阅读数 
						1万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/fendoubasaonian/article/details/50180025" target="_blank" title="虚拟机Linux如何使用笔记本电脑的前置摄像头">
						<span class="desc oneline">一、Windows设置1.点击开始-&gt;运行,在对话框中输入”services.msc”,回车,打开windows服务管理器。2.在服务列表中选中”VMware USB Arbitration Serv...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/fendoubasaonian">来自:	<span class="blog_title"> fendoubasaonian的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/bestone0213/article/details/44307267,BlogCommendHotData_4"}'>
		<div class="content">
			<a href="https://blog.csdn.net/bestone0213/article/details/44307267" target="_blank" title="追踪mysql操作记录时间1.">
			<h4 class="text-truncate oneline">
					追踪mysql操作记录时间1.				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">03-16</span>
					<span class="read-num hover-hide">
          阅读数 
						4787</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/bestone0213/article/details/44307267" target="_blank" title="追踪mysql操作记录时间1.">
						<span class="desc oneline">测试环境莫名其妙有几条重要数据被删除了,由于在binlog里面只看到是公用账号删除的,无法查询是那个谁在那个时间段登录的,就考虑怎么记录每一个MYSQL账号的登录信息,在MYSQL中,每个连接都会先执...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/bestone0213">来自:	<span class="blog_title"> 路在脚下</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/u011860731/article/details/48733073,BlogCommendHotData_5"}'>
		<div class="content">
			<a href="https://blog.csdn.net/u011860731/article/details/48733073" target="_blank" title="ThreadLocal的设计理念与作用">
			<h4 class="text-truncate oneline">
					ThreadLocal的设计理念与作用				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">09-25</span>
					<span class="read-num hover-hide">
          阅读数 
						2万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/u011860731/article/details/48733073" target="_blank" title="ThreadLocal的设计理念与作用">
						<span class="desc oneline">Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的Thread...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/u011860731">来自:	<span class="blog_title"> u011860731的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/lk_blog/article/details/8007777,BlogCommendHotData_6"}'>
		<div class="content">
			<a href="https://blog.csdn.net/lk_blog/article/details/8007777" target="_blank" title="配置简单功能强大的excel工具类搞定excel导入导出工具类(一)">
			<h4 class="text-truncate oneline">
					配置简单功能强大的excel工具类搞定excel导入导出工具类(一)				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">09-22</span>
					<span class="read-num hover-hide">
          阅读数 
						3万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/lk_blog/article/details/8007777" target="_blank" title="配置简单功能强大的excel工具类搞定excel导入导出工具类(一)">
						<span class="desc oneline">对于J2EE项目导入导出Excel是最普通和实用功能,本工具类使用步骤简单,功能强大,只需要对实体类进行简单的注解就能实现导入导出功能,导入导出操作的都是实体对象.

请看一下这个类都有哪些功能:



博文
来自: 李坤 大米时代 第五期



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/moses1213/article/details/45202821,BlogCommendHotData_7"}'>
		<div class="content">
			<a href="https://blog.csdn.net/moses1213/article/details/45202821" target="_blank" title="opencv最大类间方差法(otsu)实现(三种算法比较)">
			<h4 class="text-truncate oneline">
					opencv最大类间方差法(otsu)实现(三种算法比较)				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">04-22</span>
					<span class="read-num hover-hide">
          阅读数 
						7919</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/moses1213/article/details/45202821" target="_blank" title="opencv最大类间方差法(otsu)实现(三种算法比较)">
						<span class="desc oneline">OTSU算法:就是计算出灰度图最佳阈值的算法

1.先对灰度图进行直方图计算并归一化处理,得到0-255之间每个像素在灰度图中出现的概率,即表示为某个像素在灰度图中出现了n个,灰度图总的像素点为N个,则…


博文
来自: moses1213的专栏



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/wuchengzeng/article/details/50037611,BlogCommendHotData_8"}'>
		<div class="content">
			<a href="https://blog.csdn.net/wuchengzeng/article/details/50037611" target="_blank" title="jquery/js实现一个网页同时调用多个倒计时(最新的)">
			<h4 class="text-truncate oneline">
					jquery/js实现一个网页同时调用多个倒计时(最新的)				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">11-25</span>
					<span class="read-num hover-hide">
          阅读数 
						18万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/wuchengzeng/article/details/50037611" target="_blank" title="jquery/js实现一个网页同时调用多个倒计时(最新的)">
						<span class="desc oneline">jquery/js实现一个网页同时调用多个倒计时(最新的)

最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦!

//js



博文
来自: websites



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/phenixyf/article/details/76090873,BlogCommendHotData_9"}'>
		<div class="content">
			<a href="https://blog.csdn.net/phenixyf/article/details/76090873" target="_blank" title="按键及矩阵键盘程序------/* 自己实验确认并总结 */">
			<h4 class="text-truncate oneline">
					按键及矩阵键盘程序------/* 自己实验确认并总结 */				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">07-25</span>
					<span class="read-num hover-hide">
          阅读数 
						4363</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/phenixyf/article/details/76090873" target="_blank" title="按键及矩阵键盘程序------/* 自己实验确认并总结 */">
						<span class="desc oneline">新型的按键扫描程序

不过入式处理器上面我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非常坚信这种按键处理办法的便捷和高效,你可以移…


博文
来自: phenixyf的专栏



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/qq_36892341/article/details/73918672,BlogCommendHotData_10"}'>
		<div class="content">
			<a href="https://blog.csdn.net/qq_36892341/article/details/73918672" target="_blank" title="linux上安装Docker(非常简单的安装方法)">
			<h4 class="text-truncate oneline">
					linux上安装Docker(非常简单的安装方法)				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">06-29</span>
					<span class="read-num hover-hide">
          阅读数 
						13万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/qq_36892341/article/details/73918672" target="_blank" title="linux上安装Docker(非常简单的安装方法)">
						<span class="desc oneline">最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗!

Docker的三大核心概念:镜像、容器、仓库
镜像:类似虚拟机的镜像、用俗话说就是安装文件。
容器:类似一个轻量…


博文
来自: 我走小路的博客



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/hayixia606/article/details/79237220,BlogCommendHotData_11"}'>
		<div class="content">
			<a href="https://blog.csdn.net/hayixia606/article/details/79237220" target="_blank" title="微信支付V3微信公众号支付PHP教程(thinkPHP5公众号支付)/JSSDK的使用">
			<h4 class="text-truncate oneline">
					微信支付V3微信公众号支付PHP教程(thinkPHP5公众号支付)/JSSDK的使用				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">02-02</span>
					<span class="read-num hover-hide">
          阅读数 
						7万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/hayixia606/article/details/79237220" target="_blank" title="微信支付V3微信公众号支付PHP教程(thinkPHP5公众号支付)/JSSDK的使用">
						<span class="desc oneline">扫二维码关注,获取更多技术分享

本文承接之前发布的博客《 微信支付V3微信公众号支付PHP教程/thinkPHP5公众号支付》必须阅读上篇文章后才可以阅读这篇文章。由于最近一段时间工作比较忙,…


博文
来自: Marswill



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/MSPinyin/article/details/6141556,BlogCommendHotData_12"}'>
		<div class="content">
			<a href="https://blog.csdn.net/MSPinyin/article/details/6141556" target="_blank" title="N元语言模型的训练方法">
			<h4 class="text-truncate oneline">
					N元语言模型的训练方法				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">01-15</span>
					<span class="read-num hover-hide">
          阅读数 
						1万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/MSPinyin/article/details/6141556" target="_blank" title="N元语言模型的训练方法">
						<span class="desc oneline">------------------------------------------------------------------大家好,我是Bright,微软拼音的开发工程师。我之前介绍了语言模型...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/MSPinyin">来自:	<span class="blog_title"> 微软拼音输入法团队博客</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/cheungmine/article/details/1898129,BlogCommendHotData_13"}'>
		<div class="content">
			<a href="https://blog.csdn.net/cheungmine/article/details/1898129" target="_blank" title="RTree源代码——C语言实现">
			<h4 class="text-truncate oneline">
					RTree源代码——C语言实现				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">11-22</span>
					<span class="read-num hover-hide">
          阅读数 
						1万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/cheungmine/article/details/1898129" target="_blank" title="RTree源代码——C语言实现">
						<span class="desc oneline">RTree源代码——C语言实现cheungmine一、什么是RTree“R树是B树向多维空间发展的另一种形式,它将空间对象按范围划分,每个结点都对应一个区域和一个磁盘页,非叶结点的磁盘页中存储其所有子...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/cheungmine">来自:	<span class="blog_title"> ZHANG</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/zhmxy555/article/details/19809337,BlogCommendHotData_14"}'>
		<div class="content">
			<a href="https://blog.csdn.net/zhmxy555/article/details/19809337" target="_blank" title="【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置">
			<h4 class="text-truncate oneline">
					【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">02-24</span>
					<span class="read-num hover-hide">
          阅读数 
						63万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/zhmxy555/article/details/19809337" target="_blank" title="【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置">
						<span class="desc oneline">本系列文章由zhmxy555(毛星云)编写,转载请注明出处。  	文章链接: http://blog.csdn.net/poem_qianmo/article/details/19809337	作者:...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/zhmxy555">来自:	<span class="blog_title"> 【浅墨的游戏编程Blog】毛星云(浅墨)的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/u010785685/article/details/52366977,BlogCommendHotData_15"}'>
		<div class="content">
			<a href="https://blog.csdn.net/u010785685/article/details/52366977" target="_blank" title="redis两种持久化策略">
			<h4 class="text-truncate oneline">
					redis两种持久化策略				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">08-30</span>
					<span class="read-num hover-hide">
          阅读数 
						1万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/u010785685/article/details/52366977" target="_blank" title="redis两种持久化策略">
						<span class="desc oneline">reids是一个key-value存储系统,为了保证效率,缓存在内存中,但是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,以保证数据的持久化。

所以:redis是一…


博文
来自: 那么好,



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/gefangshuai/article/details/50328451,BlogCommendHotData_16"}'>
		<div class="content">
			<a href="https://blog.csdn.net/gefangshuai/article/details/50328451" target="_blank" title="关于SpringBoot bean无法注入的问题(与文件包位置有关)">
			<h4 class="text-truncate oneline">
					关于SpringBoot bean无法注入的问题(与文件包位置有关)				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">12-16</span>
					<span class="read-num hover-hide">
          阅读数 
						9万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/gefangshuai/article/details/50328451" target="_blank" title="关于SpringBoot bean无法注入的问题(与文件包位置有关)">
						<span class="desc oneline">问题场景描述整个项目通过Maven构建,大致结构如下:

核心Spring框架一个module spring-boot-base
service和dao一个module server-core
提供系统…


博文
来自: 开发随笔



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/qq_36523667/article/details/79242952,BlogCommendHotData_17"}'>
		<div class="content">
			<a href="https://blog.csdn.net/qq_36523667/article/details/79242952" target="_blank" title="Android事件分发机制之源码完美解析(上)">
			<h4 class="text-truncate oneline">
					Android事件分发机制之源码完美解析(上)				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">02-03</span>
					<span class="read-num hover-hide">
          阅读数 
						2102</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/qq_36523667/article/details/79242952" target="_blank" title="Android事件分发机制之源码完美解析(上)">
						<span class="desc oneline">学事件分发是为了什么呢?还不是为了解决滑动冲突的。

实际上,如果仅仅是为了解决滑动冲突的,大可不必看源码,只需要掌握事件分发的外在规律即可。

只要记住这张图,再明白内部拦截法和外部拦截法,滑动冲突…


博文
来自: qq_36523667的博客



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/wild46cat/article/details/54171973,BlogCommendHotData_18"}'>
		<div class="content">
			<a href="https://blog.csdn.net/wild46cat/article/details/54171973" target="_blank" title="spark 存储json数据遇到问题——json4s使用(一)">
			<h4 class="text-truncate oneline">
					spark 存储json数据遇到问题——json4s使用(一)				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">01-07</span>
					<span class="read-num hover-hide">
          阅读数 
						6251</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/wild46cat/article/details/54171973" target="_blank" title="spark 存储json数据遇到问题——json4s使用(一)">
						<span class="desc oneline">spark 存储json数据遇到问题——json4s使用(一)

在进行spark的学习过程中遇到了这样的问题。
1、《O’REILLY Learning Spark》的书中说道能够使用spark进…


博文
来自: 止水的专栏



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/VBcom/article/details/7245186,BlogCommendHotData_19"}'>
		<div class="content">
			<a href="https://blog.csdn.net/VBcom/article/details/7245186" target="_blank" title="DirectX修复工具增强版">
			<h4 class="text-truncate oneline">
					DirectX修复工具增强版				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">02-09</span>
					<span class="read-num hover-hide">
          阅读数 
						182万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/VBcom/article/details/7245186" target="_blank" title="DirectX修复工具增强版">
						<span class="desc oneline">最后更新:2018-12-20

DirectX修复工具最新版:DirectX Repair V3.8 增强版 NEW!

版本号:V3.8.0.11638

大小: 107MB/7z格式压缩,18…


博文
来自: VBcom的专栏



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/a919423654/article/details/68923536,BlogCommendHotData_20"}'>
		<div class="content">
			<a href="https://blog.csdn.net/a919423654/article/details/68923536" target="_blank" title="spring data 复杂的查询,不用写sql">
			<h4 class="text-truncate oneline">
					spring data 复杂的查询,不用写sql				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">03-31</span>
					<span class="read-num hover-hide">
          阅读数 
						9673</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/a919423654/article/details/68923536" target="_blank" title="spring data 复杂的查询,不用写sql">
						<span class="desc oneline">转载自:http://www.cnblogs.com/ityouknow/p/5891443.html

方便自己以后查看

spring
boot(五):spring d…


博文
来自: 我要飞翔



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/chunlongyuan/article/details/8565102,BlogCommendHotData_21"}'>
		<div class="content">
			<a href="https://blog.csdn.net/chunlongyuan/article/details/8565102" target="_blank" title="java通过生日得到星座">
			<h4 class="text-truncate oneline">
					java通过生日得到星座				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">02-02</span>
					<span class="read-num hover-hide">
          阅读数 
						5766</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/chunlongyuan/article/details/8565102" target="_blank" title="java通过生日得到星座">
						<span class="desc oneline">private final static int[] dayArr = new int[] { 20, 19, 21, 20, 21, 22, 23, 23, 23, 24, 23, 22 };
p...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/chunlongyuan">来自:	<span class="blog_title"> Pig</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/qq574857122/article/details/16361033,BlogCommendHotData_22"}'>
		<div class="content">
			<a href="https://blog.csdn.net/qq574857122/article/details/16361033" target="_blank" title="强连通分量及缩点tarjan算法解析">
			<h4 class="text-truncate oneline">
					强连通分量及缩点tarjan算法解析				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">11-16</span>
					<span class="read-num hover-hide">
          阅读数 
						32万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/qq574857122/article/details/16361033" target="_blank" title="强连通分量及缩点tarjan算法解析">
						<span class="desc oneline">强连通分量:

简言之 就是找环(每条边只走一次,两两可达)
孤立的一个点也是一个连通分量

使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)

定义:
int Ti…


博文
来自: 九野的博客



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/silentpebble/article/details/41279285,BlogCommendHotData_23"}'>
		<div class="content">
			<a href="https://blog.csdn.net/silentpebble/article/details/41279285" target="_blank" title="centos 查看命令源码">
			<h4 class="text-truncate oneline">
					centos 查看命令源码				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">11-19</span>
					<span class="read-num hover-hide">
          阅读数 
						2万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/silentpebble/article/details/41279285" target="_blank" title="centos 查看命令源码">
						<span class="desc oneline"># yum install yum-utils

设置源:
[base-src]
name=CentOS-5.4 - Base src -
baseurl=http://vault.ce…


博文
来自: linux/unix



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/wangyaninglm/article/details/52142217,BlogCommendHotData_24"}'>
		<div class="content">
			<a href="https://blog.csdn.net/wangyaninglm/article/details/52142217" target="_blank" title="OpenCV+OpenGL 双目立体视觉三维重建">
			<h4 class="text-truncate oneline">
					OpenCV+OpenGL 双目立体视觉三维重建				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">08-08</span>
					<span class="read-num hover-hide">
          阅读数 
						4万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/wangyaninglm/article/details/52142217" target="_blank" title="OpenCV+OpenGL 双目立体视觉三维重建">
						<span class="desc oneline">0.绪论这篇文章主要为了研究双目立体视觉的最终目标——三维重建,系统的介绍了三维重建的整体步骤。双目立体视觉的整体流程包括:图像获取,摄像机标定,特征提取(稠密匹配中这一步可以省略),立体匹配,三维重...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/wangyaninglm">来自:	<span class="blog_title"> shiter编写程序的艺术</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/fbysss/article/details/6221917,BlogCommendHotData_25"}'>
		<div class="content">
			<a href="https://blog.csdn.net/fbysss/article/details/6221917" target="_blank" title="psi-probe安装手记">
			<h4 class="text-truncate oneline">
					psi-probe安装手记				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">03-03</span>
					<span class="read-num hover-hide">
          阅读数 
						1万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/fbysss/article/details/6221917" target="_blank" title="psi-probe安装手记">
						<span class="desc oneline">作者:fbysssmsn:[email protected]  blog:blog.csdn.net/fbysss声明:本文由fbysss原创,转载请注明出处关键字:tomcat监控...</span>
					</a>
					  <span class="blog_title_box oneline ">
            <span class="type-show type-show-blog type-show-after">博文</span>
                              <a target="_blank" href="https://blog.csdn.net/fbysss">来自:	<span class="blog_title"> fbysss的专栏</span></a>
                          </span>
				</p>
		</div>
				</div>



		<div class="recommend-item-box recommend-box-ident type_blog clearfix"  data-track-click='{"mod":"popu_387","con":",https://blog.csdn.net/wujiangwei567/article/details/52757746,BlogCommendHotData_26"}'>
		<div class="content">
			<a href="https://blog.csdn.net/wujiangwei567/article/details/52757746" target="_blank" title="微信小程序三(设置页面标题)">
			<h4 class="text-truncate oneline">
					微信小程序三(设置页面标题)				</h4>
			<div class="info-box d-flex align-content-center">
				<p class="date-and-readNum oneline">
					<span class="date hover-show">10-08</span>
					<span class="read-num hover-hide">
          阅读数 
						4万+</span>
					</p>
				</div>
			</a>
				<p class="content">
					<a href="https://blog.csdn.net/wujiangwei567/article/details/52757746" target="_blank" title="微信小程序三(设置页面标题)">
						<span class="desc oneline">页面写好了,总感觉哪里不爽,对,就是那,每个页面的标题都一样,都是 Wechat

cou 呀 真cou, 那咱就单独说说,如何设置 页面标题。

设置页面标题 ,相当的简单,
找到所在页面…


博文
来自: 不忘初心,才能始终



    <div class="recommend-item-box type_hot_word">
        <div class="content clearfix">
    <div class="word float-left">
                      <span>
        <a href="https://edu.csdn.net/course/play/7221/151329 " target="_blank">
        tensorflow简介          </a></span>
                              <span>
        <a href="https://edu.csdn.net/course/play/2777/105429 " target="_blank">
        算术编码原理          </a></span>
                              <span>
        <a href="https://edu.csdn.net/course/play/8211/168762 " target="_blank">
        卷积神经网络原理          </a></span>
                              <span>
        <a href="https://edu.csdn.net/course/play/7493/158091 " target="_blank">
        卷积神经网络原理          </a></span>
                              <span>
        <a href="https://edu.csdn.net/course/play/2777/45302 " target="_blank">
        哈夫曼编码原理          </a></span>
                    </div>
  </div>
              <div class="content clearfix">
    <div class="float-left">
              <span>
        <a href="https://www.csdn.net/gather_2d/MtzaQg3sMzItYmxvZwO0O0OO0O0O.html" target="_blank">
        c++ google protobuf</a>
      </span>
              <span>
        <a href="https://www.csdn.net/gather_2a/MtzaMg3sNTctYmxvZwO0O0OO0O0O.html" target="_blank">
        c++ protobuf 序列化截断</a>
      </span>
              <span>
        <a href="https://www.csdn.net/gather_27/MtTakg4sOTcwOS1ibG9n.html" target="_blank">
        android view绘制和显示原理简介</a>
      </span>
              <span>
        <a href="https://www.csdn.net/gather_2f/NtzaUg5sNjY5LWJsb2cO0O0O.html" target="_blank">
        bootstrap.js简介</a>
      </span>
              <span>
        <a href="https://www.csdn.net/gather_22/MtzaAg4sNTMtYmxvZwO0O0OO0O0O.html" target="_blank">
        c++stl简介</a>
      </span>
              <span>
        <a href="https://www.csdn.net/gather_4a/NtzacgxsNC1lZHUO0O0O.html" target="_blank">
        人工智能及其应用课程</a>
      </span>
              <span>
        <a href="https://www.csdn.net/gather_4a/Ntzakg2sMi1lZHUO0O0O.html" target="_blank">
        google人工智能培训</a>
      </span>
            </div>
  </div>
      </div>


        <div class="recommend-loading-box">
            <img src='https://csdnimg.cn/release/phoenix/images/feedLoading.gif'>
        </div>
        <div class="recommend-end-box">
            <p class="text-center">没有更多推荐了,<a href="https://blog.csdn.net/" class="c-blue c-blue-hover c-blue-focus">返回首页</a></p>
        </div>
    </div>
</main>

<aside>
	    <div id="asideProfile" class="aside-box">
<!-- <h3 class="aside-title">个人资料</h3> -->
<div class="profile-intro d-flex">
    <div class="avatar-box d-flex justify-content-center flex-column">
        <a href="https://blog.csdn.net/Chengzi_comm">
            <img src="https://avatar.csdn.net/8/9/5/3_chengzi_comm.jpg" class="avatar_pic">
        </a>
        
    </div>
    <div class="user-info d-flex justify-content-center flex-column">
        <p class="name csdn-tracking-statistics tracking-click" data-mod="popu_379">
            <a href="https://blog.csdn.net/Chengzi_comm" target="_blank" class="" id="uid">Chengzi_comm</a>
        </p>
                </div>
            <div class="opt-box d-flex justify-content-center flex-column">
        <span  class="csdn-tracking-statistics tracking-click" data-mod="popu_379">
            <a class="btn btn-sm btn-red-hollow attention" id="btnAttent">关注</a>
        </span>
    </div>
        </div>
<div class="data-info d-flex item-tiling">
            <dl class="text-center" title="29">
                    <dt><a href="https://blog.csdn.net/chengzi_comm?t=1">原创</a></dt>
        <dd><a href="https://blog.csdn.net/chengzi_comm?t=1"><span class="count">29</span></a></dd>
                </dl>
    <dl class="text-center" id="fanBox" title="31">
        <dt>粉丝</dt>
        <dd><span class="count" id="fan">31</span></dd>
    </dl>
    <dl class="text-center" title="44">
        <dt>喜欢</dt>
        <dd><span class="count">44</span></dd>
    </dl>
    <dl class="text-center" title="22">
        <dt>评论</dt>
        <dd><span class="count">22</span></dd>
    </dl>
</div>
<div class="grade-box clearfix">
    <dl>
        <dt>等级:</dt>
        <dd>
            <a href="https://blog.csdn.net/home/help.html#level" title="4级,点击查看等级说明" target="_blank">
                <svg class="icon icon-level" aria-hidden="true">
                    <use xlink:href="#csdnc-bloglevel-4"></use>
                </svg>
            </a>
        </dd>
    </dl>
    <dl>
        <dt>访问:</dt>
        <dd title="111411">
            11万+            </dd>
    </dl>
    <dl>
        <dt>积分:</dt>
        <dd title="1354">
            1354            </dd>
    </dl>
    <dl title="47793">
        <dt>排名:</dt>
        <dd>4万+</dd>
    </dl>
</div>
</div>
	    <div class="csdn-tracking-statistics mb8 box-shadow" data-pid="blog" data-mod="popu_4" style="height:250px;">
<div class="aside-content text-center" id="cpro_u2734133">
  <div id="kp_box_56" data-pid="56" data-track-view='{"mod":"kp_popu_56-76","con":",,"}' data-track-click='{"mod":"kp_popu_56-76","con":",,"}'><script type="text/javascript">
(function() {
    var s = "_" + Math.random().toString(36).slice(2);
    document.write('<div style="" id="' + s + '"></div>');
    (window.slotbydup = window.slotbydup || []).push({
        id: "u3032528",
        container:  s
    });
})();

最新评论

	<div class="aside-box">
		<div id="kp_box_57" data-pid="57" data-track-view='{"mod":"kp_popu_57-77","con":",,"}' data-track-click='{"mod":"kp_popu_57-77","con":",,"}'><script type="text/javascript">
(function() {
    var s = "_" + Math.random().toString(36).slice(2);
    document.write('<div style="" id="' + s + '"></div>');
    (window.slotbydup = window.slotbydup || []).push({
        id: "u3163270",
        container:  s
    });
})();
  • 点赞 取消点赞

    5

  • 评论

    1

  • 目录
  • 收藏
  • 手机看
  • 上一篇
  • 下一篇
  • 更多
    		</a>
    		<ul class="widescreen-more-box">
    												<li class="widescreen-more">
    					<a class="btn-comments low-height hover-box" href="https://blog.csdn.net/chengzi_comm/article/details/53037967" title="仿迅雷实现下载工具,支持断点续传和多线程下载以及简单界面展示">
    						<svg class="icon hover-hide" aria-hidden="true">
    							<use xlink:href="#csdnc-chevronleft"></use>
    						</svg>
    						<span class="hover-show text text3">上一篇</span>
    					</a>
    				</li>
    															<li class="widescreen-more">
    				<a class="btn-comments hover-box low-height" href="https://blog.csdn.net/chengzi_comm/article/details/56839968" title="GNU profiler(gprof)使用介绍及遇到的问题总结">
    					<svg class="icon hover-hide" aria-hidden="true">
    						<use xlink:href="#csdnc-chevronright"></use>
    					</svg>
    					<span class="hover-show text text3">下一篇</span>
    				</a>
    			</li>
    						</ul>
    	</li>
    </ul>
    
猿学习
</div>
<ul class="">
	<li><div id="kp_box_456" data-pid="456" data-track-view='{"mod":"kp_popu_456-721","con":",,"}' data-track-click='{"mod":"kp_popu_456-721","con":",,"}'><a href="https://gitchat.csdn.net/column/5a7d1a13a7f22b3dffca7e49?utm_source=csdn100" target="_blank"><div class="blogkp3"><img src="http://img-ads.csdn.net/2018/201811091452349556.png"width="100" height="100"><h6>Python 爬虫和数据分析实战</h6><span style="position:absolute;right:0;bottom:0;background:url(https://img-ads.csdn.net/2016/201608021757063065.png) no-repeat;width:33px;height:18px;display:block;z-index: 9999;"></span></div></a></div></li>		<li><div id="kp_box_457" data-pid="457" data-track-view='{"mod":"kp_popu_457-681","con":",,"}' data-track-click='{"mod":"kp_popu_457-681","con":",,"}'><img src="http://img-ads.csdn.net/2019/201901081453403307.jpg"width="100" height="100"></div></li>		<li><div id="kp_box_458" data-pid="458" data-track-view='{"mod":"kp_popu_458-640","con":",,"}' data-track-click='{"mod":"kp_popu_458-640","con":",,"}'><a href="https://gitchat.csdn.net/column/5a7d1a13a7f22b3dffca7e49?utm_source=csdn100" target="_blank"><div class="blogkp3"><img src="http://img-ads.csdn.net/2018/201811091452349556.png"width="100" height="100"><h6>Python 爬虫和数据分析实战</h6><span style="position:absolute;right:0;bottom:0;background:url(https://img-ads.csdn.net/2016/201608021757063065.png) no-repeat;width:33px;height:18px;display:block;z-index: 9999;"></span></div></a></div></li>		<li><div id="kp_box_459" data-pid="459" data-track-view='{"mod":"kp_popu_459-687","con":",,"}' data-track-click='{"mod":"kp_popu_459-687","con":",,"}'><img src="http://img-ads.csdn.net/2018/201811231432284520.jpg"width="100" height="100"></div></li>	</ul>
<!-- <script type="text/javascript" src="https://csdnimg.cn/release/phoenix/production/markdownCopy-718168246b.js" /></script> -->
<script src="https://csdnimg.cn/release/phoenix/themes/skin3-template/skin3-template-fc7383b956.min.js"></script>

猜你喜欢

转载自blog.csdn.net/zzb2019/article/details/87900351