首页
学习
活动
专区
工具
TVP
发布

数据之美

专栏作者
138
文章
389795
阅读量
63
订阅数
pyDes 实现 Python 版的 DES 对称加密/解密
手头有个 Java 版的 DES 加密/解密程序,最近想着将其 Python 重构下,方便后续脚本解析,捣鼓了两下 pyDes 貌似很方便,不过据网上其他同学测试说 PyCrypto 性能要比 pyDes 高一个数量级,这里我没有做具体性能测试,也没有选用 PyCrypto 主要原因有三: (1)PyCrypto 在 windows 下依赖 VC++9.0,安装麻烦  (2)PyCrypto 默认不支持 padmode,且对秘钥以及偏转向量长度有严格要求,扩展性很差 (3)不是用来搞暴力破解,性能要求不高,
用户1177713
2018-02-24
3.5K0
Java 正则表达式 StackOverflowError 问题及其优化
正则可以看做一门 DSL,但它却应用极其广泛,可以轻松解决很多场景下的字符串匹配、筛选问题。同时呢有句老话: “ 如果你有一个问题,用正则表达式解决,那么你现在就有两个问题了。” Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. 今天我们就来聊聊 Java 正则表达式 StackOverflowError 的问题及其一些
用户1177713
2018-02-24
3K0
Java 多线程之 Runnable VS Thread 及其资源共享问题
对于 Java 多线程编程中的 implements Runnable 与 extends Thread,部分同学可能会比较疑惑,它们之间究竟有啥区别和联系呢?他们是不是没啥区别随便选呢?实际中究竟该
用户1177713
2018-02-24
8410
聊聊 Java 中 HashMap 初始化的另一种方式
如果你接触过不同的语言,从语法和代码层面来说,Java 是一种不折不扣的“臃肿、啰嗦”的语言,从另一方面来说这种臃肿和啰嗦也体现了它严谨的一面,作为适合构建大型、复杂项目的理由之一。 1、HashMap 初始化的文艺写法 HashMap 是一种常用的数据结构,一般用来做数据字典或者 Hash 查找的容器。普通青年一般会这么初始化: HashMap<String, String> map = new HashMap<String, String>(); map.put("Name", "June"); 
用户1177713
2018-02-24
9.8K0
简化你的 java 字符串操作:Guava 之 CharMatcher 用法简介
对字符串的处理应该是编程活动中最频繁的操作了,而原生的 JDK 以及 Java 本身的语法特性使得在 Java 中进行字符串操作是一件极其麻烦的事情,如果你熟悉 Shell/Awk/Sed/Perl/Python 等脚本语言,你就大概能明白我说的啥意思了。 上次在这篇使用 Google Guava 美化你的 Java 代码:1~4 中介绍过一些利用 Guava 库进行字符串操作的例子,限于篇幅与内容,介绍的比较泛,今天就单独的聊聊 Guava 中的 CharMatcher 类,并结合一些常见的需求来进
用户1177713
2018-02-24
2.9K0
关于 WEB/HTTP 调试利器 Fiddler 的一些技巧分享
1、原理简介: Fiddler 是目前最强大最好用的 Web 调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置 CGI 请求的断点,甚至修改输入输出数据。同类的工具还有httpwatch,firebug,wireshark,google审查元素。与这些基于网页浏览器的工具不同,fiddler是一个富客户端桌面工具,不仅能监听浏览器对网页的请求和对浏览器的响应(http和https请求),而且可以监听其他程序(比如java桌面应用)的http请求(当然需要额外的设置,在此
用户1177713
2018-02-24
1.6K0
关于 SimpleDateFormat 的非线程安全问题及其解决方案
之前有同事好几次都掉这个坑里去了,刚好今天有看到有篇帖子提了下,索性就整理下吧~ 1、问题: 先来看一段可能引起错误的代码: package test.date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; public class ProveNotSafe { static SimpleDateForm
用户1177713
2018-02-24
5830
相似文档查找算法之 simHash 简介及其 java 实现
传统的 hash 算法只负责将原始内容尽量均匀随机地映射为一个签名值,原理上相当于伪随机数产生算法。产生的两个签名,如果相等,说明原始内容在一定概 率 下是相等的;如果不相等,除了说明原始内容不相等外,不再提供任何信息,因为即使原始内容只相差一个字节,所产生的签名也很可能差别极大。从这个意义 上来 说,要设计一个 hash 算法,对相似的内容产生的签名也相近,是更为艰难的任务,因为它的签名值除了提供原始内容是否相等的信息外,还能额外提供不相等的 原始内容的差异程度的信息。 而 Google 的 simhash 算法产生的签名,可以满足上述要求。出人意料,这个算法并不深奥,其思想是非常清澈美妙的。
用户1177713
2018-02-24
4.9K0
基于堆实现的优先级队列:PriorityQueue 解决 Top K 问题
1、认识 PriorityQueue PriorityQueue是从JDK1.5开始提供的新的数据结构接口,它是一种基于优先级堆的极大优先级队列。优先级队列是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素。如果不提供Comparator的话,优先队列中元素默认按自然顺序排列,也就是数字默认是小的在队列头,字符串则按字典序排列(参阅 Comparable),也可以根据 Comparator 来指定,这取决于使用哪种构造方法。优先级队列不允许 null 元素。依靠自然排序的优先级
用户1177713
2018-02-24
2.3K0
浅谈 java 中构建可执行 jar 包的几种方式
        有时候,由于项目的需要,我们会将源码编译后以工具包(class打成jar包)的形式对外提供,此时, 你的 jar 包不一定要是可执行的,只要能通过编译,能被别人以 import 的方式调用就行了。但还有的 情况是,我们的 jar 包是要可执行的,即能直接在 cmd 下直接运行。前者的打包很简单,在 eclipse 中, 直接选中要打包的 java 文件和其它资源、依赖文件, export → Java → JAR file 即可。需要注意的是, 这种方式导出的 jar 包是
用户1177713
2018-02-24
3.7K0
关于 hadoop reduce 阶段遍历 Iterable 的 2 个“坑”
之前有童鞋问到了这样一个问题:为什么我在 reduce 阶段遍历了一次 Iterable 之后,再次遍历的时候,数据都没了呢?可能有童鞋想当然的回答:Iterable 只能单向遍历一次,就这样简单的原因。。。事实果真如此吗? 还是用代码说话: package com.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class T { public static
用户1177713
2018-02-24
1.1K0
Eclipse 下找不到或无法加载主类的解决办法
有时候 Eclipse 会发神经,好端端的 project 就这么编译不了了,连 Hello World 都会报“找不到或无法加载主类(Exception in thread "main" java.lang.NoClassDefFoundError:xxx)”的错误,我已经遇到好几次了,以前是懒得深究就直接重建project了,但遇到次数多了必须深究下了,现总结几种解决方案,大家根据自己的情况逐一尝试即可。 1、是因为.java文件不在项目的src路径内,也就是说源代码未被eclipse编译,字节码不存在
用户1177713
2018-02-24
9.8K0
java 中 16 进制 HEX 转换成字节码形式的 UTF-8
恩,又碰到个蛋疼的编码转换问题了:要把形如 \xE9\xBB 的字符串转成中文。。。 在python中我们直接 print "\xE9\xBB\x84" 即可, 在shell中我们直接 echo $'\xe9\xbb\x84' #echo -e '\xe9\xbb\x84'也行, 注意:不能直接 echo $'\xde\xab'|iconv -f gbk -t utf-8 , 因为 gbk的话,\xE9\xBB是榛,后面的\x84只有半个字,会报错或乱码, utf8是变长的,占1~4字
用户1177713
2018-02-24
3K0
自定义 java 日期、时间 处理函数集
废话少说,在shell下很容易: june@deepin :~> date -d@1353027149 2012年 11月 16日 星期五 08:52:29 CST june@deepin :~> 但是 java 下比较折腾,网上转来抄去的代码也都是错误一大堆。。。 java代码如下: import java.text.ParseException; import java.text.ParsePosition; import java.text.SimpleDateFormat; i
用户1177713
2018-02-24
8460
Spark函数讲解: combineByKey
1、背景 在数据分析中,处理Key,Value的Pair数据是极为常见的场景,例如我们可以针对这样的数据进行分组、聚合或者将两个包含Pair数据的RDD根据key进行join。从函数的抽象层面看,这些操作具有共同的特征,都是将类型为RDD[(K,V)]的数据处理为RDD[(K,C)]。这里的V和C可以是相同类型,也可以是不同类型。这种数据处理操作并非单纯的对Pair的value进行map,而是针对不同的key值对原有的value进行联合(Combine)。因而,不仅类型可能不同,元素个数也可能不同。 com
用户1177713
2018-02-24
3K0
java 利用反射模拟动态语言的 eval 函数
import java.io.File; import java.io.FileWriter; import java.io.PrintWriter; import java.lang.reflect.Method; import java.net.URL; import java.net.URLClassLoader; public class Eval { public static Object eval(String str) throws Exception { StringBuffer
用户1177713
2018-02-24
1.9K0
Sort Map by Value in Java
实际项目或者业务当中,经常会有需求要求对 hashmap 按值排序,并返回指定顺序的 TopN 个元素,今天就来分享下具体的代码及其原理实现。 package com.bj.test.top10; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util
用户1177713
2018-02-24
5860
Java 反射机制详解
Class类简介: Class对象 虚拟机在class文件的加载阶段,把类信息保存在方法区数据结构中,并在Java堆中生成一个Class对象,作为类信息的入口。 声明两个类,Cat.java 和 Do
用户1177713
2018-02-24
7220
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档