Maple's Blog.

Maple's Blog.

keep coding and having fun

阳光十六法则
阳光十六阴天八,多云十一日暮四,乌云压顶五点六,雪天落雨同日暮。 天气 光圈 ISO 快门 晴天 F16 125 1/125 F16 500 1/500 F11 250 1/1000 阴天 F8 多云 F11 日暮 / 雪天 / 雨天 F4 乌云 F5.6 完整光圈值 F1, F1.4, F2, F2.8, F4, F5.6, F8, F11, F16, F22, F32, F44, F64 界定光线阳光灿烂 (F16) = 影子黑,...
Java 发展简史
原链接: https://blog.csdn.net/lywstuding/article/details/121117136 [toc] 1. C 语言,C++ 的诞生 这一段和 Java 毫无关系,感觉是作者拿来凑字数的,可以跳过。 Java 的诞生离不开 C 语言和 C++,C++ 是在 C 语言的基础上改造的,后来 Sun 公司又对 C++ 进行改写,产生了 Java。也可以说 Java 源自于 C 和 C++。 1956 年 FORTRAM 的诞生1956 年,美国计算机科学家约翰・巴克斯带领团队开发出了世界上第一个高级编程语言 FORTRAN。 FORTRAN 语言是世界上...
Java 的一系列概念
Java一门编程语言,这个没啥好说的。 JVMJava Virtual Machine 虚拟机 例如: Sun Classic VM JDK 1.0 提供的虚拟机 Exact VM JDK 1.2 引入,被 HotSpot 替代 HotSpot VM JDK 1.2 引入 JDK 1.3 之后默认的虚拟机 OpenSDK 的默认虚拟机 JRockit BEA 公司,被 Oracle 收购 起特性被引入到 OpenSDK 所使用的 HotSpot 可以说现在 OpenSDK 使用的 jvm 其实是两者的合体 J9 IBM 家的虚拟机 JRE Java Runti...
JVM 8 特有的参数(区别 JVM 7)
JVM 内存模型 虚拟机栈 每个线程都有私有的栈 栈帧 每个方法会创建一个栈帧 包含 局部变量表 操作数栈 方法出口 … StackOverflowError 本地方法栈 虚拟机的 Native 方法所用的栈 PC 寄存器 线程的程序计数器 堆 堆内存 所有线程共享部分 包含所有对象和数组(所有指针型变量?) GC 的对象 方法区 物理位置也属于堆 包含 存储类的信息 常量池 方法数据 方法代码 PermGen 永久代 jdk 1.7 HotSpot 特有,jdk 1.8 移除 方法区的具体实现 jdk 7 中,存储在永久代的部分数据就已经转移到了J...
Java GC
Serial GC 单线程收集器 需要暂停其他工作线 Client 模式 Serial Old GC Serial 老年代版本,Client 版本 其他功能 搭配Parallel Scavenge收集器使用。 做为 CMS 收集器的后备方案,当 CMS 出现 Concurrent Mode Failure 时使用。 做为 G1 的 fullGC 收集器。这也是我们在使用 G1 的时候需要注意的,G1 应该尽量杜绝FullGC。否则就会退化为串行 GC。 ParNew GC Serial 收集器的多线程版本,其他参数方式都一样 XX:parallelGCThr...
jvm7 一份调优参数分析
前几天看文章,看到了一篇文章给了一份 jvm7 的启动调优参数。可以学习下 JVM7 的一些特性。 1java -server -Xms2G -Xmx2G -XX:MaxPermSize=256M -Xss256K -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:+UseAdaptiveSizePolicy -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:../logs/gc.log -XX:+PrintTenuringDi...
Java 的 21 种锁
乐观锁 并发控制概念 OCC 适合写入少,回滚成本低于锁的场景 本质没有锁,靠自身校验来实现”锁的效果“ 事务写入数据后,提供时间戳或者类似的凭证 通过凭证检查数据是否被修改 被修改,回滚事务 无修改,提交事务 不足 读取独占的资源可能造成死锁 悲观锁 并发控制概念 PCC 适合写入多,回滚成本高于锁的场景 先竞争获取锁,获得锁只能才能写入数据,写完数据释放锁 不足 容易造成死锁 加锁会有效率消耗 自旋锁 技术方案 现成执行忙循环 占用时间长会导致资源消耗 CAS 默认 10 次 -XX:PreBlockSpin 修改 可重入锁 递归...
maven settings.xml 笔记
Maven 常见的配置文件由以下几部分: proxy mirror repository server profiles 其中 proxy 就是代理服务,这一点暂时不管。 idrepository 和 mirror 和 server 都拥有一个字段是 id。这里的 id 就单纯的用来标识一个 server 的唯一的标识字段。 我一开始以为类似 central, thirdparty 是固定的字段,后面理解开来,应该只是属于常用的 id,并没有固定的含义。 profilesprofiles 可以认为是配置,其 id 是标识配置的唯一 id (和 server 无关)。 可以认为为了方便...
zookeeper 笔记
[toc] 命令行 ls / ls2 delete set get stat 节点持久类型1234567PERSISTENT // 持久节点,一旦创建成功不会被删除,除非客户端主动发起删除请求PERSISTENT_SEQUENTIAL // 持久顺序节点,会在用户路径后面拼接一个不会重复的自增数字后缀,其他同上EPHEMERAL // 临时节点,当创建该节点的客户端链接断开后自动被删除EPHEMERAL_SEQUENTIAL // 临时顺序节点,基本同上,也是增加一个数字后缀CONTAINER // 容器节点,一旦子节点被删除完就会被服务端删除PERSISTE...
Java Stream
5. 实验结果总结从以上的实验来看,可以总结处以下几点: 在少低数据量的处理场景中(size <= 1000),stream 的处理效率是不如传统的 iterator 外部迭代器处理速度快的,但是实际上这些处理任务本身运行时间都低于毫秒,这点效率的差距对普通业务几乎没有影响,反而 stream 可以使得代码更加简洁; 在大数据量(szie > 10000)时,stream 的处理效率会高于 iterator,特别是使用了并行流,在cpu恰好将线程分配到多个核心的条件下(当然parallel stream 底层使用的是 JVM 的 ForkJoinPool,这东西分...
avatar
Maple
coding & have fun