编程思考 : Java中如何用简单的数字描述更多的信息

一 . 前言

这一篇来趣味性的探讨一下 , 如何通过更少的空间描述更多的信息

在数据库里面 ,通常我们会用数字的递进来描述状态等信息 , 但是如果想进行更复杂的操作 , 就有必要对二进制有一定理解了.

二 . 单数中描述信息

单数中保存多个信息的意思是 : 我们能把多少信息存储到一串数字里面. 这里直接来通过一些案例来说明用法

用单个数字来表示状态

这也是业务中最常见的一种使用方式 , 通过数字 1,2,3 等来描述一个状态 , 这种方式有一定的可读性 , 也有足够的扩展性

如果从二进制的角度说 , 这是一种进位体现状态的方式.

用单个数字来描述多个状态 : 包含多种状态

单数描述多个信息这一块首先能想到的就是 Linux 的权限表示法 , 在Linux 中有四种权限 , 分别如下 :

这种表示法的方式很简单, 从表象上来说就是两数相加 , 把初始状态设为 1 / 2 / 4 , 更复杂的状态则是初始状态的组合.

这种模式从二进制的角度看的话能更明显 , 每一位都标识一种状态.在更复杂的场景中, 还可以通过质数的数学特性 , 来做更多的扩展

用单个数字来描述不同维度的信息 : 包含状态和数量

这种体现最有代表的就是线程池的表现方式. 在线程池对象ThreadPoolExecutor 中 , 有个属性可秀了 , 它叫 ctl.

//
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值