排序:
默认
按更新时间
按访问量

JAVA 10源码阅读笔记之JEP-307(G1的并行Full GC)

# 1. 背景 JEP-307解决了G1垃圾回收器的一个严重的问题,截止到Java 9,G1的Full GC采用的是单线程算法,严重影响性能,无法利用到多核能力进行垃圾回收。JEP-307修复了此问题,发生Full GC时允许使用多个线程进行并行回收。 # 2. G1的简单介绍 在Java 6/...

2018-09-27 20:29:27

阅读数:26

评论数:0

Lambda表达式与匿名内部类的区别分析

背景最近面试中与几个候选人探讨过类似的问题,发现多数人对这一概念仍然比较模糊,本文将从字节码的角度简单介绍一下两者的区别匿名内部类匿名内部类其实就是没有名字的内部类,但是其必须要实现一个接口或者继承一个父类,通常是用来简化代码例程如下:先定义一个IAnimal然后定义测试类NestedClassT...

2018-07-13 11:40:51

阅读数:201

评论数:0

JDK 11中的ZGC-一种可扩展的低延迟垃圾收集器

# 背景正如我们所知道的在JDK 11中即将迎来ZGC(The Z Garbage Collector),这是一个处于实验阶段的,可扩展的低延迟垃圾回收器。本文整合了外网几篇介绍ZGC的文章和代码。# 目标* 每次GC STW的时间不超过10ms* 能够处理从几百M到几T的JAVA堆* 与G1相比...

2018-07-13 11:36:15

阅读数:3868

评论数:2

解决nginx 504 Gateway Time-out的方法

我解决nginx 504 Gateway Time-out的方法 我的应用是nginx+tomcat7  根据这个错误,是因为tomcat没有及时回应nginx,导致错误. 先使用 fiddler 将页面的请求抓出来. 找到504的请求.然后查找原因. 因为这个请...

2016-11-22 17:04:39

阅读数:8294

评论数:2

哪个更快:Java堆还是本地内存

使用Java的一个好处就是你可以不用亲自来管理内存的分配和释放。当你用new关键字来实例化一个对象时,它所需的内存会自动的在Java堆中分配。堆会被垃圾回收器进行管理,并且它会在对象超出作用域时进行内存回收。但是在JVM中有一个‘后门’可以让你访问不在堆中的本地内存(native memory...

2016-10-31 09:43:24

阅读数:551

评论数:0

Intellij Idea for Lombok plugin 编译错误疑问

最近从eclipse 搬来一个项目,转到intellij idea安装lombok插件,能识别@Slf4j注解,但log.debug日志打印 编译都不通过   报log找不到 错误 eclipse编译没问题的,这种问题请问该如何解决? Setting - Compile...

2016-09-30 16:23:24

阅读数:6528

评论数:0

TLAB

2. TLAB JVM在内存新生代Eden Space中开辟了一小块线程私有的区域,称作TLAB(Thread-local allocation buffer)。默认设定为占用Eden Space的1%。在Java程序中很多对象都是小对象且用过即丢,它们不存在线程共享也适合被快速GC,所以对...

2016-09-28 22:18:32

阅读数:3004

评论数:1

Java instanceof 关键字是如何实现的?

HotSpot VM具体使用了长度为8的缓存数组,记录某个类从继承深度0到7的超类。HotSpot把类继承深度在7以内的超类叫做“主要超类型”(primary super),把所有其它超类型(接口、数组相关以及超过深度7的超类)叫做“次要超类型”(secondary super)。 对“主要超类...

2016-08-01 23:33:12

阅读数:1752

评论数:0

Java 8 HashMap键与Comparable接口

这篇文章主要介绍了 Java 8 在 HashMap 哈希冲突处理方面的新特性。 相对之前的版本,Java 8 在许多方面有了提升。其中有很多类被更新了,HashMap 作为最常使用的集合类之一也不例外。这篇文章将介绍 Java 8 中的 HashMap 在处理哈希冲突时的新特性。 让...

2016-06-12 09:51:21

阅读数:201

评论数:0

tomcat 中文问题

vi /srv/tomcat/bin/catalina.sh  JAVA_OPTS="-Dfile.encoding=UTF-8"

2016-06-01 22:52:04

阅读数:146

评论数:0

Condition

在java.util.concurrent包中,有两个很特殊的工具类,Condition和ReentrantLock,使用过的人都知道,ReentrantLock(重入锁)是jdk的concurrent包提供的一种独占锁的实现。它继承自Dong Lea的 AbstractQueuedSynchro...

2016-05-25 10:20:34

阅读数:155

评论数:0

Java集合框架

Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。...

2016-05-25 10:09:27

阅读数:149

评论数:0

20160516-1

1. 交易 1.1 需求 采用拍卖场模式,支持一口价和出价(最低加价5元宝,不设置上限) 1.2 实现 1.2.1 接口 mina监听指定socket端口(数据库设置一个t_server_config表,相关各种配置一并存入) 1.2.2 实现 1.2.2.1 添加物品 消息到达后,insert ...

2016-05-17 16:08:13

阅读数:211

评论数:0

20160516

1. 交易 1.1 需求 采用拍卖场模式,支持一口价和出价(每次自动提价10%?) 1.2 实现 1.2.1 接口 mina socket监听指定端口 1.2.2 实现 1.2.2.1 添加物品 消息到达后,insert table, 并返回insert结果,消息中包含底价和一口价 1.2.2.2...

2016-05-16 21:57:57

阅读数:233

评论数:0

JVM中锁

自旋锁 互斥同步对性能最大的影响是阻塞的实现,挂起线程和恢复线程的操作都需要转入内核态中完成,这些操作给系统的并发性能带来了很大的压力。而在很多应用上,共享数据的锁定状态只会持续很短的一段时间。若实体机上有多个处理器,能让两个以上的线程同时并行执行,我们就可以让后面请求锁的那个线程原地自旋(...

2016-05-09 09:31:00

阅读数:162

评论数:0

clustered index

clustered index的好处: 1)数据行是按主键顺序存储在一起的,读取少量的磁盘页面就可以把相邻主键的数据读出来。 2)索引和数据都保存在一棵B+ tree中,从索引中读取数据较快 3)使用覆盖索引的查询可以使用包含在叶子节点的主键值。 cluster...

2016-04-13 18:16:45

阅读数:253

评论数:0

Linux调整swap大小和swap性能优化

Linux调整swap大小和swap性能优化 机器上的swap空间太大,但是由于硬盘io较慢,所以决定做一些优化:调小swap,然后尽可能的"禁用"swap。 1、先“df -h”和“fdisk - l”命令查看一下当前分区情况 /dev/mapper/vg_...

2016-04-11 18:35:51

阅读数:17985

评论数:0

通过Java字节码发现有趣的内幕之初始化篇(下)

关于类初始化过程网上有很多相关的文章,其实也算是学习语言时一个基础知识,但今天我想从字节码表现上更深入的来理解各种场景下的实例初始化过程是怎么样的,从简单到复杂大体分为下面几个场景 。 1、成员+构造函数 2、成员+代码块+构造函数 3、 静态变量+静态代码块 4、 继承和...

2016-03-29 09:40:11

阅读数:219

评论数:0

通过Java字节码发现有趣的内幕之String篇(中)

1、字面量相加 首先来看两个字面量字符串相加发生了什么情况,Java代码: 1 2 3 4 5 6 7 8 package com.jaffa.test.string;   pub...

2016-03-29 09:38:59

阅读数:350

评论数:0

通过Java字节码发现有趣的内幕之String篇(上)

很多时候我们在编写Java代码时,判断和猜测代码问题时主要是通过运行结果来得到答案,本博文主要是想通过Java字节码的方式来进一步求证我们已知的东西。这里没有对Java字节码知识进行介绍,如果想了解更多的Java字节码或对其感兴趣的朋友可以先阅读字节码基础:JVM字节码初探。 String字...

2016-03-29 09:38:32

阅读数:378

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭