![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 88
程序世界的王子
遥远的夜空繁星点点,流转的时光如在眼前
展开
-
ConcurrentHashMap源码阅读笔记:initTable()方法
ConcurrentHashMap的initTable()方法源码分析,解析每一行代码的作用原创 2023-01-07 20:03:55 · 845 阅读 · 2 评论 -
线程池ThreadPoolExecutor的源码中是如何解决并发问题的?
要读懂线程池ThreadPoolExecutor的源码,首先要理解其内部使用到的线程安全机制原创 2023-01-01 18:21:30 · 2260 阅读 · 0 评论 -
从FutureTask源码看“自旋锁”与CAS思想的应用
JDK源码里面是如何应用CAS和自旋锁实现高效并发的原创 2022-11-08 14:11:08 · 599 阅读 · 2 评论 -
关于Java虚拟机的各类问题探讨
写在前面鄙人之前读过周志明先生的《深入理解Java虚拟机》一书,虽然感觉受益匪浅,但是感觉读完以后对JVM仍然有很多疑问,在书中也找不到合适的答案,特此开一个博文,把我遇到的问题写出来,希望各路大神前来指点迷津。对JVM的问题1、Java8之后,静态变量存储在哪?《深入理解Java虚拟机》的第46页写道“JDK1.7时HopSpot虚拟机已经讲原本放在永久代中的字符串常量池、静态变量移出,到JDK1.8时完全摒弃了永久代的概念”。但是对静态变量从永久代中移出之后,在JDK1.7和JDK1.8中分别存原创 2022-04-09 16:55:34 · 992 阅读 · 0 评论 -
ThreadLocal源码与实现原理
写在前面最近在研究JUC下面的并发工具类的源码,看了ThreadLocal的源码与实现原理,虽然我在网上也看到很多了ThreadLocal解析的文章,但是总感觉讲的太浅或者有些讲的不对,就自己写了一篇。笔者水平有限,文中如有疏漏欢迎各位读者批评指正。ThreadLocal的作用ThreadLocal是一种用线程本地存储来实现线程安全的方式,它的作用是将线程共享的变量在每个线程本地存储一份副本,每一个线程都可以独立地改变和获取自己的副本,而不会和其它线程的副本冲突。每一个ThreadLocal对象都能创原创 2022-04-06 02:12:28 · 1101 阅读 · 2 评论 -
HashMap源码和实现原理
HashMap简介HashMap是一种利用哈希表原理存储元素的集合,当遇到哈希冲突时,HashMap会使用链地址法来解决冲突。在JDK1.7中,HashMap是由数组+链表构成的,在JDK1.8中则采用了数组+链表+红黑树的结构,新增了红黑树作为底层数据结构使得查询效率变得更高。HashMap理论基础一、HashMap数据结构HashMap使用数组、链表和红黑树三者结合起来存储数据,构成一个哈希表。哈希表中每一个节点为HashMap集合存储的一个键值对,节点里面包含当前节点的哈希值、key、valu原创 2021-08-20 14:23:28 · 1357 阅读 · 0 评论 -
LinkedList源码与实现原理
LinkedList源码与原理在我们平常用LinkedList时,我们肯定都知道LinkedList的一些特点,比如a、LinkedList是通过链表实现的。b、如果在频繁的插入,或者删除数据时,就用linkedList性能会更好。c、linkedList是一个非线程安全的(异步),其中在操作Interator时,如果改变列表结构(add\delete等),会发生fail-fast(快速失败行为)。至于LinkedList内部是怎样的一种结构,为什么具有这些特点,请看LinkedList的源码实现原创 2021-02-01 19:04:30 · 261 阅读 · 1 评论 -
用Java语言实现文本内容对比的算法和程序
前言近日,鄙人在工作中接到甲方提出的一项研发需求,就是用程序将修改后的文件内容和修改前的文件内容进行比对,找出其中差异的部分进行展示,以便能够一眼看出修改人对文件做出了哪些修改。刚接到这项需求时,感到颇有难度,但是我相信世界上没有无算法可以解决的问题,也没有程序实现不了的功能。经过深入思考,终于想出来实现文本内容对比的算法,并且写成程序得以实现。现将编程思想、算法和代码公布,欢迎各位软件研发人...原创 2019-11-10 21:41:35 · 8457 阅读 · 13 评论 -
一个很有趣的算法题:任意数分三组,使得每组之和尽量相等
前言 鄙人近日看到一个算法题,觉得非常有趣,题目为:任意一些数字分为三组,使得每组之和尽量相等。题目看似简单,但是要设计出能够经得住不限数量、不限顺序的任意一些数字的测试的算法并且写成代码实现,并不那么容易。 鄙人这两天想了多种方法解决这个问题。 第一种是将任意数字分成3组的所有可能的组合全部求出存入集合,然后遍历集合找出和差距最小的3组的组合。这种方法不仅编码麻烦,程序的计算...原创 2019-08-23 23:29:09 · 9141 阅读 · 17 评论 -
用java程序破解迷宫问题
前言 日前,有位同仁向我介绍了迷宫问题,激发了我强烈的兴趣与研究欲望。经过深入思考,终于找到了破解迷宫问题的算法,并且用java语言编写程序得以实现,现将算法和代码公布,欢迎广大程序爱好者前来阅读,如有改善意见也希望能相互交流。 本文的算法和程序均为本人原创,如要转载请标明出处,谢谢!迷宫问题简介 给一个有指定行数和列数的迷宫,迷宫内的方格由通道和墙壁组成,某人在迷宫内...原创 2018-10-27 01:25:53 · 902 阅读 · 0 评论