回复:没来这学校之前我是个活泼可爱的
找个男朋友女朋友
贴吧:陕西科技大学镐京学院作者:皆在节奏中 2015-12-03 13:40
锟截革拷锟斤拷没有叼叼的标题怎么能有叼叼的鞭。
再也不相信老妈的打针技术了,一针愣是活生生打毛上面去了,话说打毛上有疫苗作用不。
贴吧:边境牧羊犬作者:到消逝的那一刻 2016-03-08 18:11
锟截革拷锟斤拷这是金毛吗?品相怎么样??哪位专家能指点 一下??
背带每天带着,背上毛都快没了,以后还会生毛吗?
贴吧:金毛狗作者:人生感悟2016 2016-03-08 16:34
锟截革拷锟斤拷曾经找人打我的女生,现在是我的.........
中午商量好之后,我们吃完饭就特地去超市买了点东西,要了两个那种大的黑色的塑料袋。
后来我们就把袋子套在了一起,让小胖揣了兜里了。
因为今天中午我们回来的晚,所以我们回来后毛寸头就躺床上了,依旧侧着身在那跟他对象发短信。
当时桌上扔着一袋子苹果,毛寸头见我们回来,就坐了起来,指了指桌上的苹果,冲我们说让我们吃苹果。
我们几个被他这么一客套,感觉有点心虚,都互相看了看,都没拿,说我们不吃。
毛寸头也没坚持,就说放桌上吧,我们什么时候想吃拿就行。
下午我们去上课的时候,小胖他们几个就跟我说会不会误会了毛寸头了,其实事情跟他并没啥关系,上次黄卷毛那事估计他也是说的实话,怎么说人家还让苹果给我们吃呢。
被小胖他们这一说,我心里也动摇了,心想其实这一切都是我的猜测,万一要是错怪了毛寸头可咋整。
后来我越想越心烦,走到教室的时候也没有想好到底对不对他动手了,最后我就决定今天晚上先不对他下手了,观察观察再说。
当时做的这个决定可以说让我后来十分的后悔,我一直都没有记住那句话,“对敌人的仁慈就是对自己的残忍。”
不过当时我不只是因为自己本身挺仁慈的,还因为我的意志产生了动摇,以至于我不敢确定毛寸头到底是不是故意出卖我们的。
从那次我就得出一个结论,那就是一个优秀的领导者必须有着强大的明辨是非的判断力和坚定的意志力。
后来我们到了教室上课的时候,数学课代表正在那发卷子呢。
当时我看到我考了一百三十九分还挺激动的。
那时候我们语数英三门都是一百五十分,数学能够考一百三十多分算是挺高的了,像小胖这号样的,才考了九十五分,算算比例,连及格都没及格。
我当时挺高兴的,就跑夏梦位子上看了看,顿时就感觉浑身上下被浇了一盆冷水,人家考了一百四十二,比我还高了三分。
不过后来物理化学发下来之后我发现两科加起来比她高了四分,算下来自己还比她高了一分,一个下午都给我激动的不行,心想这马上就要美梦成真了。
贴吧:校花的贴身高手作者:黄沙漫天哦 2015-12-03 15:40
锟截革拷锟斤拷好聚好散,没有不散的宴席
为毛我的标题加那么多的多余字眼,我还是喜欢有情义的队伍
贴吧:lgd作者:Kun将军 2016-03-08 18:42
亲身体验感恩回复 普通患者非广告
去年头皮集中毛囊炎,用了些外用药物不管用,偶然看到网上有朋友说 阿莫西林加克拉霉素片可以治愈,尝试之后非常有效,现基本没有发生过。感恩发帖,希望其他病患早日康复不要花冤枉钱,用量根据情况而定,不要超量坚持一周通常有效。
贴吧:毛锟斤拷锟斤拷作者:Cheng梦想sky 2019-02-27 22:21
锟截革拷锟斤拷连载【七根凶简】作者 尾鱼
难不成是曹解放?醒了酒了,知道干正事了?
一万三的心跳的厉害,炎红砂也想到了,悄声说:“过去看看?”
她低头看树下,也不知道是不是心理作用,总觉得哪怕周围有狼,白天的安全系数也总比晚上要高。
两个人下了树,都先捡了粗的树棍,只要狼敢露头,就迎头来一棍。
辨了辨方向,笃笃笃的声音,好像是从东首边传来的。
一万三正想过去,炎红砂拉住他:“那个……我们一夜没回去,罗韧他们肯定得找我们了。”
就在这个时候,像是专门应和她,远处的天空上,忽然开始弥上大团滚滚的白色烟雾。
晚上用亮,白天用烟,罗韧他们大概在烧烟饼给信号了。
一万三犹豫了一下:“咱们回去了,还有没有把握找回这里?”
炎红砂想了想:“反正我不行,我定向找位置都不行。”
“我也不行。”一万三指了指东面,“这声音这么轻,走开几步就听不见了,万一过一会它不啄了,咱们更找不着了。再说了,这是进山的方向,罗韧他们会往这头找的,如果还是用赏金猎人扫,早晚找到这儿,咱给留个信号吧,大点的。”
他说干就干,林中找了片空地,用树棍在地上画挖了个足有两三米长的箭头,箭头指东,斗大的字写:平安,三,炎。
炎红砂找来很多泛黄的树叶子,沿着箭头和字叠放,看着分外醒目——岭子里没人,即便有动物,也未必能把指向搅的面目全非,罗韧他们只要找来了,总能看到的。
做完了,掸掸手,握紧树棍,一前一后,警惕着左右,向着声音传来的地方找过去。
走了约莫小半里路,两个人同时停下。
找到了,是个高处的明洞。
明洞,是指山壁稍微里凹,不足栖身,避雨都嫌小,在山里,属于视觉盲点——瞥一眼看过,稀疏平常。
笃笃的声音,就是从明洞里传来的。
走近了看,有个刨开的土堆,偶尔的,还有一把土正从堆里刨出来。
一万三和炎红砂对视了一眼,小心翼翼地走近,试探性地叫:“解放?”
笃笃的啄声一下子停了。
果然是曹解放,身上掉了不少毛,也有伤口,大概是昨晚上大战群鸡之后留下的,脖子上还执拗地挂着两块小木牌子,眼神茫然地看一万三和炎红砂,尖尖的鸡喙都有些磨秃了。
看了会之后,又低下头去啄啄啄。
一万三看明白了,最开始,这个明洞里是堆土的,曹解放把土堆刨开之后,下面出现了一块石头,它搬不开,也刨不动,也就这么一团傻气的一直啄了。
他赶紧把曹解放抱起来,说:“来,解放,咱不啄了啊,嘴啄没了,就没法吃饭了。”
曹解放还在啄,下意识啄着空气,脑袋虚点虚点的。
一万三挺难受的,问炎红砂:“怎么让解放停下来啊?”
“书里没说吗?”
没说,就说这个法子乖癖,伤害挺大,得不偿失,不建议尝试。
看到曹解放现在癔症般的模样,一万三觉得自己挺混账的,一直捋顺着曹解放的脖颈,小声说:“解放,咱不啄了啊,不找了,以后再也不喝酒了。”
炎红砂过去摸了摸曹解放的脑袋,见一万三一时半会没动的意思,也就不叫他,自己拿了棍子,沿着边缘挖开土堆。
石头下头,会有手抄本上说的,千年之久的青铜器吗?
不一会儿,土全部挖开,那块石头现出全貌,像是山里普通的石头,形状不规则,边缘粗糙,唯一的不同就是这石头比较扁平,像块石板。
石板撬起,底下都是土,棍子不比军铲,挖来搅去土也不见少,女孩子使棍又不得劲,一万三看着心焦,把曹解放塞给她:“我来。”
他不怕脏,袖子挽起,两手往外刨土,炎红砂提醒他:“小心点儿,别伤了手……”
怕什么来什么,话还没说完,一万三痛呼一声,举起手来看。
中指指腹上,划拉开好长一条血口子,一万三心头火起,拿了棍子过来使劲拨,土泥乱飞间,炎红砂抱着曹解放一直退后。
拨到一处时,棍头似乎被什么牵绊住,一万三咬牙使了个大力,棍头忽然走空撬起,带了个什么东西滚飞了出去,地上骨碌碌滚了几下,正撞上炎红砂的脚面,晃悠了两下之后又仰翻过来。
炎红砂低下头去看。
是个烧的焦黑的头颅,两个眼洞朝天,正诡异地盯着她,牙床处夸张的翻起,像是大笑,又像是愤怒地嘶吼。
炎红砂哆嗦着,又看一万三,几秒钟之后才反应过来,尖叫一声踢开骷髅头,把曹解放往半空一抛,没命般跑了开去,跑远了又拼命跺脚,似乎那骷髅头长了嘴,还咬在她脚上一般。
曹解放在空中扑腾着乱飞,远处忽然响起哨声,隐隐还有木代的声音:“红砂?是红砂吗?”
炎红砂大叫:“我在这!这!这!”
贴吧:淑妃作者:小映enjoy 2015-12-03 15:38
锟截革拷锟斤拷android培训【03-08】Android学
4.Fast Json高效的原因,为什么推荐使用Fast Json


Fast json高效自然而然是有它的原因的..我主要针对几点来说说..因为我并没有完全的看完Fast Json的源码..只是自己的一些见解,说的也就不是非常的全面..
(1)使用SerializeWriter
将数据封装成Json的时候使用SerializerWriter来完成,通过对字符串的追加将数据转换成Json字串.并且其内部提供了一些优化针对减少数组越界的判断.(减少了越界的判断确实能够提高一部分效率)
ThreadLocal来缓存buf,写入数据必然需要使用缓存来存放字符串的内存地址,但是每次序列化的时候都需要重新分配buf的内存空间,为了避免多次申请内存空间以及gc的调用,因此将内存保存到了ThreadLocal中,当再次进行序列化的时候只需要从ThreadLocal中取出内存就可以了.
并且ThreadLocal不仅仅可以缓存内存地址,当我们对Json数据进行解析的时候也会使用到它提供的缓存..当我们在解析Json的时候,我们读取到的key值可以被保存在一个叫sbuf的缓冲区中,只要这个缓冲区不被释放掉,那么再次读取的时候只需要从缓冲中读取到相关的字符串序列即可,没必要去new一个新的字符串对象,从而导致内存空间的开辟以及不必要的gc调用..
(2)使用asm来避免反射机制的使用
asm不是一个算法,它是字节码框架技术,它可以避免使用Java中的反射机制从而获取到一个类中的所有成员变量和方法,反射机制同样也可以实现,但是反射机制的一大弊病就是耗费时间.使用反射中间会生成大量的临时变量从而导致gc的频繁调用.(避免了反射的使用,自然性能上也有了一定的优化) 至于asm技术我没有进行彻底的研究..可能以后会写..有兴趣的大家可以自己去研究研究..
(3)使用IdentityHashMap去优化性能.
因为Fast Json每种类型都对应一种解析方式,也就出现了<class,JavaBeanSerializer>的映射关系,那么映射自然就需要使用有映射关系的集合,也就是HashMap<K,V>,但是HashMap并不是线程安全的,也就是在并发环境下会导致死循环的出现.因此在并发情况下我们就需要ConcurrentHashMap,但是比HashMap的性能要差,因为需要使用lock()等方法控制多线程的安全问题.安全就失去了效率,因此IndentityHashMap集合就在Fast Json中开发.他的内部去除了transfer方法,使得它能够在并发的情况下也能保证安全性.同样效率也就不会受到影响。
(4)Deserializer的主要优化算法..
Deserializer也成为反序列化过程,也就是将Json数据转化成Java Bean形式.也是优化精力最多的地方.
基于token的预测分析:
解析Json 需要使用到词法处理,Fast Json使用了基于预测的词法分析方式,比如说:比如key之后,最大的可能是冒号":",value之后,可能是有两个,逗号","或者右括号"}" 这样的预测分析。
public void nextToken(int expect) {
/* */ while (true) {
/* 297 */ switch (expect)
/* */ {
/* */ case 12:
/* 299 */ if (this.ch == '{') {
/* 300 */ this.token = 12;
/* 301 */ this.ch = this.buf[(++this.bp)];
/* 302 */ return;
/* */ }
/* 304 */ if (this.ch == '[') {
/* 305 */ this.token = 14;
/* 306 */ this.ch = this.buf[(++this.bp)];
/* 307 */ return;
/* */ }
/* */ case 16:
/* 311 */ if (this.ch == ',') {
/* 312 */ this.token = 16;
/* 313 */ this.ch = this.buf[(++this.bp)];
/* 314 */ return;
/* */ }
/** 中间一堆....*/
if ((this.ch != ' ') && (this.ch != '\n') && (this.ch != '\r') && (this.ch != '\t') && (this.ch != '\f') && (this.ch != '\b')) break;
/* 419 */ this.ch = this.buf[(++this.bp)];
/* */ }
/* */
/* 423 */ nextToken();
/* */ }

预测分析的源代码就是上面粘贴的,只是粘贴了一部分,其实就是对下一个token的预测判断,这样可以帮助我们尽最快的速度拿到token..简单的说一下token的概念..
//这是一个Json字串..其中token单引号引起的部分每一个单引号引起的部分就是一个token这里一共有13个token..{ "id" : 123, "name" : "aa", "salary" : 56789} //json字串 '{' ' "id" ' ':' '123' ',' ' "name" ' ':' ' "aa" ' ',' ' "salary" ' ':' '56789' '}'
这样token的概念就没那么难理解了..
(5)Sort field fast match算法
Fast Json在封装和解析的时候都是默认使用这个算法的,就是以有序的方式将Json 字符串进行保存,如果数据保存的形式是有序的,那么就使用优化算法,不用对每一个token进行处理..只需要处理一部分的token就可以了..也正是因为这个原因,使得Fast Json在解析Json的时候可以减少50%的token...这样效率上就有了空前的变化...如果不是有序的我们就需要一个一个进行分析了,然后从中取出key对应的value值.
就那上面那条Json数据来说吧,如果key值是有序的,那么只需要处理6个token就可以了,但是如果是无序的,就需要处理13个token..处理13个token不难理解..就是对扫描整个字符串,然后处理每一个token不就完事了..但是如果是有序的,那么为什么只需要处理6个token呢?我看了很多人的博客都没有对这块进行讲解..也就使得我也非常的迷茫..
我自己的理解是这样的:其实对不对我自己也不是非常的确定..(如果不对,大家请指出)
之所以只需要处理6个token就是只需要对key和value值进行处理,三对key,value对应的也是6个token,因为我们使用了预测分析,那么自然而然就知道了Json的数据格式,有了这个数据格式,那么那些符号类的token就可以直接跨越过去,我们已经匹配到了key那么自然就预测到key后面有一个","那么这个","我们就不需要处理了,只需要处理","后面的value了..因此符号类的token是没必要处理的,但是为什么要有序,因为我们是将每一条的Json数据转化成字符数组的形式,在匹配key值的时候我们是按照字符数组进行匹配,如果每一条的顺序都不一样,那么就不能使用一条规则去使者多条数据遵循这一个原则进行解析..因此才进行排序,可以减少对token的读取和处理..(个人理解..不对的话,请指出..)
这也就是Fast Json迅速的原因..自然有很多地方的东西没说到..Fast Json说是最快..是不是最快我们说了不算,但是Fast Json确实融入了很多的思想..还是很不错的一个解析Json的api接口..
至于用不用取决于大家..也没必要去争执谁解析Json最快..没什么意义..
原本其实想深入的研究一下,总结一下所有的原因和思想..但是看到很多人写的东西都是九牛一毛..抄来抄去的..没写出核心的东西..等自己真正有时间的时候再去解读一下源码再深入的写吧..
PS:最后只是吐槽一下..如果有人看着不爽..请不要喷我..谢谢!


最后说一下自己学这块的感悟:说实话之所以在Sort Field Fast match算法不是很明白的原因就是没有看到关于这块写的非常优秀的文章,看了挺多人的文章,看着是很厉害,但是写出来的东西大部分都是不清不楚,不明不白,我可以理解使用大量的专业术语(其实就是不说人话)..有的呢就是直接把人家写的东西直接粘贴过去,估计自己都没理解到底是怎么一回事..搬别人的东西不是不可以,只是在搬的时候我们也去想一想,最后结合我们自己的思想写到博客上,那才叫自己真正的学了,博文里才有自己的思想..直接抄来抄去,连改都不改动一下...真的很没意思..


感觉真的挺无力的,Sort这块纠结了很长时间到底要不要写出来,就怕误人子弟...很多博文写的东西只是写一个开头,就拿这个算法为什么只处理了6个token,没有什么过多的解释,什么是asm也没有什么过多的解释..(一开始还以为asm是算法,结果查了一下asm算法和图像处理有关,很明显就弄错了,后来才明白asm是字节码框架技术)..虽然我自己很菜..但是我能保证每一篇文章都是用很大的心思去写,自己心安就行...

贴吧:android培训作者:傻傻的笨老鼠01 2016-03-08 16:16