![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
无己心
每一次的付出都是朝着目标更近一步。
展开
-
【java总结】jvm虚拟机内存区域
java虚拟机堆栈区域JVM区域总体分两类,heap区和非heap区。heap区又分为:Eden Space(伊甸园)、Survivor Space(幸存者区)、Old Gen(老年代)。非heap区又分:Code Cache(代码缓存区);Perm Gen(永久代);Jvm Stack(java虚拟机栈);Local Method Statck(本地方法栈);下面我们对每一...原创 2019-05-22 13:58:33 · 23046 阅读 · 0 评论 -
【Java总结】ReadWriteLock读写锁初探
上一篇我们说到了一些锁的名称特性, 问题等 如Synchronized存在明显的一个性能问题就是读与读之间互斥简言之就是,我们编程想要实现的最好效果是,可以做到读和读互不影响,读和写互斥,写和写互斥,提高读写的效率,如何实现呢?首先我们看下涉及到读写锁的一个接口public interface ReadWriteLock { /** * Returns the lock ...原创 2019-09-07 16:16:12 · 8712 阅读 · 0 评论 -
【Java总结】通过Synchronized和Lock来总结锁
对于基本锁的概念我们如果想透传理解的话建议看一下之前我的一篇博客【java总结】并发编程原理回顾这篇文章我们通过Synchronized和Lock关键字来继续理解一下概念,在讲这两个关键字的前面我们先了解一下常见的锁名称具体指的是神马?公平锁/非公平锁可重入锁独享锁/共享锁互斥锁/读写锁乐观锁/悲观锁分段锁偏向锁/轻量级锁/重量级锁自旋锁这些锁的名称可能是我们平时经常听到的...原创 2019-09-05 15:08:11 · 158 阅读 · 0 评论 -
【Java总结】详细探讨HashCode算法为什么采用31作为乘数
前两天写了几篇关于Hash函数和HashMap集合的文章,其中有个问题说的有点含糊 就是关于hashCode的计算为什么采用31这个数作为乘数的问题。当时强硬的理解为31 这个数值原因为:首先hash函数必须要选用质数(质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数又称为素数),这个是被科学家论证过的hash函数减少冲突的一个理论。如果设置为偶数的话会存在溢出的情况,导...原创 2019-09-04 15:48:52 · 9986 阅读 · 1 评论 -
【Java总结】生产者消费者模型
生产者消费者模型主要结构如下,是一个典型的线程同步的案例。下面就来使用java做几种线程同步的方式来实现以下该模型确保一个生产者消费者模型的稳定运行的前提有以下几个生成者应该具备持续生成的能力消费者应该具备持续消费的能力生产者的生成和消费消费有一定的阀值,如生成总量到100需要停止生产,通知消费;消费到0的时候停止消费开始生产; wait,notify方案阻塞队列的实现Reentr...原创 2019-09-03 22:17:05 · 8841 阅读 · 0 评论 -
【Java总结】谈谈jvm垃圾回收
Jvm垃圾回收原创 2019-08-30 16:06:23 · 8827 阅读 · 0 评论 -
【Java总结】HashMap源码分析及SparseArray对比
散列表的深入研究原创 2019-08-29 17:53:03 · 209 阅读 · 0 评论 -
【Java总结】核心基础
基本数据类型及占位类别名称占位范围整型byte8-127-128整型short16~整型int32~浮点型float32~浮点型double64~字符unicode字符(汉字经过编码后也是2字节)16~这里注意一下java的方法数限制为65535个,也主要是因为java使用UNICODE标准字符集,...原创 2019-08-20 21:38:44 · 8681 阅读 · 0 评论 -
【Java总结】Hash算法和hashCode
hash算法及hashCode理解原创 2019-08-20 16:14:35 · 2551 阅读 · 0 评论 -
【java总结】并发编程原理回顾
并发编程其实就那些事原创 2019-07-11 14:02:03 · 22396 阅读 · 0 评论 -
记ReentrantLock-Condition await被异常唤醒的问题
最近一个朋友在写一个简单的生产者和消费者模型的时候,遇到了一个诡异的问题,他实用ReentrantLock 的lock去锁住生成者和消费者,并且通过Condition的await方法使生成者在临界值的时候,处于睡眠状态。但是在他的电脑上居然出现了消费者同步的问题,经过分析是其中一个消费者从await中异常被唤醒,而代码此时并没有调用signal代码如下:package com.thread...原创 2019-09-26 11:12:35 · 14787 阅读 · 1 评论