java uint64_Java 中的 uint64
Java 语言中的 long 类型虽然是64位, 但却不是 unsigned 的. 你问我为何, 我也不知道, 不过倒是可以参考几句 Gosling 的采访:
Gosling: For me as a language designer, which I don't really count myself as these days, what "simple" really ended up meaning was could I expect J. Random Developer to hold the spec in his head. That definition says that, for instance, Java isn't -- and in fact a lot of these languages end up with a lot of corner cases, things that nobody really understands. Quiz any C developer about unsigned, and pretty soon you discover that almost no C developers actually understand what goes on with unsigned, what unsigned arithmetic is. Things like that made C complex. The language part of Java is, I think, pretty simple. The libraries you have to look up.
Java 这个设计真的好鸡肋, 但说实话, 写了这么久 Java 真的很少用到 uint64 类型. 不过最近由于使用 protocol buffer 编码数据, 有同事设计了一个编码规则, 就真的遇到了实实在在的 uint64 类型的数据, 在 Go 语言中肯定是没有问题, 可转到 Java 中就变成了负数, 数据需要 JOIN, 因此只有想法子转成字符串. 代码也很简单:
// Guava 中有 UnsignedLong 实现
public String toUint64String(long longValue) {
final String binaryString = Long.toBinaryString(longValue);
final UnsignedLong unsignedLong = UnsignedLong.valueOf(binaryString, 2);
return unsignedLong.toString();
}
谨以此文, 鄙视一下 Java 中鸡肋的设计.
-- EOF --
java uint64_Java 中的 uint64相关推荐
- 统计java文件中的代码行数
统计Java代码行数工具类 -- CodeCounterUtil.java 统计指定目录下的java文件中代码行数 -- public static int getCodeNumFromFo ...
- Java虚拟机规范阅读(二)IEEE754简介以及Java虚拟机中的浮点算法
什么是浮点数 在计算机系统的发展过程中,曾经提出过多种方法表达实数.典型的比如相对于浮点数的定点数(Fixed Point Number).在这种表达方式中,小数点固定的位于实数所有数字中间的某个位置 ...
- Java 8中一些常用的全新的函数式接口
这一篇属于菜鸟级博客,只是介绍了一些在Java 8中新出现的一些很有用的接口,通过一些简单的例子加以说明,没有深入地阐述. 函数式接口 什么是函数式接口? 函数式接口,@FunctionalInter ...
- 你还在 Java 代码中写 set/get 方法?赶快试试这款插件吧!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:Mr.ml https://blog.csdn.net/Ma ...
- 聊一聊Java 泛型中的通配符 T,E,K,V,?
点击上方"方志朋",选择"设为星标" 回复"1024"获取独家整理的学习资料 作者:glmapper juejin.im/post/5d57 ...
- Java开发中的23种设计模式详解(转)
设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法...
1.java代码中fastjson生成字符串和解析字符串的方法 List<TemplateFull> templateFulls = new ArrayList<TemplateFu ...
- java treeset 删除_删除Java TreeSet中的最高元素
要删除最高元素,请使用pollLast()方法. 创建一个TreeSet并向其中添加元素-TreeSet tSet = new TreeSet(); tSet.add("78"); ...
- 如何优雅地在 Java 8 中处理异常
2019独角兽企业重金招聘Python工程师标准>>> 前言 Java 8 引入的流 (Stream) API 和 lambda 表达式为我们打开了新世界的大门,自此之后我们也可以在 ...
- Java语言中的生僻知识
最近有一首名叫<生僻字>的流行歌曲火遍大江南北,创作者给佶屈聱牙的生僻字,配上了优美明快的旋律,竟然让歌曲变得琅琅上口.悦耳动听起来,平时不太常见的拒人于千里之外的这些汉字也不再那么陌生, ...
最新文章
- 【Windows 逆向】OD 调试器工具 ( 推荐汉化版的 OD 调试工具 | 吾爱破解专用版Ollydbg | 备选工具 )
- 在双11大促中的数据库服务器
- matlab 安装glpk,mac上安装GLPK
- 平均年薪30万的深度学习算法工程师,正面临100万的人才缺口
- mac docker 共享_如何在Docker for Mac中加快共享文件访问
- Nginx 这一牛X的功能,你知道吗
- maven错误相关(整理中)
- HashSet原理、TreeSet
- ubuntu安装包常用下载地址
- R语言实战应用精讲50篇(十七)--使用R语言实现时间序列分析
- 在gitee码云上搭建一个网站
- 采购人必须明白的八大发展趋势及原则
- 如何防止局域网病毒春风吹又生--之一
- 跨时钟域问题(CDC)
- 操作系统课程项目 OS project —— Pintos from Project 1 to Project 3
- 论文复现—1—A Simple yet Effective Relation Information Guided Approach for Few-Shot Relation Extraction
- 【记录】螺纹连接与螺旋传动
- 在x86汇编中将寄存器设置为零的最佳方法是什么:xor,mov或?
- 【CodeForces】Educational Codeforces Round 118 (Rated for Div. 2)【A-C】
- IBM MessageBroker笔记系列(一)
热门文章
- rssi室内定位算法原理_基于RSSI的室内定位算法
- C盘快满了,处理一下pagefile.sys文件和hiberfil.sys文件
- 数据分析进阶-Excel绘制分段折线图
- HTML简易自适应布局
- 资源池(数据库连接池,内存池,线程池)
- win10专业版有必要吗_Win10有哪些版本 Win10各版本有什么区别【区别介绍】
- 免费视频文件生成视频二维码的方式详解
- Redis写副本内存不够
- Element中时间校验:结束时间大于开始时间
- 互联网日报 | 5月26日 星期三 | 华为鸿蒙操作系统6月2日发布;特斯拉已在中国建立数据中心;百度发起“高考+”计划...