以梦为码

Talk is cheap, show me u photo


  • 首页

  • 标签

  • 归档

  • 公益 404

LeetCode题解-82.删除排序链表中的重复元素II

发表于 2019-09-16 更新于 2019-09-28 分类于 LeetCode

题目描述

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中没有重复出现的数字。

阅读全文 »

LeetCode题解-61.旋转链表

发表于 2019-09-15 更新于 2019-09-28 分类于 LeetCode

题目描述

给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。

阅读全文 »

《深入理解Java虚拟机》读书笔记——Java内存模型

发表于 2019-08-04 更新于 2019-09-18 分类于 JVM

概述

由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存来作为内存与处理器之间的缓冲:将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存块中,这样处理器就无须等待缓慢的内存读写了。

这样虽然很好地解决了处理器与内存速度的矛盾,但是也引入了一个新的问题:缓存一致性。在多处理器系统中,每个处理器都有自己的高速缓存,而它们又共享同一主内存。当多个处理器的运算任务涉及到同一块主内存区域时,将可能导致各自的缓存数据不一致。因此,需要各个处理器访问缓存时遵循一些协议,在读写时要根据协议来进行操作。

阅读全文 »

《深入理解Java虚拟机》读书笔记——GC原理

发表于 2019-08-03 更新于 2019-09-18 分类于 JVM

概述

Java内存运行时区域的各个部分,其中程序计数器,虚拟机栈,本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性,不需要过多考虑回收的问题,在方法结束或者线程结束时,内存自然就被回收了。

而Java堆和方法区则不一样,一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内存也可能不一样,只有在运行时才知道会创建哪些对象,这部分内存的分配和回收都是动态的,垃圾收集器关注的也是这部分内存。

阅读全文 »
1…456…10
陈旸

陈旸

杭州
37 日志
9 分类
11 标签
© 2020 陈旸
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Mist v7.2.0