Java
怕乌龟骑
观念的转变和人类意志的力量,塑造了今天的世界。
展开
-
JVM学习笔记(四):JVM类加载机制
引子在上一篇文章《JVM学习笔记(三):Java内存模型》中,我总结了Java内存模型相关的一些知识。接下来,我将继续,参考着周志明老师的《深入理解Java虚拟机》,以及一些自己查阅的书籍、资料,总结一下JVM类加载机制相关的知识。参考文档1、《深入理解Java虚拟机》第三版,周志明 著,第七章。...原创 2020-03-31 16:16:43 · 281 阅读 · 0 评论 -
JVM学习笔记(三):Java内存模型
引子在上一篇文章《JVM学习笔记(二):JVM GC机制与垃圾收集器》中,我总结了一下JVM的GC机制,并且结合着自己写的实例,分析了一下 标记-清除算法 中的标记过程;同时,我还总结了一下 垃圾收集器 相关的知识点。接下来,在这篇文章中,我就总结一下 Java的内存模型。缓存与缓存一致性计算机在处理任务的时候,与内存交互的I/O操作是不可避免的。而计算机的存储效率与处理器的运算速度有...原创 2020-03-24 17:03:47 · 291 阅读 · 0 评论 -
Java中的位运算
引子在上一篇文章《计算机信息的表示与存储》中,我详细地总结了原码、补码等表示方式以及其计算。而这些的目的,就是为了引出本文——位运算相关的知识。这里,我将仔细讲一讲位运算相关的知识。位运算基础在Java中,位运算操作分为两种:按位操作 和 移位操作。和C/C++相同,Java中也支持 按位非(~)、按位与(&)、按位或( | ) 和 按位异或(^) 四个按位操作,以及 左移(&...原创 2019-12-24 19:45:43 · 619 阅读 · 0 评论 -
《Think In Java》中一个【下推堆栈】类的代码分析
引子:最近工作不是太忙,项目开发任务也大多完成了,于是又回过头来复习一些Java基础。刚刚,正好看到第15章——泛型,看到了15.2.2小节——一个堆栈类 部分的一段代码。突然想起来,自己很久之前看到这里的时候,对这段代码不是很理解,于是就仔细研究了一下这段代码,并且将自己的理解分享出来,希望能帮到有疑惑的朋友。代码:该段代码位于《Think In Java》第四版 P625。...原创 2019-01-19 15:30:37 · 376 阅读 · 0 评论 -
Java8中,对字符串拼接的一些思考
引子:工作项目开发已经差不多了,于是有时间自学一些东西。基础还是很重要的,开始看《Thinking In Java》第四版。看到String这里的时候,书中提到了“+”与“StringBuilder”的区别。但是该书该版是基于JDK5的,那么,对于JDK8,又是如何呢。下面,我将通过一个示例,进行探讨一下。范例:下面,是我们的Java Demo,将使用三种方式来进行一个字符串的操作。...原创 2019-01-11 20:45:19 · 1254 阅读 · 10 评论 -
JVM学习笔记(二):JVM GC机制与垃圾收集器
引子在上一篇文章《JVM学习笔记(一):Java内存区域》中,我总结了一下几大Java内存区域。接下来,我总结一下JVM的GC机制,以及垃圾收集算法 和 垃圾收集器。内存回收区域谈起JVM的GC机制,我们首先需要关注的就是:回收哪儿的内存?如何判断哪些内存需要被回收?怎么回收?下面就一一解答这些问题。在上一篇文章中提到的 程序计数器、虚拟机栈、本地方法栈 三个“线程私有”的区域,随...原创 2019-12-19 15:33:22 · 645 阅读 · 0 评论 -
JVM学习笔记(一):Java内存区域
引子你所处的环境决定了你能力的上限——或者,你自己成为上限。最近又复习了一下JVM相关的知识,这里,记录下自己学习时总结的一些笔记,一来加深自己的记忆,二来希望能帮到将要面试的各位。PS:本文总结自周志明大牛所著的《深入理解Java虚拟机》第二版的第二章,强烈建议学习虚拟机的各位一读!该书没有一句废话,每一句话都是要点!Java 虚拟机运行时数据区上图就是 Java 虚拟机...原创 2019-12-16 18:51:32 · 451 阅读 · 0 评论 -
30+链表问题(二):如何在一次循环中找到单链表的中间节点?
引子在上一篇文章30+链表问题(一):如何判断链表是否成环?中,我讲了如何使用双指针判断一个链表中是否存在环。在接下来的这篇文章中,我将继续讲一讲双指针的妙用——在一次循环中找到单链表的中间节点。问题描述给定一个单链表,如何在一次循环中,找到链表的中间节点?解决方案一听到这个问题,首先想到的是,倒序遍历这个链表。但是,这是不可行的,因为要求是,只能循环一次,并且,这是一个单链表...原创 2019-09-12 18:38:36 · 504 阅读 · 0 评论 -
30+链表问题(一):如何判断链表是否成环?
引子在上一篇文章《30+链表问题:概览》的引言中,我提到了当初在校招时遇到的一道链表面试题。就是这道题了。下面是问题描述以及解决方案。问题描述给定一个链表,如何判断该链表是否成环?解题思路首先,一听到这个问题,脑子一下子映出下面这幅链表成环的图:如图,上面就是一个已经成环的链表。标红的是头结点。针对这个问题,我的解决方案是:使用两个指针 slow、fast遍历...原创 2019-09-09 17:53:38 · 869 阅读 · 0 评论 -
30+链表问题:概览
引子昨天晚上,无意中刷到一篇关于链表的问题。突然又想起当年校招时被问到的一道有关链表面试题。突然心血来潮,准备记录一下,自己碰到的、或者搜罗到的一系列有关链表的面试题,在这里记录下来,并分享给大家。文章目录30+链表问题(一):如何判断链表是否成环?30+链表问题(二):如何在一次循环中找到单链表的中间节点?未完待续。。。公共源码在这里,我将贴出一些公共的源码,在后文中...原创 2019-09-09 17:59:28 · 220 阅读 · 0 评论 -
Java8 lambda表达式,Comparator.comparing().thenComparing()报错
最近更新加上了部分我自己对问题的理解,同时附件信息中贴上了一个我最近在公司内部分享的PPT,里面详细讲述了函数式接口、Lambda表达式、Stream、Optional等JDK8的新特性。有需求的同学可以下载参考一下。引子在对集合进行操作的时候,我喜欢用Java8的新特性——Stream/lambda表达式等。最近,在项目中就碰到了一个怪异的问题,这里记录下来,并将解决方式分享给大家。...原创 2019-06-04 14:04:55 · 21696 阅读 · 9 评论 -
if(e instanceof XxxException)判断后,throw e 报错提示没有处理其他异常。
今天在项目中碰到这样一个问题,我写了如下代码:try{ /** * do something * 将会 抛出 GeneralSecurityException、IOException */} catch (Exception e) { if (e instanceof GeneralSecurityException) { th...原创 2018-11-08 20:03:01 · 5763 阅读 · 0 评论