首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Semineces
掘友等级
学生
|
西安邮电大学
木已成舟
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
1
文章 1
沸点 0
赞
1
返回
|
搜索文章
最新
热门
深入理解Java并发编程(四):CAS操作以及jdk1.8后的优化
悲观锁认为:每个线程在对一数据进行操作时,都会有其他线程来并发修改,所以在获取数据的时候就上锁来进行操作,synchronized和lock就是一种悲观锁的策略。也就是先上锁再操作。 乐观锁认为:每个线程在对以数据进行操作时,没有其他线程来并发修改,这样就其实是所有线程都去读取…
深入理解Java并发编程(三):volatile关键字详解
synchronized关键字是阻塞式同步,在线程竞争激烈的时候会逐渐由偏向锁膨胀为重量级锁。而volatile是JVM提供的最轻量级的同步机制。JMM告诉我们各个线程会将共享变量从主内存中拷贝到工作内存,然后执行引擎会基于工作内存中的数据进行操作处理。不过线程在工作内存中进行…
深入理解Java并发编程(二):synchronized关键字详解
让每一个线程依次的去读取这个共享数据,这样就不会有任何的数据安全问题了,因为每次每个线程所操作的都是最新的数据,不会出现脏读的现象。synchronized关键字就是使每个线程依次排队操作共享变量,也就是用来处理共享数据的安全性问题。不过这种同步机制的效率很低。 如果锁的是类对…
深入理解Java并发编程(一):JMM(Java内存模型)详解
JMM是一个抽象的概念:描述的是一组围绕原子性、有序性、可见性的规范。其定义程序中各个变量的访问规则,即虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量是共享变量。 JMM规定:所有共享变量存储在主内存中,每条线程有自己的工作内存,线程的工作内存保存了被该线…
基于jdk1.8的HashMap源码阅读
在jdk1.8以前,HashMap采用数组+链表实现,采用拉链法来解决hash冲突,即创建一个链表数组,数组中每一格就是一个链表,遇到hash冲突直接将冲突的值塞进链表里即可,这样同一hash值的都存储在一个链表里。 这么做有个缺点就是如果同一hash值元素较多时,查找效率低下…
Java异常处理中对于finally的一些思考
因为这次面试有问到一些同学finally的问题,发现自己这块好像有点记不太清楚了,有的点可能还给人家说错了,一度弄得场面有些尴尬。所以说这篇文章深入研究一下finally的执行情况和返回值的情况。 先给答案:肯定不是。 综上我们看出,如果程序连try块都执行不到,那么final…
基于jdk12的LinkedList源码阅读分析
LinkedList是Java集合框架中一个重要的实现,底层采用双向链表结构。和ArrayList一样,其也支持null值和重复值。它基于双向链表实现,就不用扩容了,可这也就是说,在维护结点的时候需要额外的空间存储前驱和后继的引用。在链表头部和尾部插入效率比较高,但是在指定位置…
有关二叉树遍历的一些算法问题(包括前序中序后序层次遍历等)
学习二叉树也有一段时间了,但一直没有系统的整理一些最基础的算法问题,这篇文章就当是个总结吧。二叉树的数据结构相信大家已经烂熟于心了,在此不多说了,直接上代码。 二叉树最明显的特征就是递归结构,很多关于二叉树的算法题都与递归扯不开关系。 而对于中序和后序遍历,只是对结果集进行添加…
基于jdk12的ArrayList源码阅读分析
ArrayList是Java集合框架中List接口的一个实现类,底层用数组实现,相当于动态数组。是一种随机访问模式,实现RandomAccess接口,因此查找十分的块。ArrayList是线程不安全的,Vector是线程安全的,但是Vector比较古老,一般不建议使用。 基于数…
个人成就
文章被点赞
8
文章被阅读
3,932
掘力值
210
关注了
0
关注者
6
收藏集
1
关注标签
42
加入于
2020-04-19