首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
java
订阅
江湖人称小白哥
更多收藏集
微信扫码分享
微信
新浪微博
QQ
17篇文章 · 1订阅
Java类集框架 —— HashSet、LinkedHashSet源码分析
HashSet实现了Set接口,它的底层是由HashMap来支持的。HashSet的元素实际上是存储在底层HashMap的key上的。由于HashMap的无序不重复特性,HashSet存储的元素也是无序的,并且元素也不能重复,同时也只允许存储一个null元素。 HashSet是…
探索 Java 隐藏的开销
随着 Android 引入 Java 8 的一些功能,请记住每一个标准库的 API 和语言特性都会带来一些相关的开销,这很重要。虽然设备越来越快而且内存越来越多,代码大小和性能优化之间仍然是有着紧密关联的。这篇 360AnDev 的演讲会探索一些 Java 功能的隐藏开销。我们会关注对库开发者和应用开发者都有关系的优化和能够衡量它们影响的工具。
Java JDK代理、CGLIB、AspectJ代理分析比较
前言什么是代理,在Design patterns In java这个本书中是这样描述的,简单的说就是为某个对象提供一个代理,以控制对这个对象的访问。在不修改源代码的基础上做方法增强,代理是一种设计模式,又简单的分为两种。静态代理:代理类和委托类在代码运行前关系就确…
集合番@WeakHashMap一文通(1.7版)
集合番@WeakHashMap一文通(1.7版)
HashMap实现原理
HashMap是常考点,而一般不问List的几个实现类(偏简单)。以下基于JDK1.8.0_102分析。 简单的说,capacity就是bucket的大小,loadFactor就是bucket填满程度的最大比例。当bucket中的entries的数目(而不是已占用的位置数)大于…
JVM源码分析之GC locker深度分析
概念太抽象,一两句话说不清...先看看它被使用的场景,jni.cpp类中有一对函数,分别是jni_GetStringCritical和jni_ReleaseStringCritical,看名字也知道一个Get,一个Release,有点像锁的感觉。
从JDK源码看System.exit
在编写的Java程序中有时会遇到用 System.exit 来关闭JVM,其中调用 exit 方法时会包含一个状态参数n,即System.exit(n)。这其实是一个约定值,如果为0则表示正常关闭,而非0则表示非正常关闭。这里我们从JDK源码看下不同状态都是怎么处理的。 先看S…
ArrayList底层数组扩容原理 - Java那些事儿专栏
再次强调,ArrayList是一个普通的类,如果我们开心,可以自己写一个。 ArrayList初始化 - Java那些事儿专栏 文章发表后,评论区有人问如下问题。 再看一下执行结果,也在我们期望中。 看到了传说的中数组下标越界异常。在Java中,数组一但在堆内存中创建,长度是固…
Java高并发综合
没错,真的是经过了面试官的无数鄙视,我才知道Java并发编程在Java语言中的重要性。 悲观锁假设最坏的情况(如果你不锁门,那么捣蛋鬼就会闯入并搞得一团糟),并且只有在确保其他线程不会干扰(通过获取正确的锁)的情况下才能执行下去。 常见实现如独占锁等。 安全性更高,但在中低并发…
源码的魅力 - HashMap 的工作原理
新创建的HashMap并没有对table散列表分配内存空间,在后面的put方法中我们将分析具体分配空间的位置以及函数.散列表的存储元素是HashMapEntry。 除了Key与Value值之外还有HashMapEntry的引用,这里先简单介绍下这个next值,它链接的对象将会是…