OpenJDK

牛逼!OpenJDK 源码要迁移到 GitHub 了!

浪子不回头ぞ 提交于 2020-08-06 09:23:30
OpenJDK 项目正在从 Mercurial 迁移到 GitHub,预计在2020年9月完成。切换至 Git 代码版本控制系统的部分预期目的是提升性能和对代码审查的更好支持。 OpenJDK 从 2008 年起一直使用 Mercurial 作为源代码管理解决方案,用于存储代码并进行代码审查。 如今部分 OpenJDK 项目(如 Loom、Valhalla 和 JMC)已完全从 Mercurial 迁移至 GitHub,还有部分项目例如 JDK 本身正在迁移中,对于这些项目,其仓库已托管在 GitHub 上,但目前仍是只读副本。到 9 月份 GitHub 成为正式的读写主仓库时,JDK 项目将加入其中。 OpenJDK 在 2018 年开始评估 Mercurial 在源代码管理方面的可能替代方案,当时还定义了一系列评估标准,宗旨是“提升所有贡献者(无论是新贡献者还是现有贡献者)的生产力”: 性能:从主仓库进行克隆操作的时间、本地操作的时间等 空间效率 在不同地区的可用性 支持常见的开发环境,例如 Linux, Mac 和 Windows 能够轻松托管 JDK 的整个历史项目文件和未来十年基于其历史的预计增长 支持通用的 JDK 代码审查实践 提供程序化 API,以实现流程协助以及审查和流程的自动化 尽管现有的 OpenJDK 开发者熟悉 Mercurial 以及存在一定的迁移成本

国外程序员整理的Java资源大全(全部是干货)

偶尔善良 提交于 2020-08-05 12:14:32
原文 译者 唐尤华 翻译自 github akullpp 这里搜集了用来构建应用程序的工具。 Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配置,所以维护起来相当困难。 Gradle:Gradle采用增量构建。Gradle通过Groovy编程而不是传统的XML声明进行配置。Gradle可以很好地配合Maven进行依赖管理,并且把Ant脚本当作头等公民。 字节码操作 编程操作Java字节码的函数库。 ASM:通用底层字节码操作及分析。 Javassist:尝试简化字节码编辑。 Byte Buddy:使用“流式API”进一步简化字节码生成。 代码分析 软件度量和质量评估工具。 Checkstyle:对编程规范和标准进行静态分析。 FindBugs:通过字节码静态分析找出潜在Bug。 PMD:对源代码中不良编程习惯进行分析。 SonarQube:通过插件集成其它分析组件,提供评估最终结果报告。 编译器 创建分析器、解释器和编译器的框架。 ANTLR:功能完备的自顶向下分析复杂框架。 JavaCC:相对ANTLR更具体,上手略为简单。支持语法语法超前预测(syntactic lookahead)。 持续集成 支持持续集成、测试和应用发布的工具。 Bamboo

熟练使用这15点,让你的SpringBoot启动更上一层楼!

本小妞迷上赌 提交于 2020-08-05 10:25:38
使用的是 OpenJDK 11 。 java --version openjdk 11.0.1 2018-10-16 OpenJDK Runtime Environment 18.9 (build 11.0.1+13) OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode) 可以按照下面这样运行基准测试。运行起来可能需要一些时间,下面会执行所有的测试。 ./mvnw clean package (cd benchmarks/; java -jar target/benchmarks.jar) 1. FluxBaseline 我使用 SpringInitializr 创建项目,仅包含 Reactive Web。接下来,我会写一个 WebMVC 风格的极简controller。 @SpringBootApplication @RestController public class DemoApplication { @GetMapping("/") public String home() { return "Hello"; } public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }

自己编译JavaFX Scene Builder

这一生的挚爱 提交于 2020-08-05 08:50:28
虽然没有捣鼓JAVAFX,但是 近日发现Oracle官网竟然不提供JAVAFX Scene Builder的下载的。原先发布的2.0版本提示过期,心中一怒。几番寻找发现Scene Builder被迁至OpenJFX中。不知为什么官方不给编译Scene Builder.不管它。 我们首先需要同步OpenJFX源码: hg clone http://hg.openjdk.java.net/openjfx/8u-dev/rt 我们可以使用TorToisHG来进行同步。 同步源码之后,我们可以发现apps/scenebuilder这个目录。哈哈,这就是Scene Builder的源码目录。 然后我们打开NetBeans导入SceneBuilderApp,SceneBuilderkit这两个项目。(SceneBuilderApp依赖于SceneBuilderkit项目) 在NetBeans下构建SceneBuilderApp项目即可。之后再dis/下可以找到SceneBuilderApp.jar和lib/SceneBuilderkit.jar这就是我们需要的。 我们可以将他们拷贝出来。编写个bat运行 start %JAVA8_HOME%\bin\javaw -jar SceneBuilderApp.jar 到此结束。 目前最新版为2.0.1 注意几点: 1.通过JAVA8启动 2

CentOS 7安装JDK8(Windows / MacOS)

让人想犯罪 __ 提交于 2020-08-05 04:30:38
CentOS 7安装JDK8 1. 软件 1.1 Windows 1.2 MacOS 2. 安装 2.1 连接虚拟机 2.1.1 Windows连接 2.1.2 MacOS连接 2.2 检查系统是否存在OpenJDK 2.3 上传JDK 2.4 解压JDK 2.5 配置环境变量 1. 软件 1.1 Windows Windows系统主要用到的软件是Xftp(我用的是Xftp6),如果是虚拟机的话这一个软件就够了,如果给云端安装JDK的话还需要Xshell(我用的是Xshell6),其中Xshell 6用来连接虚拟机 / 云端,Xftp 6用来传输文件。 两款软件均有免费(个人/非商用)版,只需提供自己的邮箱和姓名,官方会给你的邮箱发送下载链接。 下载地址: Xshell 6 + Xftp 6免费版官方下载地址 1.2 MacOS MacOS系统主要用到的软件有FinalShell或者SecureCRT和FileZilla,其中,FinalShell / SecureCRT用来连接虚拟机 / 云端,FileZilla用来传输文件。 2. 安装 CentOS查看防火墙状态命令 systemctl status firewalld CentOS关闭防火墙命令(重启后防火墙仍然开启) systemctl stop firewalld CentOS禁用防火墙命令(永久关闭防火墙

JVM 关于对象分配在堆、栈、TLAB的理解

纵饮孤独 提交于 2020-07-29 07:11:05
引言   我们知道,一般在java程序中,new的对象是分配在堆空间中的,但是实际的情况是,大部分的new对象会进入堆空间中,而并非是全部的对象,还有另外两个地方可以存储new的对象,我们称之为 栈上分配 以及 TLAB 栈上分配 为什么需要栈上分配?   在我们的应用程序中,其实有很多的对象的作用域都不会逃逸出方法外,也就是说该对象的 生命周期会随着方法的调用开始而开始,方法的调用结束而结束 ,对于这种对象,是不是该考虑将对象不在分配在堆空间中呢?   因为一旦分配在堆空间中,当方法调用结束,没有了引用指向该对象,该对象就需要被gc回收,而如果存在大量的这种情况,对gc来说无疑是一种负担。 什么是栈上分配?   因此,JVM提供了一种叫做栈上分配的概念,针对那些 作用域不会逃逸出方法的对象 ,在分配内存时不在将对象分配在堆内存中,而是将对象属性 打散后分配在栈(线程私有的,属于栈内存)上 ,这样,随着方法的调用结束,栈空间的回收就会随着将栈上分配的打散后的对象回收掉,不再给gc增加额外的无用负担,从而提升应用程序整体的性能    本质 :Java虚拟机提供的一项 优化技术    基本思想 : 将 线程私有 的对象 打散分配在栈上    优点 :     1)可以在函数调用结束后 自行销毁 对象,不需要垃圾回收器的介入,有效避免垃圾回收带来的负面影响     2)栈上 分配速度快

CentOS 7.4安装配置Oracle 12cR2 12.2.0.1.0

十年热恋 提交于 2020-07-29 05:47:48
CentOS 7.4安装配置Oracle 12cR2 12.2.0.1.0 Marion0728 关注 0人评论 6293人阅读 2018-08-08 16:50:51 一、 环境介绍: IP:192.168.1.231 OS:CentOS 7.4 x86_64 CPU:8 内存 :16G 硬盘 :200G JDK版本 :1.8.0_181 Oracle 版本 :12.2.0.1.0 二、 安装准备: 1、 关闭 SElinux 和 firewalld 2、 安装依赖软件包: # yum -y install unzip ntp binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutils-libelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686

手动编译jdk

落爺英雄遲暮 提交于 2020-07-29 02:56:06
自己动手编译jdk 此次编译的jdk版本为12 编译环境为 ubuntu 18.0.4LTS jdk12 因为源码中有java代码,故需要先安装一个jdk环境,环境为jdk11 1)下载jdk 下载地址为 http://hg.openjdk.java.net/jdk 选择需要编译的jdk版本,此次选择的是12 点击之后,可以在最左边的菜单栏中点击browse浏览jdk代码目录结构 然后点击gz或者zip,因为使用的是ubuntu,故选在gz格式的 2)解压以后,查看doc文件夹下的Building.html文件 这个文件,就是详细介绍如何编译jdk,需要的环境,怎么配置等等信息,十分必要,编译之前一定要好好浏览一下。 3) 浏览Building.html文件 得知,整个编译步骤分为如下几步 4)构建编译环境 sudo apt-get install build-essential 5)安装编译jdk需要的依赖 安装 FreeType sudo apt-get install libfreetype6-dev 安装 CUPS sudo apt-get install libcups2-dev 安装 X11 sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev 安装 ALSA

唯品会开源分布式作业调度平台Saturn

…衆ロ難τιáo~ 提交于 2020-07-28 19:55:45
前言 Saturn英文意思是:土星,太阳系中的第二大行星。比地球高一个层级,地球是八大行星之一。而今天我们介绍的Saturn,是IT行业的一个分布式作业调度平台。可以看到Saturn的管理界面的象征性图标就是如下一个土星标志​: 土星 背景 普通的SpringBoot/SpringCloud微服务和Dubbo RPC分布式架构技术,都有着其各自的优缺点。其中最明显的就是模块间的依赖性: 比如SpringCloud必须依赖网关Zuul和ConfigCenter配置中心。 前一个业务模块必须启动并正常运行,后面依赖该业务模块的才能正常启动。 Dubbo必须要配置Service且正常启动并运行。 后面调用前面的Dubbo Service作业才能正常启动。 一、简介 Saturn (任务调度系统)是唯品会开源的一个分布式任务调度平台,取代传统的Linux Cron/Spring Batch Job的方式,做到全域统一配置,统一监控,任务高可用以及分片并发处理。 Saturn是在当当开源的Elastic Job基础上,结合各方需求和我们的实践见解改良而成。 GitHub上Saturn官网活跃着很多Saturn用户和爱好者,业界也有很多公司以Saturn作为公司的核心架构 https://github.com/vipshop/Saturn 二、特性 基于时间的作业调度,作业实现不受开发语言所限

#新闻拍一拍# 苹果强势逼迫整个 CA 行业进入一年的证书寿命期

China☆狼群 提交于 2020-07-28 10:39:43
苹果强势逼迫整个 CA 行业进入一年的证书寿命期 苹果公司在 2020 年 2 月单方面做出的一项决定,并有效地强势逼迫证书颁发机构行业接受 TLS 证书 398 天的新默认寿命。苹果打破了 CA/B 论坛的标准操作程序,没有要求投票,而是简单地宣布决定在其设备上实施 398 天的寿命。继苹果最初宣布之后,Mozilla 和谷歌也表示了类似的意向,将在其浏览器中实施同样的规则。从 2020 年 9 月 1 日开始,苹果、谷歌和 Mozilla 的浏览器和设备将对有效期超过 398 天的新 TLS 证书显示错误。TLS 证书的寿命从 8 年开始,经过多年的发展,浏览器厂商对其进行了削足适履,将其降低到 5 年,然后是 3 年,再到2年。上一次变化发生在 2018 年 3 月,当时浏览器制造商试图将 SSL 证书寿命从三年减少到一年,但在 CA 的积极反击下妥协了两年。简单点说,就是表明浏览器厂商控制了 CA/B 论坛,他们完全控制了 HTTPS 生态系统,而 CA 只是参与者,没有实际权力。 来源: cnBeta.COM 拍一拍:这个世界果然是谁的拳头大谁说了算。 部分开源项目着手支持 macOS ARM64 虽然首批搭载苹果 64 位 ARM 芯片的 MacBook/Mac 最快也要到年底才会面向消费者提供,并且在这之前苹果只向开发者提供数量有限的开发机,但部分开源项目已经在为