摘要: 范围:要回收哪些区域 在JVM五种内存模型中,有三个是不需要进行垃圾回收的:程序计数器、JVM栈、本地方法栈。因为它们的生命周期是和线程同步的,随着线程的销毁,它们占用的内存会自动释放,所以只有方法区和堆需要进行GC。 前提:如何判断对象已死 所有的垃圾收集算法都面临同一个问题,那就是找出应用程序不 阅读全文
posted @ 2017-10-12 10:33 java林森 阅读(119) 评论(0) 推荐(0) 编辑
摘要: ClassLoader Java程序并不是一个原生的可执行文件,而是由许多独立的类文件组成,每一个文件对应一个Java类。此外,这些类文件并非立即全部装入内存的,而是根据程序需要装入内存。ClassLoader专门负责类文件装入到内存。 数组类的 Class 对象不是由类加载器创建的,而是由 Jav 阅读全文
posted @ 2017-10-12 10:32 java林森 阅读(153) 评论(0) 推荐(0) 编辑
摘要: JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁。而其他的数据依赖于每一个线程,在线程创建时创建,在线程退出时销毁。 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。分支、循环、跳转、异常处理、 阅读全文
posted @ 2017-10-12 09:44 java林森 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 众所周知,redis是单线程的。 多个客户端发来的所有指令会按接受到的顺序一个个的执行。 那么multi,exec的作用是什么呢?和pipeline区别在哪? 如果只是简单的认为,multi可以在客户端打包要执行的命令批量的提交到服务端,从而减少每条指令每次发送的网络通讯。那么和pipeline有何 阅读全文
posted @ 2017-09-30 14:17 java林森 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 众所周知LongAdder在高并发场景下比AtomicLong高效很多,在低并发时基本持平,其原理就不说了,很多文章都有提到。 那么问题来了,既然如此iAtomicLong还有使用的必要吗? 我们来看看一个最常见的应用场景:多线程获取一个唯一的递增id。 AtomicLong提供 long incr 阅读全文
posted @ 2017-09-30 10:42 java林森 阅读(582) 评论(0) 推荐(0) 编辑
摘要: The readConcern option is available for the following operations: find command aggregate command and the db.collection.aggregate() method distinct com 阅读全文
posted @ 2017-09-28 11:01 java林森 阅读(370) 评论(0) 推荐(0) 编辑
摘要: mysql事务具有原子性,隔离性,一致性的特点。 redis提供multi, exec,watch来支持事务: 原子性,一致性: redis保证在multi,exec之间的语句作为一个整体执行,redis在exec后,是无法回滚的,会出现部分成功,部分失败情况。 隔离性(mysql默认可重复读:事务 阅读全文
posted @ 2017-09-26 15:30 java林森 阅读(1364) 评论(0) 推荐(0) 编辑
摘要: 思路一,基于docker.io/java基础镜像,打一个新的镜像,修正时间 编写一个docker file FROM docker.io/javaMAINTAINER linsRUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 生成一个新的 阅读全文
posted @ 2017-09-21 17:48 java林森 阅读(787) 评论(0) 推荐(0) 编辑
摘要: hbase的数据模型从逻辑上可以分类为键值存储或者是有序映射的映射。物理数据模型是基于列族的列式数据库,单个记录以键值形式存储。 HBase把数据记录保存在HFile里,这是一种不能更改的文件格式。因为记录一旦写入就不能修改,新值将保存在新 HFile里。在读取数据和数据合并时,数据视图需要在内存中 阅读全文
posted @ 2017-09-20 16:26 java林森 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 在京东的亿级流量网站架构一书,175页介绍缓存有这样一段话 仅就这段代码来看,在高并发情况下,实际上并不能阻止大量线程调用loadSync函数 当然这个书里的代码是作者的简写,这里探讨只是针对书中这段代码,实际生成代码应该有考虑这个问题,另外loadSync函数的逻辑看不到,也可能有考虑到到这个问题 阅读全文
posted @ 2017-09-16 11:53 java林森 阅读(172) 评论(0) 推荐(0) 编辑