![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 81
玄隹
Cheer Up and Keep Faith!!!
展开
-
java反射基础
1. 第一步的核心是获取Class常规情况下,一个class的二进制文件唯一对应jvm中的一个class对象,class的加载大部分情况都是jvm自动处理,对于动态加载的情况,一种是通过Class.forName,另一种是通过ClassLoader.loadClass(),这两种方式都可以加载classpath下的class二进制文件,关于classpath的获取How to prin...2016-04-26 20:53:30 · 89 阅读 · 0 评论 -
真随机数
一般sdk自带的随机数都是伪随机数 RANDOM.ORG提供了API可以获取真随机数 JSON-RPC API – Release 1 首先需要申请key调用API的url https://api.random.org/json-rpc/1/invoke python测试>>> base_url='https://api.random....2016-01-28 15:58:21 · 415 阅读 · 0 评论 -
java容易忽略的问题
1. float运算的坑float f = 9.9f;float m = f * 100.0f;System.out.println(m); 结果并不是990不管是乘以100还是100.0f 8.9f 也有这个问题 2. string split问题String ss = "5.11.17.0/24,,2635167,,0,1,,,,";int ...原创 2016-03-04 14:32:39 · 105 阅读 · 0 评论 -
okhttp3同步请求使用总结
官方文档:https://github.com/square/okhttp/wiki/Recipeshttps://github.com/square/okhttp 以下只考虑小数据量请求,比如请求rest json API 相关注意点1. okhttp3比较多的地方使用了builder模式,OkHttpClient、Request、FormBody等都可以通过&l...2016-03-18 15:55:43 · 1653 阅读 · 0 评论 -
Dropwizard实现一个最简单的REST
DropWizard http://www.dropwizard.io/0.9.2/docs/getting-started.htmlJetty for HTTPJersey for REST官方说法 capable of doing 30,000-50,000 requests per second 定义依赖<dependencies> <...2016-03-22 19:10:01 · 302 阅读 · 0 评论 -
GlassFish4.1.1 ParserConfigurationException not found by moxy
在使用GlassFish4.1.1部署Jersey Rest项目时出现错误java.lang.ClassNotFoundException: javax.xml.parsers.ParserConfigurationException not found by org.eclipse.persistence.moxy 出现错误是在项目添加json依赖之后,无论是使用Jersey内置...2016-04-11 16:05:11 · 158 阅读 · 0 评论 -
消息摘要
常用的消息摘要包含 MD5,SHA1,SHA256,区别可见 wiki -- SHA家族消息摘要的算法输出字节长度是确定的:MD5 --> 128 bitsSHA1 --> 160 bitsSHA256 --> 256 bits Java 中有 MessageDigest 类专门用来处理这样的需求,一般流程:getInstance --> ...2017-02-25 21:13:29 · 135 阅读 · 0 评论 -
AES加密和解密
本文重点在于如何在JAVA和Python中使用AES,以及相关的重要概念,而不是专门讲AES算法原理。 AES作为一个块加密算法 [block cipher],每次加密的明文大小固定为128bit,所以明文比较长的时候需要先分组再加密然后整合,这个过程中就会出现两个重要的因素:模式 和 填充方式。 1. 模式分组密码工作模式,常用的包含ECB,CBC,OFB,CFB和...原创 2017-11-15 20:10:45 · 881 阅读 · 0 评论 -
Java Shutdown Hook设置JVM退出时的操作
我们可以通过调用如下方法设置在JVM准备退出时,运行的操作 java.lang.Runtime.addShutdownHook(Thread t) 在hook中的start方法执行结束之前,主线程和其他子线程仍然可以继续执行自己当前的任务,所以某种意义上讲,该方法提供了服务器 gracefully shutdown 的机会,比如轮询某个进程的状态标记。 测试如下代码可以发...2017-12-07 18:19:54 · 1736 阅读 · 0 评论 -
Android异步函数单元测试
大部分内容也适合Java,此处主要是对sdk类别的module做unit test,不涉及UI 1. 配置1) 对于涉及到android原生的类库返回默认的对象,否则,之后遇到Log之类的语句都需要手动mock,但是不要期待这个配置对android API提供全面的支持 testOptions { unitTests.returnDefaultValues = t...2015-12-23 12:11:20 · 213 阅读 · 0 评论 -
安卓签名文件及解析
1. Android Studio默认的apk打包文件地址用户根目录/.android/debug.keystoreAndroid Studio - debug keystoreWhere the debug.keystore in Android Studio Eclipse ADT基本一致:Windows->Preference->Android->B...2015-12-21 17:26:03 · 413 阅读 · 0 评论 -
使用原生的HttpURLConnection库进行网络请求
这边只考虑json格式轻量级的数据请求。 除了部分像Build.VERSION.SDK_INT这样的只属于android的sdk API,其他是java通用。 URL openConnection获取的URLConnection实例由平台和http类型决定,比如安卓从4.4版本开始,http的url底层为com.android.okhttp.internal.http.Http...2016-07-22 15:04:16 · 235 阅读 · 0 评论 -
关于Set和Map的注意事项
1. HashSet和HashMappublic boolean add(E e)Adds the specified element to this set if it is not already present. More formally, adds the specified element e to this set if this set contains no elem...2016-08-04 17:06:37 · 105 阅读 · 0 评论 -
Lambda表达式初识
Lambda表达式作为Java8引入的新语法,使Java也可以实现函数式编程风格。 函数式编程与命令式编程最大的不同在于:函数式编程关心数据的映射,命令式编程关心解决问题的步骤,面向对象编程是也是一种命令式编程。 另外函数式编程强调没有“副作用”,对目标对象的处理结果不应该改变原来的对象,其他外部变量也不应该受到影响,也正是这个特性,函数式编程的并行化处理也不需要关注锁的问题。...2016-08-09 18:00:36 · 99 阅读 · 0 评论 -
Lambda表达式之Stream
Java8引入了Stream以实现对集合更方便地进行函数式编程。Set和List都可以通过stream()方法获取Stream实例;数组可以通过Arrays.stream(array)工具方法获取Stream实例。 对Stream的操作分lazy方法和eager方法:lazy方法依然返回Stream实例,并没有立马开始计算;而eager方法相当于正式进入运算阶段,返回的...原创 2016-08-12 00:30:38 · 637 阅读 · 0 评论 -
Lambda表达式之collect
本文记录collect的高级用法。 依然先准备测试数据 class Item implements Comparable<Item> { public String id; public int count; public Item(String id, int count) { this.id = id; ...2016-08-15 18:16:22 · 1490 阅读 · 0 评论 -
Lambda表达式之并行和并发
并行和并发是个非常大的概念,也不是一篇文章能够完全的包含,所以这边只能简要概括如何通过Lambda表达式来实现。 首先并行和并发是两个不同的概念:并行英文叫Parallelism,理想情况下,每个线程拥有自己独立的cpu核心,像平行线一样的各自执行自己的任务,多用于CPU密集型的任务;并发英文叫Concurrency,每个线程不一定拥有独立的cpu核心,每次的执行时间点和执行时...2016-08-16 17:36:34 · 2060 阅读 · 0 评论 -
消息认证码算法
消息认证码算法的产生一定程度上是因为,处于安全考虑很多人已经开始在做消息摘要之前,先对原始的消息加上一个key之后,再做hash之类的处理,但是这样的处理方式仍然存在安全隐患,于是消息认证码算法应运而生。HMAC底层使用hash算法,是使用场景比较多的一种消息认证码(MAC)算法。关于HMAC和原始的Hash算法的安全性比较见wiki。 总体上来说,HMAC虽然使用了Hash作为底层算...2017-03-29 21:44:22 · 2095 阅读 · 0 评论 -
Java字符串格式化
1. String format格式The format specifiers for general, character, and numeric types have the following syntax: %[argument_index$][flags][width][.precision]conversion The optional argument_i...2015-12-10 20:28:18 · 103 阅读 · 0 评论 -
日期相关操作
代码在java8测试过,默认返回的日期都是零点时间戳 1. 获取某一周的第一天public long getWeekMonday(long millis) { Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(millis); // 设置一周的第一天是星期一 cal.set...2017-12-27 11:16:19 · 158 阅读 · 0 评论