java基础
文章平均质量分 88
豌豆琪琪
这个作者很懒,什么都没留下…
展开
-
HashMap关键就这几个点,你Get到了?
容量是我们可以自己定义的,但是实际的容量必须是2的倍数,所以每次传入一个自定的容量,hashmap 就会根据我们传入的值检验一遍这个值,并通过程序获取这个值最近的一个2的倍数值作为实际的容量}目的是将一个数有效位不断向右移动生成一个2的倍数建减一的数2 10 减一 1 14 100 减一 11 3。...原创 2022-08-10 18:31:30 · 374 阅读 · 0 评论 -
AIDL使用 进阶1
在之前的AIDL使用继承关系自定义类及调用数据异常问题记录,中具体讲了aidl 的基本使用,包括基本数据类型,自定义类型的传值问题。但是归根到底,使用的本质还是进程间的通信,但是任何进程间的通信都是需要成本的,如果你的业务较多,定义了N多个.aidl 文件,通过我上节讲的东西,那是不是在客户端和服务端需要定义N多个service 文件。相互绑定呢?其实我们可以换一种思路。在绑定服务的时候需要注册一个ServiceConnection 接口,绑定成功后会给出public void onSe原创 2021-11-04 19:41:48 · 221 阅读 · 0 评论 -
线程安全关键字synchronized和volatile
Java内存模型(JMM)提到这两个有关于线程的关键字,那么我们不得不提到Java的内存模型了(JMM),下面我们先看一下Java内存模型在处理多线程方面的工作原理图。Java内存模型(java Memory Model)描述了Java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存中读取出变量这样的底层细节。工作内存是线程私有的,各个线程之间不共享,主内存是共享内存,正常情况下当线程完成操作后会将工作内存刷新到主内存中,但是刷新的时机不太确定,如果是单线程,原创 2021-03-21 22:11:07 · 937 阅读 · 0 评论 -
Java 垃圾回收器的GC机制
导语 垃圾回收器—GC(Garbage Collection),它与“java面向编程”一样是java语言的特性之一;它与“ c/c++语言”最大区别是不用手动调用 free() 和 delete() 释放内存。GC 主要是处理 Java堆Heap ,也就是作用在 Java虚拟机 用于存放对象实例的内存区域,(Java堆又称为GC堆)。JVM能够完成内存分配和内存回收,虽然降低了开发难度,避免了像C/C++直接操作内存的危险。但也正因为太过于依赖JVM去完成内存管理,导致很多Java开发者不再关转载 2021-03-16 09:55:17 · 193 阅读 · 0 评论 -
java中,HashMap为什么每次扩容的倍数是2,而不是1.5或者2.5?
本文为转载文章,部分位置加入了个人对原文的理解原文:https://www.zhihu.com/question/422840340/answer/1494603694来源:知乎一、前言 二、HashCode为什么使用31作为乘数 1. 固定乘积31在这用到了 2. 来自stackoverflow的回答 3. Hash值碰撞概率统计 4. Hash值散列分布 三、HashMap 数据结构与算法 1. 写一个最简单的HashMap 2. 扰动函数 3. 初始..转载 2021-03-15 10:46:13 · 2275 阅读 · 0 评论