深入剖析ArrayList的底层源码-ArrayList 和 Vector 的区别
ArrayList 和 Vector 底层都是 数组
ArrayList 每次扩容的情况下扩容为原来的1.5 倍。线程不安全,当多个线程同时访问同一个ArrayList 集合时,如果两个或两个以上的线程修改了 ArrayList 集合,则必须手动保证该集合的同步性。
Vector 是同步类,其线程安全,但是它的访问比较慢。Vector 每次扩容为其空间大小的 2 倍。
继续阅读 >
分类目录归档:编程语言
2020
03-12
03-12
深入剖析ArrayList的底层源码-常用方法及其源码剖析
2020
03-12
03-12
深入剖析ArrayList的底层源码-构造方法及其源码剖析
2020
03-12
03-12
深入剖析ArrayList的底层源码-ArrayList介绍及其源码剖析
ArrayList是可调整大小的数组,实现了List接口。 实现所有可选列表操作,并允许所有元素包括null 。 除了实现List 接口之外,该类还提供了一些方法来操纵内部使用的存储列表的数组的大小。 (这个类是大致相当于Vector,不同之处在于它是不同步的)。
继续阅读 >
2020
03-12
03-12
连存活到JDK8中著名的Bug都不知道,怎么敢给你加薪
SubClass 继承自BaseClass,由于SubClass数组中每一个元素都是SubClass对象,所以BaseClass[] baseArray = subArray;这种强制类型转换不会报错。这其实就是java对象的向上转型,子类数组转换成父类数组是允许的。但是由于数组中元素类型都是SubClass类型的,所以 baseArray[0] = new BaseClass();会报错java.lang.ArrayStoreException。这也就是说假如我们有1个Object[]数组,并不代表着我们可以将Object对象存进去,这取决于数组中元素实际的类型。
继续阅读 >
2020
03-12
03-12
python之路——初识面向对象 初识类和对象
字典就是一类数据结构,我一说字典你就知道是那个用{}表示,里面由k-v键值对的东西,它还具有一些增删改查的方法。但是我一说字典你能知道字典里具体存了哪些内容么?不能,所以我们说对于一个类来说,它具有相同的特征属性和方法。
继续阅读 >
2020
03-12
03-12
python之路——初识面向对象 类的相关知识
2020
03-12
03-12
python之路——初识面向对象 面向过程 VS 面向对象
python之路——初识面向对象
面向过程 VS 面向对象
面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。
继续阅读 >
2020
03-12
03-12
python之路——初识面向对象 楔子
python之路——初识面向对象 楔子
你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍打狗, 狗可以咬人,怎么描述这种不同的角色和他们的功能呢?
继续阅读 >
2020
03-12
03-12
python面试题37道,看完面试不愁了
python下多线程的限制以及多进程中传递参数的方式
python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器,跟单cpu跑多个程序一个意思,大家都是轮着用的,这叫“并发”,不是“并行”。
多进程间共享数据,可以使用 multiprocessing.Value 和 multiprocessing.Array
继续阅读 >
2020
03-12
03-12
使用 Go 和 LLVM 进行 Web Assembly 的高效前端开发 HOT

2020
03-12
03-12
一个零 GC 的缓存库:freecache HOT
2020
03-12
03-12
Micro In Action(一):入门 HOT

2020
03-12
03-12
“网红” WebAssembly 与 K8s 如何实现双剑合璧? HOT

2020
03-11
03-11
Golang源码系列四:Interface实现原理分析 HOT

2020
03-11
03-11
Golang源码系列三:Channel实现原理分析 HOT
channel可以在两个或者多个goroutine之间传递消息。在Go中,goroutine和channel是并发编程的两大基石,goroutine用来执行并发任务,channel用来在goroutine之间来传递消息。
继续阅读 >
2020
03-11
03-11
Golang 源码系列二:Slice实现原理分析 HOT

2020
03-11
03-11
Golang源码系列一:Map实现原理分析 HOT
2020
03-10
03-10
除了标准库 sync 包外,这个官方包(golang.org/x下的)你应该了解 HOT

2020
03-10
03-10
Go 如何防止缓存穿透 HOT

2020
03-10
03-10
一文掌握 Go 语言 Select 的四大用法 HOT

2020
03-03
03-03
Go-项目结构和代码组织
做大量的输入,通过对比、借鉴,加上自己的经验,产出一个尽可能优的方案。
开源界优秀项目的结构示例
因为最新的 Go 版本已经使用 module 作为版本依赖,所以,所有项目的 vendor 我都忽略,建议直接使用 module 来管理依赖,而且较好的解决某些库国内访问不了的问题
继续阅读 >
2020
02-14
02-14
Go语言之父带你重新认识字符串、字节、rune和字符
2019
06-01
06-01