首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
pipi蛋
掘友等级
个人公众号:pipi蛋
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
5
文章 5
沸点 0
赞
5
返回
|
搜索文章
最新
热门
一文搞懂IO流
io流在Java的知识体系中,属于很杂的那种了,主要是涉及的类太多,输入流、输出流、文件输入流、文件输出流、字节输入流和输出流、字符输入流和输出流等等,经常把人弄晕。但是它的用途却非常广泛,文件的操作、网络的操作等都离不开它,本文通过平时常用操作来梳理一下io流中涉及的重要类及…
不要到处都使用@Autowired啦
相信大部分人项目只要用了spring框架,肯定到处都是@Autowired或者@Resource。 这是什么意思呢,翻译过来“如果目标bean只定义一个构造函数,则不再需要指定@autowired注释。”; 我们平时开发中的bean大部分都不写构造函数,系统默认一个无参构造函数…
jdk1.7和1.8的ConcurrentHashMap
ConcurrentHashMap初始化时有16个Segment,每个Segment中又包含了HashEntry数组,每个HashEntry又是一个链表,可以看出,Segment的结构和HashMap类似,你可以这样理解:ConcurrentHashMap由多个HashMap组…
jdk1.8HashMap
HashMap底层是一个hash表加链表结构,jdk1.7以后,链表长度达到阈值(8)以后会转成红黑树。 下面我们通过源码看看HashMap的底层实现。 put()方法中会将key的hash值传入到putVal()方法中。 (h = key.hashCode()) ^ (h >…
jdk1.7HashMap的问题
上面是put()方法,主要思路是通过添加元素的key计算出对应数组位置,如果这个位置是空的就直接走下面addEntry(),如果不是空的就遍历里面的链表,看看是否有相同key,如果有就覆盖旧值,如果没有就走下面的addEntry()。下面我们来看看addEntry()里添加元素…
Future异步执行
随着业务的发展,系统的功能也越来越多,这时候很多业务操作就需要异步执行,提高效率。大多时候,我们都可以采用线程池来实现异步执行的需求,但是,有时候主流程需要等待其他任务执行完以后才能继续执行,又或者是主流程需要知道其他任务执行的结果,这时候,就需要采用线程的合并了。 在讲线程合…
共享锁
共享锁:允许多个线程同时获取锁,如Semaphore,CountDownLatch,ReadLock等。 独占锁:每次只能一个线程持有锁,如ReentrantLock,synchronized,WriteLock等。 AQS中提供了独占锁和共享锁。独占锁使用acquire和re…
对象的内存分布和访问
对象在内存中存储的布局分为3块区域:对象头、实例数据和对齐填充。 第一部分官方称作“Mark Word”,用于存储对象自身的运行时数据,如哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID和偏向时间戳等。考虑到虚拟机的空间效率,Mark Word被设计成一个非固定的数…
类加载机制(2)-双亲委派模型
类加载器虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类,实现这个动作的代码模块称为“
Java内存结构
运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。Java虚拟机所管理的内存包括如下几个部分:程序计数器程序计数器是一块较小的空间,它可以看作是当前线
下一页
个人成就
文章被点赞
14
文章被阅读
11,798
掘力值
360
关注了
3
关注者
4
收藏集
2
关注标签
5
加入于
2019-12-26