java
文章平均质量分 79
攻城师先锋官
这个作者很懒,什么都没留下…
展开
-
Java为什么使用补码进行计算
我们主要要解决的问题就是负数的表示,而众所周知,绝对值相等的两个正负数之和为0。 假设我们有正数 0000 0000 0000 1111,我们如何表示其相反数呢?一般我们的思路是,找一个数,跟它相加的结果等于0,但是我们发现,要找出一个与它相加后结果等于0的数还是要略加思考一下的(因为要计算进位),所以,为何不找出一个与它相加后结果是1111 1111 1111 1111的数,然后该数+1即...原创 2018-07-08 19:37:39 · 952 阅读 · 0 评论 -
Zstd-数据压缩组件
Zstandard 简称Zstd,是一款快速实时的开源数据压缩程序,由Facebook开发,源码是用C语言编写的。相比业内其他压缩算法(如Gzip、Snappy、Zlib)它的特点是:当需要时,它可以将压缩速度交换为更高的压缩比率(压缩速度与压缩比率的权衡可以通过小增量来配置),反之亦Zstd-jniZstd拥有丰富的API,几乎支持所有流行的编程语言,Zstd-jni 是Java中提供的...原创 2019-01-03 17:38:27 · 8848 阅读 · 0 评论 -
java 8 集合操作之Stream
Stream的基本概念Stream和集合的区别:1.Stream不会自己存储元素。元素储存在底层集合或者根据需要产生。2.Stream操作符不会改变源对象。相反,它会返回一个持有结果的新的Stream。3.Stream操作可能是延迟执行的,这意味着它们会等到需要结果的时候才执行。 Stream操作的基本过程,可以归结为3个部分:创建一个Stream。在一个或者多个操作中,将...转载 2018-07-03 20:12:07 · 468 阅读 · 0 评论 -
Java8常用的内置函数式接口
JDK 1.8 API中包含了很多内置的函数式接口。有些是在以前版本的Java中大家耳熟能详的,例如Comparator接口,或者Runnable接口。对这些现成的接口进行实现,可以通过@FunctionalInterface 标注来启用Lambda功能支持。此外,Java 8 API 还提供了很多新的函数式接口,来降低程序员的工作负担。有些新的接口已经在Google Guava库中很有名了。...转载 2018-07-29 11:02:12 · 3267 阅读 · 1 评论 -
Java代码优化
代码优化的目标是:1、减小代码的体积2、提高代码运行的效率本文的内容有些来自网络,有些来自平时工作和学习,当然这不重要,重要的是这些代码优化的细节是否真真正正地有用。那本文会保持长期更新,只要有遇到值得分享的代码优化细节,就会不定时地更新此文。代码优化细节1、尽量指定类、方法的final修饰符带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final...转载 2018-07-23 21:08:30 · 192 阅读 · 0 评论 -
Java里的AES/CBC/PKCS7Padding加密解密
Java 里的AES/CBC/PKCS7Padding加解密,由于Java对PKCS7Padding支持不是很好,所以在网上找了许多类似资料,各有各的实现,最后总结下来是很简单的。也不费话了,直接上代码。public final class AesUtils { private static final String CHARSET_NAME = "UTF-8"; private ...原创 2018-07-04 17:13:41 · 15171 阅读 · 2 评论 -
Jackson 序列化和反序列化自定义日期格式
在Java里的Json序列化自定义日期格式。尤其是多语言环境里日期格式是不一样,导致无法兼容。肥话少说,直接上代码。源码如下:public final class JacksonUtils { private JacksonUtils() { } /** * 单例注册Jackson */ private static class Singleton { ...原创 2018-07-04 16:49:54 · 8254 阅读 · 0 评论 -
Maven的版本定义
<主版本>.<次版本>.<增量版本>-<里程碑版本>例如:1.3.4-beta-2该产品的第一个中大版本的第三个次要版本的第四次增量版本的beta-2里程碑。主版本:表示项目的中大架构变更;次版本:表示交大范围的功能增加和变化,及bug修复;增量版本:一般只中大bug的修复;里程碑版本:表示一个版本的里程碑,往往表示不是非常稳...原创 2019-06-22 18:05:35 · 1287 阅读 · 0 评论