当前位置: 首页 > news >正文

站长工具综合查询站长工具wordpress 左侧导航

站长工具综合查询站长工具,wordpress 左侧导航,食品 技术支持 东莞网站建设,天津网站制作首页在线咨询通过位运算打多个标记 如何在一个字段上#xff0c;记录多个标记#xff1f; 如何在一个字段上#xff0c;记录不同类型的多个标记#xff1f; 如何用较少的字段#xff0c;记录多个标记#xff1f; 如何在不增加字段的要求下#xff0c;记录新增的标记#xff1f; 在实…通过位运算打多个标记 如何在一个字段上记录多个标记 如何在一个字段上记录不同类型的多个标记 如何用较少的字段记录多个标记 如何在不增加字段的要求下记录新增的标记 在实际的开发中经常有这样的需求需要用尽可能少的字段记录多个标记 比如交易中一个订单是否发生过支付是否进行过发货是否发生过退货退款是否进行过理赔 比如社交中一个帖子是否审核通过是否被举报过是否发生过二次编辑是否要置顶等等 以上场景最终都是要记录到数据库中的。如果每增加一个类型都增加一个字段标记是或者否的话那每行记录的字段数得增加到多少 所以我们的诉求是希望通过尽可能少的字段最好是不要增加数据库的字段能够记录同时记录多个标记。 这样的场景一种解决方式是在数据库中增加一个内容是JSON格式的字段然后每次往JSON中增加内容。这种方式的好处是比较灵活增加标记不用修改数据库DDL。而且不需要记录的标记可以不存储不用占用存储空间。但文本格式毕竟会占用较多的存储空间随着标记的增加类似MySQL数据库可能需要调整字符串长度 另一种解决方式是位运算通过在不同的位置填充0或者1表示标记的是或者否有或者没有。大名鼎鼎的布隆过滤器实现原理也是类似的 比如说一个订单我们需要记录它是否发生过支付是否发生过发货是否发生过退货那么就可以设计这么几个标记 PAY_FLAG(1L 1L), DELIVER_FLAG(1L 2L), REFUNR_FLAG(1L 3L),然后在订单表中增加一个flag​字段通过位运算记录订单的不同标记。方法如下 // 设置Flag public static Long setFlag(Long orderFlag, OrderFlagEnum orderFlagEnum) {orderFlag | orderFlagEnum.getFlag();return orderFlag; } // 清除Flag public static Long clearFlag(Long orderFlag, OrderFlagEnum orderFlagEnum) {orderFlag ~orderFlagEnum.getFlag();return orderFlag; }// 判断是否设置过某个Flag public static boolean hasFlag(OrderFlagEnum orderFlagEnum, Long orderFlag) {return (orderFlag orderFlagEnum.getFlag()) ! 0; }引申一下如果需要在一个字段中记录多个标记通过位运算又该怎么实现呢 比如说想要在一个字段中记录两个标记。 还是可以通过不同位置标记1还是0实现比如一个Long型标记可以在低53位记录一个标记在高10位记录另一个标记。 // 初始标记 Long flag 0L; // 低位需要记录的标记 Long lowFlag 1L 11L; // 高位需要记录的标记 Long highFlag 1L 3L;// 设置低位的标记 flag | lowFlag; // 设置高位的标记 flag | (highFlag 53);// 判断是否设置低位标记 System.out.println((flag lowFlag) ! 0);// true // 判断是否设置高位标记 System.out.println((flag 53L highFlag) ! 0); // true同理如果需要在一个字段记录多个标记只需要划分不同的标记区间就可以了。 比如Java中的读写锁ReentrantReadWriteLock就是通过在内部表示锁状态的state变量上的低16位表示写锁高16位表示读锁 这里为什么这么设计呢而不是维护一个读锁一个写锁是因为通过CAS的方式无法一次性操作两个变量
http://www.sadfv.cn/news/109819/

相关文章:

  • 中国建设银行官网站金银纪念币什么平台可以打广告做宣传
  • 湖南移动网站建设公司免费网站搭建
  • 广东网页设计培训徐州seo推广
  • 山东华邦建设集团网站手机网站开发技术pdf
  • 网站留言板html模板腾讯公司网页
  • 博创网站建设团队新闻类网站的设计
  • 网站广告的优势十大营销手段
  • 沈阳整站优化页面设置上37cm
  • pc网站运营如何建立自己的网站商城
  • 帮别人做网站的公司是外包吗黄页号码怎么删除掉
  • 安徽法制建设网站网站建设分金手指排名二五
  • 站长之家论坛网站 备案 营业执照
  • 部队内网网站建设方案免费模板简历
  • 长清网站建设电话中国建设银行北京天竺支行网站
  • 深圳宝安大型网站建设厦门网站设计公司找哪家厦门小程序建设
  • 自己做的网站外国人能访问吗免费建立网站的网站吗
  • 设计网站的功能有哪些梦幻西游网页版平民攻略
  • 微信网站是多少钱一年免费设计logo的app
  • 手机的网站建设目标是什么专科网页设计实训报告
  • 网站备案时间怎么查询系统怎么做免费的网站商城
  • 良品铺子网站制作产品网站策划书方案
  • 网站意见反馈源码wordpress 用户验证码
  • 郑州营销型网站制作教程wordpress过滤敏感
  • 服装网站建设物流配送系统h5制作开发哪儿
  • dw 做简单静态网站分类信息发布 wordpress
  • 科讯cms网站管理系统kesioncms网站源码配置数据库在拿
  • 网站维护工作是做啥网络流量统计工具
  • 网站运营岗位介绍宁波网站建设公司哪里有
  • 基层建设是哪个网站的什么是网络营销的技术
  • 域名购买哪个网站最好景安备案域名购买