深入分析 OpenJDK G1 FullGC 原理
导读 本文主要从代码层面介绍 OpenJDK G1(garbage first) FullGC 的工作原理,基于 OpenJDK 从 GC(garbage collection) 入口处开始分析整个 FullGC 原理的核心代码与执行过程;并对比 OpenJDK8 与 OpenJDK11 中单线程...
Debian Security Advisory(Debian安全报告) DSA-4410-1 openjdk-8 security update
Debian Security Advisory(Debian安全报告) DSA-4410-1 openjdk-8 security updatePackage :openjdk-8CVE ID: CVE-2019-2422基于Oracle Java实现的OpenJDK中发现了内存泄露漏洞,将导致信...
OpenJDK源码研究笔记(十):枚举的高级用法,枚举实现接口,竟是别有洞天
在研究OpenJDK,Java编译器javac源码的过程中,发现以下代码。顿时发现枚举类竟然也有如此“高端大气上档次”的用法。沙场点兵(用法源码)com.sun.tools.javac.file.JavacFileManager.SortFilesprotected enum SortFiles i...
Mac OSX 10.10 Yosemite编译OpenJDK 8
编译时间:2016-04-03 系统版本:Mac OS X Yosemite 10.10.2 编译OpenJDK版本:JDK8 相关软件版本: • XCode版本:Version 5.1.1 (5B1008) • J...
OpenJDK字体渲染修正
现在Java的字体渲染比以前进步多了,但最近装了个Monaco,却发现无论如何不能在idea中很好地显示,在eclipse里很正常,于是切换到eclipse,没用几下就放弃了,eclipse的Scala插件实在太不成熟了,简单的命名重构居然把我的代码改的面目全非,通不过编译了,相比之下idea的...
Ubuntu16.04 安装openjdk-7-jdk
Ubuntu16.04 安装openjdk-7-jdksudo apt-get install openjdk-7-jre 或者sudo apt-get install openjdk-7-jdkUbuntu16.04的安装源已经默认没有openjdk7了,所以要自己手动添加仓库,如下:# 1. o...
OpenJDK源码研究笔记(十):枚举的高级用法,枚举实现接口,竟是别有洞天
在研究OpenJDK,Java编译器javac源码的过程中,发现以下代码。 顿时发现枚举类竟然也有如此“高端大气上档次”的用法。 沙场点兵(用法源码) com.sun.tools.javac.file.JavacFileManager.SortFilesprotected enum SortFile...
删除Centos7 中原有的java1.8(openjdk)
1、查询当前java版本 java -version 2、查询现有已安装的openjdk模块 rpm -qa|grep java 3、删除查询到的jdk文件, 如:yum -y remove * yum -y remove python-javapackages-3....
OpenJDK源码研究笔记(十二):JDBC中的元数据,数据库元数据(DatabaseMetaData),参数元数据(ParameterMetaData),结果集元数据(ResultSetMetaDa
元数据最本质、最抽象的定义为:data about data (关于数据的数据)。它是一种广泛存在的现象,在许多领域有其具体的定义和应用。JDBC中的元数据,有数据库元数据(DatabaseMetaData),参数元数据(ParameterMetaData),结果集元数据(ResultSetMeta...
OpenJDK源码研究笔记(十五):吐槽JDK中的10个富有争议的设计
前14篇文章,分享了JDK中值得学习和借鉴的编码和设计方法。每个硬币都是有两面的。Every coin has two sides。当然,JDK中也有很多值得改进或者说富有争议的设计。本篇,就来详细吐槽下JDK中的10个富有争议的设计。网友指出1.求和抛异常,错误提示不合理。在OpenJDK源码研究...
OpenJDK源码研究笔记(十三):Javac编译过程中的上下文容器(Context)、单例(Singleton)和延迟创建(LazyCreation)3种模式
在阅读Javac源码的过程中,发现一个上下文对象Context。这个对象用来确保一次编译过程中的用到的类都只有一个实例,即实现我们经常提到的“单例模式”。今天,特意对这个上下文容器进行解析,主要是讲解上下文容器、单例模式和延迟创建。通过对OpenJDK和Javac源码的一点点解析,希望自己能够搞懂J...
OpenJDK源码研究笔记(十四):三种经典的设计方法,接口,接口-抽象类-具体实现类,接口-具体实现类
在研究OpenJDK源码过程中,我发现常用的设计方法就是2种:接口,接口-抽象类-具体实现类 。在一些其它开源框架和业务开发中,经常存在着第3种设计,接口-具体实现类。1.只有接口,没有实现类。定义接口,制定标准。在Java中,这个最典型的案例是JDBC的API的设计。Connection、Stat...
OpenJDK源码研究笔记(二)-Comparable和Comparator2个接口的作用和区别(一道经典的Java笔试面试题)
Comparable和Comparator是JDK中定义的2个比较接口,很相似,但又有所不同。这2个接口的作用和区别也是Java中的常见经典面试题。下面我们就来详细介绍下这2个接口的定义、作用、区别、模式、应用场景和代码案例。定义public interface Comparable<T>...
OpenJDK源码研究笔记(七)–Java字节码文件(.class)的结构
最近在看OpenJDK源码的过程中,顺便看了Java编译器(javac)的源码。为了理解javac的源码,需要先搞懂Java字节码文件(.class)的结构。于是,我就认真看了下OpenJDK中Java字节码文件的相关源码,结合大学期间对JVM的研究,参考JVM规范第2版(英文原版),特意整理下。J...
OpenJDK源码研究笔记(十四):三种经典的设计方法,接口,接口-抽象类-具体实现类,接口-具体实现类
在研究OpenJDK源码过程中,我发现常用的设计方法就是2种:接口,接口-抽象类-具体实现类 。 在一些其它开源框架和业务开发中,经常存在着第3种设计,接口-具体实现类。 1.只有接口,没有实现类。 定义接口,制定标准。 在Java中,这个最典型的案例是JDBC的API的设计。 C...
linux如何卸载openjdk并安装配置sun JDK1.8
CentOS下安装配置JDK方法较多,推荐用tar.gz包来安装,安装文件目录自己可控。 工具/原料 jdk-8u65-linux-i586.tar.gz 方法/步骤 下载JDKjdk-8u65-linux-i586.tar.gz 检查卸载已经安装的默认jdk[root@loca...
openJDK之如何下载各个版本的openJDK源码
如果我们需要阅读openJDK的源码,那么需要下载,那么该去哪下载呢? 现在JDK已经发展到版本10了,11已经处于计划中,如果需要特定版本的openJDK,它们的下载链接在哪呢? 1.openJDK的项目 链接:http://hg.openjdk.java.net/,如下图1所示 ...
openjdk的源码下载方式
官方地址是: http://hg.openjdk.java.net/ jdk8的下载地址: http://hg.openjdk.java.net/jdk8/jdk8/hotspot/ 点击zip即可开始下载,实际下载地址(以jdk8为例): http://hg.openjdk.java.net/...
linux卸载openjdk安装sunjdk并配置环境变量
转载自:http://www.th7.cn/system/lin/201305/39695.shtml linux卸载openjdk安装sunjdk并配置环境变量 linux一般都安装的是openjdk,但是在开发中,有些时候必须要用sunjdk,这是只能将openjdk卸载,装上sunjd...
ubuntu删除openjdk,安装 Sun JDK
1.到官网下载安装包: jdk-7-linux-i586.tar.gz 2.创建安装目录:sudo mkdir /usr/lib/jvm 3. 解压缩:tar zxvf ./jdk-7-linux-i586.tar.gz -C /usr/lib/jvm 4.设置环境变量:vim ~/.bashrc ...