Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的新特性 Java10的新特性 序 本文主要讲述一下Java9的新特性 特性列表 完整的特性详见...系列(一)安装及jshell使用 Unified JVM/GC Logging 相关JEP: JEP 158: Unified JVM Logging JEP 264: Platform Logging...同时改进httpclient的api,支持异步模式。...API Variable Handles 相关JEP JEP 193: Variable Handles 相关解读 java9系列(七)Variable Handles docker方面支持 Java...新引入的jlink可以精简化jdk的大小,外加Alpine Linux的docker镜像,可以大大减少java应用的docker镜像大小,同时也支持了Docker的cpu和memory限制(Java SE
序 本文主要研究一下java9的classloader java9之前的classloader bootstrap classloader加载rt.jar,jre/lib/endorsed ext classloader...加载jre/lib/ext application classloader加载-cp指定的类 java9及之后的classloader bootstrap classloader加载lib/modules...加载-cp,-mp指定的类 jdk.aot jdk.jdeps jdk.attach jdk.jdi jdk.compiler...jdk.scripting.nashorn.shell jdk.javadoc jdk.xml.bind* jdk.jcmd jdk.xml.ws* jdk.jconsole 小结 java9...模块化之后,对classloader有所改造,其中一点就是将ext classloader改为platform classloader,另外模块化之后,对应的classloader加载各自对应的模块。
jvm_hotswap_ok BUT!...jvm_hotswap_fail Solution We need to use special java agent together with our JVM to enhance ability...No support for JDK8+) DCEVM (free-opensource-reallyhot :grinning:) We will choose: DCEVM + Hotswap Agent...Download latest release of DCEVM Java patch and launch the installer with sudo(e.g. sudo java -jar DCEVM-light...Select java installation directory on your disc and press "Install DCEVM as altjvm" button.
【大牛经验】Java9的新特性 Java 9 包含了丰富的特性集。虽然Java 9没有新的语言概念,但是有开发者感兴趣的新的API和诊断命令。 我们将快速的,着重的浏览其中的几个新特性: ?...统一的JVM日志 如今,我们很难知道导致JVM性能问题和导致JVM崩溃的根本原因。解决这个问题的一个方法是对所有的JVM组件引入一个单一的系统,这些JVM组件支持细粒度的和易配置的JVM日志。...目前,不同的JVM组件对于日志使用的是不同的机制和规则,这使得JVM难以进行调试。...HTTP 2 客户端 Java 9采用了全新的HTTP客户端API,这些API支持HTTP/2协议和WebSocket协议,并且替换了遗留的HTTPURLConnectionAPI。...变量不能被命名为_; * 废弃Applet API; * javac不再支持Java1.4以及之前的版本; * 废弃Java浏览器插件; * 栈遍历API–栈遍历API能过滤和迟访问在堆栈跟踪中的信息。
序 本文主要研究下java9 opens与exports的区别 open及exports open open module 主要用于解决deep reflection问题,open的作用是表示该模块下的所有的包在...runtime都允许deep reflection(包括public及private类型) 但是编译时期,仅仅允许该module中声明过exports的包可以访问,如果没有exports则该包的类在编译时期不可读...opens package 用于声明该模块的指定包在runtime允许使用反射访问 exports 表示允许在编译时和运行时访问指定包的public成员 open及exports对反射的影响 反射方法...小结 open表示允许运行时通过反射使用open的作用是表示该模块下的所有的包在runtime都允许deep reflection(包括public及private类型);opens package的作用只是允许该包在...runtime都允许deep reflection open及opens都仅仅是开放runtime时期的可以通过反射访问(蕴含了运行时的exports)。
在Java 9中,期望代码能获取Linux PID,现在是如下方式: 你可以变换如下的方式(同样支持所有的操作系统): Try-With-Resources 在Java 7中,try-with-resouces...统一的JVM日志 如今,我们很难知道导致JVM性能问题和导致JVM崩溃的根本原因。解决这个问题的一个方法是对所有的JVM组件引入一个单一的系统,这些JVM组件支持细粒度的和易配置的JVM日志。...目前,不同的JVM组件对于日志使用的是不同的机制和规则,这使得JVM难以进行调试。...HTTP 2 客户端 Java 9采用了全新的HTTP客户端API,这些API支持HTTP/2协议和WebSocket协议,并且替换了遗留的HTTPURLConnectionAPI。...变量不能被命名为_; * 废弃Applet API; * javac不再支持Java1.4以及之前的版本; * 废弃Java浏览器插件; * 栈遍历API–栈遍历API能过滤和迟访问在堆栈跟踪中的信息。
首先说 Java Agent 是一个 jar 包,只不过这个 jar 包不能独立运行,它需要依附到我们的目标 JVM 进程中。我们来理解一下这两种叫法。...代理:比方说我们需要了解目标 JVM 的一些运行指标,我们可以通过 Java Agent 来实现,这样看来它就是一个代理的效果,我们最后拿到的指标是目标 JVM ,但是我们是通过 Java Agent...而 Java Agent 可以像一支针一样插到 JVM 内部,探到我们想要的东西,并且可以注入东西进去。 拿上面的几个我们平时会用到的技术举例子。...这要从 Java Agent 的使用方式来说了,Java Agent 有两种启动方式,一种是以 JVM 启动参数 -javaagent:xxx.jar 的形式随着 JVM 一起启动,这种情况下,会调用...运行打包好的 Java Agent 首先写一个简单的测试项目,用来作为目标 JVM,稍后会以两种方式将 Java Agent 挂到这个测试项目上。
这意味着您现在可以使用 Java 11 JVM 运行 Jenkins master 和代理程序。 从2018年6月开始,组织了许多活动来改进 Jenkins 代码库并添加 Java 11支持。...除了这些事件之外,Core/Plugins 维护者和许多其他贡献者都在努力工作,确保他们发现并解决与 Java 11支持相关的尽可能多的问题。...支持 Java 11的努力导致在 Jenkins 中创建了 JEP-211: Java 10+ support in Jenkins。...它还促使平台特别兴趣小组的成立,以协调 Java 11工作和其他平台支持工作。...我们的首要任务是为 JenkinsFile Runner 项目添加 Java 11支持。从那里开始,我们将继续为 Jenkins X 项目和 Evergreen项目提供 Java 11支持。
前言 编写C/C++代码最大的痛苦就是语法提示和调试,早期Android Studio对NDK不做支持或者支持得不够好,导致NDK开发异常缓慢,最大的问题是调试,经常一些崩溃问题需要反复的加日志排查。...然而现在Android Studio对NDK的开发和调试都做了比较好的支持(仍然存在一些bug)。下面就来说一下如何进行配置。...支持版本 不太确定是从哪个版本开始支持的,但我当前使用的版本能很好支持: Android Studio 2.2.3 gradle-2.14.1-all.zip //在gradle-wrapper.properties...对ndk-build的支持 如果项目之前使用ndk-build那一套编译方式,即需要Android.mk,那么只要在module下的build.gradle中稍加配置即可集成,例子如下: 1 apply...,配置依然会生效,比如在其中指定:APP_STL := stlport_static 关于Android.mk的更多知识,参考Android.mk语法解释[转] 对CMake的支持 现在AndroidStudio
本文将包含以下内容: GC的作用范围 GC负责的事情 JVM中的4种GC G1的一些细节 使用Java 9正式版对G1进行测试 一些简单的GC调优方法 一、GC的作用范围 要谈GC的作用范围,首先要谈JVM...Parallel/Throughput Parallel在Java 9之前是服务器型宿主机中JVM的默认GC,其垃圾回收的算法和Serial基本相同,不同之处在与它使用多线程来执行。...CMS在Java 9中已经被废弃,但了解CMS的行为对理解G1会有一些帮助,所以这里还是会简单的叙述一下。...注意传统的VM参数-XX:+PrintGCDetails在Java9中已经废弃,会有Warning信息。...重新标记:对应一次Pause Remark 在这个阶段,G1首先完成上一步开始的标记工作,之后会对特殊引用的对象进行处理(具体可以参考JDK解构 – Java中的引用和动态代理的实现),还有对Metaspace
这时候就得面对两个基础的问题: 很难真正地对代码进行封装, 而系统并没有对不同部分(也就是 JAR 文件)之间的依赖关系有个明确的概念。...通过封装 JDK 的内部类,平台更安全,持续改进也更容易。 当启动一个模块化应用时, JVM 会验证是否所有的模块都能使用,这基于 `requires` 语句——比脆弱的类路径迈进了一大步。...Javadoc 现在支持在 API 文档中的进行搜索。另外,Javadoc 的输出现在符合兼容 HTML5 标准。...HTTP/2 Java 9 中有新的方式来处理 HTTP 调用。这个迟到的特性用于代替老旧的 `HttpURLConnection` API,并提供对 WebSocket 和 HTTP/2 的支持。...这就意味着库得去向后兼容你想要支持的最老的 Java 版本 (许多情况下就是 Java 6 或者 7)。这实际上意味着未来的很长一段时间,你都不能在库中运用 Java 9 所提供的新特性。
这时候就得面对两个基础的问题: 很难真正地对代码进行封装, 而系统并没有对不同部分(也就是 JAR 文件)之间的依赖关系有个明确的概念。...当启动一个模块化应用时, JVM 会验证是否所有的模块都能使用,这基于 `requires` 语句——比脆弱的类路径迈进了一大步。模块允许你更好地强制结构化封装你的应用并明确依赖。...Javadoc 现在支持在 API 文档中的进行搜索。另外,Javadoc 的输出现在符合兼容 HTML5 标准。...HTTP/2 Java 9 中有新的方式来处理 HTTP 调用。这个迟到的特性用于代替老旧的 `HttpURLConnection` API,并提供对 WebSocket 和 HTTP/2 的支持。...这就意味着库得去向后兼容你想要支持的最老的 Java 版本 (许多情况下就是 Java 6 或者 7)。这实际上意味着未来的很长一段时间,你都不能在库中运用 Java 9 所提供的新特性。
(StatementImpl.java:1581) 这就是字符集不支持的异常。...升级步骤: 1.utf8mb4的最低mysql版本支持版本为5.5.3+,若不是,请升级到较新版本。...关于这些字符集配置是干什么用的,有什么区别,请参考:深入Mysql字符集设置 5.如果你用的是java服务器,升级或确保你的mysql connector版本高于5.1.13,否则仍然无法使用utf8mb4...这是mysql官方release note,大家可以查看说明,并下载最新的mysql connector for java的jar包。...这里为大家提供一个:mysql-connector-java-5.1.31-bin.ja 同时记得修改pom配置哦~ 6.检查你服务端的db配置文件: jdbc.driverClassName=com.mysql.jdbc.Drive
语法使用性的项目) 214: 移除 JDK 8 中废弃的GC组合 215: 让 javac 支持分层变量 216: 正确处理 Import 语句 217: 注解管道 2.0 219: 数据包传输层安全(...Javadoc 225: Javadoc搜索 226: UTF-8属性文件 227: Unicode 7.0 228: 增加更多的诊断命令 229: 默认创建 PKCS12 秘钥库 231: 移除启动时对...是JDK自带的Javascript引擎) 237: Linux/AArch64 移植 238: JAR 文件支持多个版本:JAR文件可同时包含多个版本的class文件 240: 移除 JVM TI hprof...Agent 241: 移除 jhat 工具 243: 提供Java级别的 JVM 编译器接口 244: TLS 应用层协议协商扩展 245: 验证 JVM 命令行标记参数 246: 针对 GHASH...可以检查X.509数字证书的撤销状态) 250: 在类数据分享文件(CDS)中存储内部字符串 251: 支持多种分辨率图像 252: 默认使用 CLDR 作为地域数据:(译注:CLDR是Unicode协会的通用地域数据仓库
Greenplum 对JSON的支持 源文章:http://www.postgresqltutorial.com/postgresql-json/ Greenplum 对JSON的支持 1 1 JSON...创建函数的使用 7 4.1 创建int类型的JSON格式数据 7 4.2 把行的数据转化为JSON类型的数据 7 5 JSON处理函数的使用 8 5.1 获取JSON中的数据 8 5.2 获取JSON...中的数据(去除双引号) 8 5.3 获取JSON数据中的KEY的值 9 6 查询JSON数据的方式 9 6.1 创建支持JSON数据的表 9 6.1.1 创建表的SQL 9 6.1.2 插入数据SQL...是作为储存数据的一种比较使用的一种格式,greenplum从5.0开始便很好的支持了JSON数据。...6 查询JSON数据的方式 6.1 创建支持JSON数据的表 6.1.1 创建表的SQL 创建带有主键的表 CREATE TABLE test_json ( ID serial NOT NULL PRIMARY
介绍python的Xpath的python开元项目: 1.libxml2-python-2.6.4.tar.gz 安装:下载对应python版本的软件包à解压àpython setup.py install...doc.freeDoc() 例三 import libxml2 doc = libxml2.parseFile('/tmp/books.xml') doc.xpathEval('child::book') #返回的结果是什么...bookstore/book[price>35.00]')[0].content doc.xpathEval('/bookstore/book[last()]') doc.freeDoc() 2.Google的开源项目...,python官方网站上推荐的xpath项目,版本为0.1 http://py-dom-xpath.googlecode.com/files/py-dom-xpath-0.1.tar.gz 安装:下载软件包...]', doc) 还可以根据命名空间查询 详细参考文档:http://py-dom-xpath.googlecode.com/svn/trunk/doc/index.html 3.用python中自带的库解析
Java 7中,switch的参数可以是String类型了,这对我们来说是一个很方便的改进。到目前为止switch支持这样几种数据类型:byte short int char String 。...但是,作为一个程序员我们不仅要知道他有多么好用,还要知道它是如何实现的,switch对整型的支持是怎么实现的呢?对字符型是怎么实现的呢?String类型呢?...有一点Java开发经验的人这个时候都会猜测switch对String的支持是使用equals()方法和hashcode()方法。那么到底是不是这两个方法呢?...,那么我们就知道,switch对int的判断是直接比较整数的值。...好,以上就是关于switch对整型、字符型、和字符串型的支持的实现方式,总结一下我们可以发现,其实switch只支持一种数据类型,那就是整型,其他数据类型都是转换成整型之后在使用switch的。
在实际编码工作中,多文件修改是家常便饭,Sonic对多文件的热部署能力尤为突出,它可以通过依赖分析等手段来对多文件批量进行远程热部署,并且支持Spring Bean Class、普通Class、Spring...Agent),也就是专门为Java语言编写的插桩服务提供支持的代理。...1.5版本开始通过JVMTI实现的java.lang.instrument(Java Platform SE 8)的Premain方式,实现Agent方式的动态性(JVM启动时指定Agent)。...这里要提一下“大名鼎鼎”的Dcevm。...Dcevm(DynamicCode Evolution Virtual Machine)是Java Hostspot的补丁(严格上来说是修改),允许(并非无限制)在运行环境下修改加载的类文件。
理论上,Java对IPv6的支持对于程序员来说都是透明的,几乎不需要代码层面的处理。但它到底是怎么支持的?支持到什么程度?对JDK版本有什么要求?对操作系统有什么要求?...本文将用通俗易懂的文字,来讲解Java对IPv6的支持现状,包括关的技术原理、可以使用的API、以及一些可以运行的演示代码片段等,希望能让你更直观的了解Java对于IPv6的支持情况。...4、Java 对 IPv6 的支持 随着 IPv6 越来越受到业界的重视,Java 从 1.4 版开始支持 Linux 和 Solaris 平台上的 IPv6。...所幸的是:从 Java 1.5 开始,Java就增加了对 IPv6 网络地址校验的支持。...; 2)Java 对于 IPv6 网络地址的验证是通过对输入字符的循环匹配做到的,并没有采取正则表达式的做法。