自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (6)
  • 收藏
  • 关注

代码混淆与JSON数据序列化问题

 Java代码混淆和JSON数据序列化问题 基本观点: 第一点:Java代码生成的Jar文件很容易被反编译,常用工具JD-GUI(http://jd.benow.ca/) 第二点:Jar文件常用的“加密”方式是混淆(有专门的混淆软件,有些需要收费的),使得类名、类中字段和方法名称等难以肉眼判断。例如 第三点:JSON协议使用方便,非常流行。常用框架由于可以使用自定义Model类,...

2014-08-05 11:06:03 814

用.class文件创建对象

      第一步:  给你一个编译好的class文件以及它的包名,创建一个对象出来。      1)class文件源代码      package com.wsc.classloader;public class Tool{ public void print() { }}    2)使用javac Tool.java 编译成class文件   ...

2014-07-31 12:40:17 243

原创 测试PVAdder

测试

2014-02-10 16:20:04 522

从JDK看设计模式之行为模式:迭代器(深入)

迭代器模式目录:需求使用JDK源码深入:为何要单独抽离出一个Iterator接口?正文:      容器,在不同语言中都扮演着重要的角色,如Java中的List、Set和Map。迭代器模式是为容器而生的设计模式,是容器遍历的精灵。第一部分:需求     1)使用者:针对多种容器,希望所有遍历方法一样,如容器更换代码无需变动     2)被使用者:...

2013-09-15 16:17:23 132

走进序列化之基础篇(勇气篇)

 走进序列化之基础篇(勇气篇)介绍:基础篇:超多案例+超详细解析序列化后的二进制文件(以字节为单位分析)。原理篇:JDK源码+Java-Object Serialization Specification官方文档解读。终结篇:序列化机制之我见+翻译的序列化英文的官方文档PDF。(基础篇称之为勇气篇,内容超多能看完确实需要勇气)目的:通过了解序列化...

2013-05-12 03:29:26 187

打破思维断层之最优美的BNDM

     BNDM 目的: 本篇博客以BNDM算法为载体,意图在减少思维断层情况下了解算法思想。 目录:        1:其他算法回顾        2:BNDM算法介绍        3:构建辅助表B        4:容器创建和更新        5:过程展示 1:其他算法回顾 在众多单字符匹配...

2013-05-01 21:14:18 287

JDK源码研究TreeMap(红黑树)下篇

TreeMap目的:通过对JDK源码的分析,进一步了解红黑树。目录:         1:TreeMap介绍         2:红黑树介绍         3:红黑树插入及TreeMap插入实现         4:红黑树删除及TreeMap删除实现1:TreeMap介绍TreeMap和HashMap同样继承于Map接口,前者是在基于红黑树,后者是基于散列...

2013-04-27 21:15:09 142

JDK源码研究TreeMap(红黑树)上篇

TreeMap目的:通过对JDK源码的分析,进一步了解红黑树。目录:         1:TreeMap介绍         2:红黑树介绍         3:红黑树插入及TreeMap插入实现         4:红黑树删除及TreeMap删除实现1:TreeMap介绍TreeMap和HashMap同样继承于Map接口,前者是在基于红黑树,后者是基于散列...

2013-04-22 23:22:49 143

原创 JDK源码研究PriorityQueue(优先队列)

Priority Queue 目的:通过对JDK源码的分析,进一步了解堆和优先队列,体会JDK源码的优美之处。目录:        1:概念        2:源码结构        3:方法分析概念:概念1:堆堆,n个关键字序列K1,K2,…,Kn,当且仅当该序列满足如下性质称为堆ki≤K2i且ki≤K2i+1(最小堆) 或 (2)Ki≥K2i且k...

2013-04-19 13:40:37 297

打破思维断层之看穿Horspool和Sunday

 Horspool和Sunday 目的: 以Horspool和Sunday算法为载体,试图在减少思维断层情况下学习作者算法思想 目录: 1:Horspool算法:简单的力量 2:Horspool代码实现 3:Sunday算法过程 4:Sunday代码实现 5:重新半理性审视BF、KMP、BM、Horspool和Sunday。(关...

2013-04-17 01:28:10 323

打破思维断层之Boyer-Moore

 BM算法 目的:本博客以BM算法为载体,意图在减少思维断层情况下了解算法思想。 目录: BM算法的创新之处在于“跳跃式”思维方式BM算法VS KMP算法BM过程展示BM案例分析代码实现进一步思考第一步:BM算法的创新:“跳跃式”思维方式无论是BF算法、KMP算法或者Shift-And/Or算法,他们都是基于前缀,从前向后来进行匹配。...

2013-04-14 19:08:31 254

打破思维断层之最大子序列和

         最大子序列和目的:本博客以求最大子序列和算法为载体,试图在减少思维断层的情况下解决问题。目录:(以全新视角审视本问题)      1)问题阐述      2)问题本质      3)代码实现第一步:问题阐述        一个有N个元素的整型数组A,有正有负,数组中连续一个或多个元素组成一个子数组,这个数组有很多子数组,求子数组之和的最大值。 ...

2013-04-12 23:22:21 150

打破思维断层之令人惊叹的Shift-And/Or

令人惊叹的Shift-And/Shift-Or目的:以Shift-And算法为载体,试图在减少思维断层情况下学习作者算法思想。目录:      1:主要思想        2:算法介绍   3:构建辅助表B   4:容器创建和更新   5:过程展示   6: Shift-And VS KMP,展示Shift-And令人惊叹之处   7:在KMP的基础上,揭示...

2013-04-11 17:43:28 381 1

打破思维断层之KMP分析

KMP目的:本博客以KMP算法为载体,试图在减少思维断层情况下学习作者算法思想。目录:   1)开脑之字符匹配思路   2)浅析回溯目的      3)一定要回溯吗      4)什么时候回溯?什么时候不回溯?      5)深入回溯目的      6)如何更为高效地回溯?      7)回溯到哪一步?      8)前缀和后缀应运而生!      ...

2013-04-08 17:00:16 230

分治策略(3篇)之贪婪选择

 第三篇:分治法之贪婪选择目的:    本篇博客并不具体的讨论某一个算法,而是将同类型的问题集中展示,从而对分治法有       更进一步的认识。目录:    1)问题1:部分背包问题    2)问题2:找零钱问题    3)问题3:教室规划问题    4)问题4:最小生成树问题    5)问题5:最优二叉树问题 问题1:部分背包问题(最大)    ...

2013-04-03 17:13:44 1053

分治策略(3篇)之动态规划

                        第二篇:分治法之动态规划目的:本篇博客并不具体的讨论某一个算法,而是将同类型的问题集中展示,从而对分治法有       更进一步的认识。目录:斐波那契数列问题最长公共子序列字符串相似度问题最优二叉搜索树问题0-1背包问题  问题1:斐波那契数列的问题    求解F(9),递归调用时,F(9)= F(8)+ ...

2013-03-31 23:44:14 239

分治策略(3篇)之标准分治

        第一篇:分治法之标准分治目的:本篇博客并不具体的讨论某一个算法,而是将同类型的问题集中展示,从而对分治法有       更进一步的认识。 目录:斐波那契数列问题台阶问题归并排序快速排序BST镜像问题问题1:斐波那契数列问题       1)问题指出:       斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、...

2013-03-31 21:57:42 184

从另一个角度看大数据量处理利器:布隆过滤器

      思路:从简单的排序谈到BitMap算法,再谈到数据去重问题,谈到大数据量处理利器:布隆过滤器。情景1:对无重复的数据进行排序@给定数据(2,4,1,12,9,7,6)如何对它排序?     方法1:基本的排序方法包括冒泡,快排等。     方法2:使用BitMap算法     方法1就不介绍了,方法2中所谓的BitMap是一个位数组,跟平时使用的数组的唯一差别在...

2012-04-27 08:55:56 269

适配器,“迫不得已”是你的宿命

      最近做的一个项目,第一阶段算是结束了,下午领点钱花花,如果还要做第二期的,加钱嘞....       技术方面关于设计模式还是小有收获的,尤其是适配器模式,迫不得已用上了你,当然这也是适配器模式的宿命了。      适配器模式在详细设计阶段是不应该考虑的,它不是为了解决处在开发阶段的问题的,而是解决正在服役的项目,没有任何一个分析师会在设计的时候考虑它。 http://wl...

2012-04-19 11:37:06 105

线程同步,原来你很有意思

      看了篇文章,关于线程同步的,觉得很符合自己的逻辑思考方式,于是总结下自己的思路。(主要以问题为导向)1:多线程的引入,解决了什么?     首先是了解同步I/O操作和异步I/O操作的区别。同步操纵是指在执行I/O操作的时候,方法会一直处于等待的状态中,直到I/O操作完成;异步操作是指一旦I/O操作开始执行,程序就可以转向其他地方执行其他操作。     显然异步的出现,可...

2012-04-02 15:19:37 129

玩过云计算,留下多少印记在心里

      当今天突然被要求跟不同组(像移动互联网,云计算)的同学讨论一下云计算的时候,突然理不出来一个逻辑,不知道该从何说起。    搞了那么久的Hadoop,装了Hadoop集群,跑了PageRank排名算法,分析了MapReduce的流程,写了博客,该讨论的时候还是有点蒙,但是如果有人说你“拿不出手”,心里还是很不服,甚至生气。一方面是自己从内心里高度认可自己曾经付出的努力,不容别人忽视...

2012-04-02 01:27:29 127

5种基本排序 娱乐版开脑解析

假设有那么一群富豪,需要将他们的资产排名。(从少到多)以下9个想法,分别代表一种排序逻辑。想法1:最普通的的想法是除了富豪们之外,有个助理一趟一趟的找,每趟找最富的,出列。----直接选择排序 想法2: 想法1改进一点点想法1中,每趟找的时候,你都得做比较,这个避免不了,但是你不能白比较啊,比较了的话你可以让比较的俩人交换位置,这样起码部分人已经排好序了,...

2012-03-28 02:16:32 120

程序的日子里还有笑话

        丈夫和妻子妻子: 我觉得你们男人的胡子是世界上最硬的东西。丈夫:为什么?妻子:你看你们男人的脸皮那么厚,胡子都能长出来.丈夫:我觉得你们女人的脸是世界上最厚的东西。妻子:为什么?丈夫:你看胡子都那么硬了,在你们女人脸上就是长不出来……30万像素就能办到的事   表白某电脑工作者梦见自己向其女友表白:“我...

2012-03-24 11:35:00 134

数据结构之初识庐山求全貌

            从各个数据结构名词集锦中作为初识庐山求全貌的入口,但求能够在不求甚解中求得清晰的学习脉络。第一: 总的划分        1>  线性数据结构:       线性表:n个数据元素组成的有序序列,每个元素本身是非结构的原子类型。举例:(A,B,C,D)       广义表:是顺序表的一种扩充,n个数据元素组成的有序序列,但是每个数据元素本身可以具...

2012-03-22 00:13:49 168

大三毕业季--面试旅行之金山快盘

   “金山快盘”6道面试题题目及解答如下。 第一题:String,StringBuilder,StringBuffer的区别。   String:有两种初始化方式。其一是字面值创建,其二是使用new关键字创建。    举例如下:    String strA=“adf”;    String strB=“adf”;    String strC=new String("a...

2012-03-15 10:30:55 117

拿什么拯救你,我的大学

        很多时候,听到“大学没学到什么”,就觉得md完全是扯淡。付出了多少你就想着“学到什么”。也许挣扎过,但是不解决就别拿出来说自己挣扎过,是希望得到别人的同情还是认可,认可其实不是我不努力是社会太残酷?省省吧。      说真的大学真的很美好。     今天晚上同学喝酒的时候,大家聊起来好像是挺合拍的,都说这tmd老师也太没良心了,哪有专业课为难自己学生的,还是一群?每次点名我...

2012-02-12 01:24:42 140

ITEYE 博客上传图片简单方式扫盲

       Iteye上发表博客的时候,一种方式是先将图片上传到自己的相册,然后再插入图片,填写图片的网页链接,此种方法很是繁琐。实际上Iteye提供从本地上传的方法。     步骤一: 步骤二:         技术搞久了,很容易忘记一些事情,开始还抱怨Iteye怎么这么不人性化,实际是自己的问题。分享产生价值啊。 ...

2012-02-10 12:39:28 137

hadoop上跑一下网页排名算法之PageRank算法

          也许google当初的PageRank网页排名有着很严密的数学逻辑推导,但在编程的时候实现这种数学推导困难很大,用的更多的是另外一个超级简单的数学公式,同样可以实现将网页排名的目的。 PageRank原理分析            举例来讲:       假设每个网页都有一个自己的默认PR值,相当于人为添加给它是一种属性,用来标识网页的等级或者重...

2012-02-08 14:21:54 632

没有Map和reduce的mapReduce:求解MapReduce过程

    用一个10行代码的案例,一个没有map和reduce的类分解Mapreduce过程。   操作过程:  1>:创建MapReduce项目,并配置Run Configuration选项中的Argument输入输出路径.如图      2>:再看代码     public class MyWordCount{ /** * @param args...

2012-02-07 10:50:27 608

从各个角度扯谈一面试算法题

     题目:一个Int型数组,存放的数据中有两个重复的次数是奇数次,其他的重复的次数全是偶数次。    要求:找出这两个数据,时间复杂度是O(n) 空间复杂度是O(1) 名词简单解释:     时间复杂度是O(n)案例:遍历一个长度为n的数组,时间复杂度是O(n) 如果在for循环里嵌套一个长度为n的循环那么时间复杂度是O(n2).如果两个for循环有先后顺序,无嵌套关系,...

2012-02-05 10:25:42 89

原创 1976/1985

@前话:本人买不起Apple 的任何电子产品,最多使用了一款5块钱的叫做Windows 7的操作系统。上次同学分享了Linux时总感觉很别扭,对这段历史很是不了解,本来对IBM,微软,苹果不太感兴趣,但是历史还是蛮感兴趣的,扯到云计算的时候发现跟PC,互联网阶段和对等计算的历史有一定的联系,于是就开始搞了些历史,不为什么,就是觉得看看很爽。1976年到1985年,近10年的有意思的...

2011-12-17 00:09:37 191

原创 用java实现逆矩阵运算

    查java实现逆矩阵转换的代码,居然没怎么发现,想偷懒一下也不行。关于矩阵基本运算 :加 减 乘,转置矩阵,相当简单,能看见不少别人写的,但是就是没看见逆矩阵,不爽。   自己实现了下逆矩阵功能,可以是任意的n阶矩阵。   因为对矩阵很陌生,从0开始到最后实现,每一步的思考代码都有体现,所以代码就很有思考的逻辑性。    实现分了两步:<最原始的...

2011-10-31 12:30:15 2356 1

原创 手写简单版HashMap

    手写实现基本功能的HashMap    1)属性:内部节点类                         Node  存放Node类型数据的数组     hashTable数组的容量                         capacity当前存放数据的数量             count能够存放的数据数量的上限    threshold装载...

2011-10-25 23:11:24 175

原创 玩CF的时候官网用鼠标滑动控制图片切换的东西

                以前玩CF的时候,官方网站有个网页鼠标进入左右移动两张图片可以进行切换,看起来很好看。     数字图象处理课上需要将BMP图像进行处理,还要用C++,于是借此机会专门了解了BMP,了解下图片不同于文本的2进制文件,了解下C++。      之后是一个一个字节一个字节的测试了BMP图片的信息,做了一个可以切换图片的东西完了一下。     关于BM...

2011-10-20 11:38:40 125

原创 关于servlet的生命周期

      关于创建servlet一般是三种方式:实现servlet接口,继承GenericServlet和继承HttpServlet.    下面使用了第一种方式:实现servlet接口。用的工具容器是tomcat。所以采用tomcat特定的方式部署。用的工具是记事本。   第一步:在tomcat的Webapp项目包下创建自己的项目myWebSite. 在此文件夹下创建文件夹WEB-...

2011-10-14 01:29:47 125

原创 本机测试UDP遇到的很DT的问题

         两台电脑测试Udp也许不难,自己一台电脑测试的时候真是令人不爽.      在写自己的小项目“四人行五子棋”的时候,用的是面向连接的Tcp/Ip协议,创建连接后进行通信,后来在增加一项新的功能:添加私信。添加私信的时候想用下Udp通信,还是有点不太适应的感觉,所以代码还是比较简单的那种,就是测试出现令人很是DT的问题。      先是在客户端A登录成功以后,除了T...

2011-10-13 22:15:18 204

原创 适配器模式

适配器<Adapter>模式       从第一本设计模式书《Java设计模式》(专业教材)看这个模式的时候大概明白了意思,觉得会了但是总是感觉不对。接着找来了第二本书相同名字是老外写的。例子很是好,但是和第一本书表达的意思似乎是相同的但是例子相差不小。最不爽的是两本书有着各自的分类标准,名词都不一样。如MouseAdapter 一个叫单接口模式一个叫角标识适配器搞的很晕....

2011-09-23 11:49:27 118

原创 通信基础总结1

    好久没写总结了,那个阶段结束后,就不知道过的会这么不理想,两个月了大概。忙忙碌碌的感觉还是来的踏实些。。。      通信,一个很陌生的词。像是回到刚学java。小项目还没结束,说到收获没有想想的那么多,也不成系统或者逻辑。通信一上来,类明显是多了,很大的感触是每个类感觉要尽量简单化,像是工业革命后分工越来越有必要了,这样能提高效率,同时便于管理。至于里面的具体实现,应该就不尽相同,显...

2011-07-17 00:54:44 150

原创 Lzw字典压缩(思路简单)

        Lzw字典压缩:    1978年,Ziv和Lempel开发了一种基于字典的被称为LZ78 的压缩算法,在LZ78中,字典是一个潜在的先前所见的短语的无限序列。后来由于自身限制,由Terry Welch在1984年提出的关于LZ78压缩算法的变种,他的编码器部署出单个字符,只是输出词典短语中的代号(或者说是代码)。      lzw的编码词典就像是一张转换表,用来存放每...

2011-05-31 14:37:12 647

原创 哈夫曼(有图片展示)

       这次真的是纠结了好久,足足半个月。    在这半个月期间,突然感觉自己能自学了,有种入门的微妙感觉。自己只对音频、视频有知觉的历史一去不返了。    编码的时候,有太多东西自己以前不懂,尤其是关于数据类型,进制之间的转换,内存中存储的二进制,原码-反码-补码,编码问题有ASCII,ANSI,Unicode-16等等。每个问题都是很纠结,更别说如何将他们联系起来。只能是...

2011-05-12 16:53:31 210

字符串匹配之Sunday算法(英文原版)

字符串匹配之Sunday算法(英文原版)

2013-10-16

字符串匹配算法之Horspool算法

字符串匹配算法之Horspool算法(英文原版)

2013-10-16

字符串匹配之BM算法(英文)

字符串匹配BM算法,英文原版,作者是Boyer And Moore

2013-10-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除