首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
字节可视化
订阅
字节武装
更多收藏集
微信扫码分享
微信
新浪微博
QQ
13篇文章 · 0订阅
画图理解Java String的内存分布
众所周知,Java 中有两种字符串的创建方式。 字符串 “ab” 会直接出现在字符串常量池中。 本文的内存分配图都是基于JDK7以上的版本。 字符串 “ab” 同样会出现在字符串常量池中,同时在堆内存中也会分配一块空间存放字符串 “ab”。 当字符串遇上了 “+” 号,内存的分…
Java队列总结
最近对JAVA的队列比较感兴趣,今天就来探讨下。 有句话怎么说来着, 一流企业定标准、二流企业做品牌、三流企业卖技术、四流企业做产品。 所以了解队列当然就是先从接口开始啦。 我们从接口的注释上可以清楚明白地看到Queue接口的各个方法的差异。 我们可以对队列执行增,删,查操作,…
二进制位运算实战(2)-异或,按位或,按位与,取反
上篇文章主要讲了从ArrayBuffer内存中读取数据,也即是从bytes数组中读取每个单元格对应的二进制值。 下面我们来讲一下点击单元格时值在1和0之间来回切换是怎么实现的。 每一个单元格都绑定了点击事件toggleBit。其实就是通过改变bytes数组的元素值来改变Arra…
了解Java线程池的用法, 从一个花瓶说起
Java的线程池就像是一个花瓶容器。 而把任务提交给线程池就像是把小球塞进花瓶。 下面我们先来了解一下Java线程池的参数。 线程池大体的原理就是这样的:corePoolSize ->queue -> maxPoolSzie , 吧啦吧啦...... 别慌,我们可以把线程池的参…
TCP为啥要3次握手和4次挥手?用职场经验告诉你答案
事情是这样的,那是一个美好的周末晚上。而小李还要在家加班,正好忙到紧要关头,才发现甲方同事给的接口文档存在错误,于是只好硬着头皮去打搅人家了。 结果等了半天,对方一直都没有回复。 小李根本就没法确认甲方同事到底是没有看到消息,还是看到消息了不想回。 对于上面的情况,如果使用TC…
一张图理解Kafka时间轮(TimingWheel),看不懂算我输!
时间轮,是一种实现延迟功能(定时器)的巧妙算法,在Netty,Zookeeper,Kafka等各种框架中,甚至Linux内核中都有用到。 本文将参考Kafka的时间轮作为例子讲解。 开始之前给大家看块宝珀中华年历表。 这款手表的表盘融合了中华历法中各种博大精深的计时元素。 下方…
画图理解 Java String#intern 的内存分布
接着上一篇文章 画图理解Java String的内存分布。 本文的讲解以jdk1.7为准。 我们知道 String#intern 就是把首次遇到的字符串加载到字符串常量池中。 下面先看第一个单测试案例, 一起了解下 String#intern 。 经过上篇文章的铺垫, 我们知道…
画图理解Java Integer的“值传递”
答案是不能, @1 中实参 Integer a 的值还是 888 。 如果你已经知道答案, 那么本文也没必要往下看了。 那么值传递中 数值 和 地址值 有什么区别呢?回答这个问题我们要先理解整形的赋值。 整形的赋值操作底层其实是调用了 Integer.valueOf(num) …
Kafka玩出植物大战僵尸即视感
Kafka的topic为什么要分区。 消费者组的作用。 Kafka分区分配。 “Kafka是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统。” 看着这一句句对Kafka的介绍,以及这张架构图, 突然感觉眼前一…
二进制位运算实战(1)-开发一个进制转换工具
之前介绍了二进制相关的知识 二进制转十进制心算大法, 本篇将使用JavaScript开发一个相关的可视化工具,实现十进制和二进制之间的自动转换。 当然,醉翁之意不在酒。在开发的过程中熟悉二进制的位运算才是本篇的关注点。 下面来看看这个可视化工具。 输入一个十进制的正整数(32位…