PowerBI技巧之Java 10 新特性介绍
PowerBuilder 10.5 11新功能概述(PDF)

PowerBuilder Web Forms
提高性能的使用建议
尽量使用只读的 DataWindows 使用Master-detail DataWindow
Master DataWindow is readonly Script callback
尽量不使用 Timer事件 尽量不使用 Yield 方法 不要同时打开很多 response windows 使用 Web style
PowerBuilder 10.5/11 新功能概述
Harry Zhang Senior Software Engineer, Sybase Asia Development Center.
议程
PowerBuilder 10.5新功能 PowerBuilder 11.0新功能 展望PowerBuilder的发展 Q&A
支持
Sybase ASE Oracle MS SQL Server
DBI 重构
DBI(Database Interface)->DSI(DataSource Interface)
WEBSERVICES增强
进一步增强了 Web Services 支持
更好的数据类型支持(Document/Literal/…) 进一步提高了和 WebService的交互性
不常做的工作 可能完成
通过PB与.NET的互操作性来完成
PowerBuilder for .NET概述
使用PowerBuilder 开发 .NET应用程序
编译PowerBuilder代码成为.NET assemblies 全新的.NET系统运行时库 (Managed PB Runtime)
基于.NET API,使用C#和Managed C++重新实现了PB .NET运行 时库 增强语言特性, 系统类和系统函数 应用程序类型支持
PowerBI最新功能全讲解

PowerBI最新功能全讲解
一、自动机器学习
自动机器学习是Power BI的一项功能,它可以帮助用户从已有的数据中发现更深层次的见解,从多种不同的角度看待数据。
它可以帮助用户轻松识别复杂数据之间的关系,还能预测未来的变化趋势,从而提供更精准的决策支持。
二、数据门户
数据门户是Power BI的一个独特功能,它可以帮助用户在数据中进行自助式的查询与探索,支持多种数据源,可以让用户以更轻松、更有效的方式查看和探究他们的数据。
三、智能数据透视
智能数据透视是Power BI的一项原生功能,它可以帮助用户以统计方式快速探索数据,可以让用户快速准确找到他们需要的信息,从而更好地了解自己的数据情况。
四、AI预测
AI 预测是Power BI的新功能,它利用机器学习算法对历史数据进行分析,可以精准预测未来的走势,从而为决策提供更可靠的依据。
五、AR功能
AR 功能是Power BI的一项最新功能,它可以让用户在数据分析的过程中,可以通过增强现实技术实现虚拟与现实空间的交互。
PowerBI中的数据可视化和演示技巧

PowerBI中的数据可视化和演示技巧数据可视化和演示技巧在PowerBI中起着至关重要的作用。
PowerBI是一种强大的商业智能工具,可以帮助用户将各种数据转化为直观、易于理解的图表和仪表盘。
本文将介绍一些在PowerBI中应用的数据可视化和演示技巧,帮助您更好地展示数据和提升演示效果。
1.选择合适的图表类型在PowerBI中,有许多不同类型的图表可供选择,如柱状图、折线图、散点图等。
选择合适的图表类型对于准确传达数据信息至关重要。
例如,柱状图适用于比较不同类别的数据,折线图则可以显示数据的趋势变化。
了解每种图表类型的特点,并选择最适合您数据的类型。
2.使用颜色和字体搭配PowerBI提供了丰富的颜色和字体选项,可以用来强调关键数据或突出重点信息。
选择合适的颜色搭配可以使数据更加易于理解和记忆。
同时,字体的大小和风格也能影响观众对数据的感知。
在使用颜色和字体时,需要保持一致性并遵循简洁、清晰的原则。
3.利用过滤器和切片器PowerBI中的过滤器和切片器可以帮助用户根据特定需求筛选数据,并对其进行动态展示。
通过设置过滤器和切片器,可以根据所需的维度和指标对数据进行定制化显示,提高数据探索和解读的效率。
这样的交互式功能可以使数据分析更加灵活和直观。
4.添加交互式功能和动画PowerBI支持添加交互式功能和动画,以增强数据演示效果。
例如,您可以设置点击图表后显示详细信息,或者通过动画呈现数据的变化过程。
这些交互式功能和动画可以吸引观众的注意力,使演示更加生动有趣。
5.利用地理数据可视化如果您有与地理位置相关的数据,PowerBI提供了地图和地理信息可视化的功能。
通过将数据与地理信息结合,可以直观地展示地域间的差异和趋势。
例如,可以利用PowerBI的地图功能展示销售额在不同地区的分布情况,帮助决策者更好地了解市场格局。
6.创建动态仪表盘PowerBI的仪表盘功能可以将多个图表和数据源整合在一起,形成一个全面而直观的数据展示界面。
powerbi的模块一内容

powerbi的模块一内容Power BI是一款功能强大的商业智能工具,可以帮助用户将数据转化为有意义的信息和见解。
在Power BI中,模块一是介绍Power BI 的概述和基本概念。
本文将详细介绍Power BI的模块一内容,帮助读者了解Power BI的基本知识。
我们需要了解Power BI的定义和作用。
Power BI是一款由微软开发的商业智能工具,它可以帮助用户从各种数据源中提取数据,并将其可视化为易于理解的报表和仪表盘。
Power BI具有直观的用户界面和丰富的可视化选项,使用户能够轻松地分析和分享数据。
在Power BI中,数据源是非常重要的。
数据源可以是各种各样的,包括Excel表格、数据库、在线服务等。
Power BI支持多种数据源的连接,并提供了强大的数据转换和清洗功能,以确保数据的质量和准确性。
在Power BI中,数据模型是构建可视化报表和仪表盘的基础。
数据模型是一个包含表格和关系的结构,它可以帮助用户组织和处理数据。
用户可以使用Power BI的数据建模工具来创建和编辑数据模型,包括定义表格之间的关系、创建计算列和度量等。
一旦数据模型创建完成,用户就可以使用Power BI的可视化工具来创建报表和仪表盘。
Power BI提供了各种各样的可视化选项,包括柱状图、折线图、饼图等。
用户可以根据自己的需求选择合适的可视化方式,并对其进行自定义和格式化。
除了可视化工具,Power BI还提供了强大的数据分析功能。
用户可以使用Power BI的查询编辑器来进行数据转换和清洗,例如合并表格、拆分列等。
用户还可以使用DAX(数据分析表达式)语言来创建自定义计算列和度量,以满足特定的分析需求。
在Power BI中,数据的共享和发布是非常重要的。
用户可以使用Power BI的共享功能将报表和仪表盘分享给其他人,让他们可以查看和交互数据。
用户可以选择将报表和仪表盘发布到Power BI服务或Power BI桌面应用程序中,并设置权限和访问控制,以确保数据的安全性和机密性。
PowerBI与数据分析技巧掌握高级功能

PowerBI与数据分析技巧掌握高级功能随着大数据时代的到来,数据分析技能变得越来越重要。
而PowerBI作为一款领先的数据可视化和商业智能分析工具,为用户提供了丰富的功能和强大的数据分析能力。
掌握PowerBI的高级功能,将帮助我们更好地处理和分析数据,以取得更准确的洞察和提供更有价值的决策支持。
1. 数据预处理与清洗在进行数据分析之前,数据的预处理和清洗是必不可少的步骤。
PowerBI提供了一系列的数据预处理功能,如数据清洗、排序、去重、格式转换等。
在导入数据时,可以使用PowerQuery Editor对数据进行预处理,包括删除无效数据、填补缺失值、处理异常值等。
通过PowerBI的数据清洗功能,我们可以确保数据的准确性和完整性,为后续的数据分析奠定坚实的基础。
2. 数据建模与关系建立在数据分析中,数据建模是极其重要的一步。
PowerBI提供了强大的数据建模功能,可以对数据进行分类、分组和聚合,以便进行更深入的分析。
我们可以使用PowerBI Desktop中的模型视图,根据数据的关系建立表间的连接。
通过定义表间的关系,我们可以轻松进行多表联合查询、数据切片和透视分析,更好地理解数据之间的关系和趋势。
3. DAX公式的运用在PowerBI中,使用DAX(Data Analysis Expressions)公式语言可以对数据进行复杂的计算和分析。
DAX是一种高级函数语言,类似于Excel中的公式,但更为强大和灵活。
通过使用DAX公式,我们可以对数据进行统计、排序、过滤和计算等操作,以得出更精确、准确的分析结果。
同时,DAX也支持自定义指标和衍生变量的创建,在分析过程中提供更多的灵活性和自定义性。
4. 高级可视化与交互功能PowerBI提供了丰富多样的可视化图表和仪表盘功能,可以帮助我们更好地展现和传达数据的趋势和洞察。
除了基本的柱状图、饼图和折线图等,PowerBI还支持更高级的可视化图表,如瀑布图、漏斗图、热力图等,使得数据展示更具吸引力和说服力。
powerbuilder自学课件

二、 PowerBuilder的开发环境:
2. 工具条
PowerBar
PowerBuilder 10.0数据库应用开发教程
三、 PowerBuilder示例:
应用程序的开发流程:
在调研基础上做好需求分析。 根据需求文档进行系统设计。 编码、调试。 打包发布。
Pb中的操作流程:
建立工作区和应用对象--〉创建数据库--〉创建窗口 --〉创建菜单--〉创建数据窗口--〉编写脚本代码--〉 调试应用程序--〉打包发布。
1.新技术
Sybase公司的数据库应用程序开发工具。 工作区:可以同时操作多个对象。 提供开放式系统用于数据库连接,提供当前大多流行 关系数据库系统的支持,还可以提供同时访问多种数 据库的能力
•支持多字节编码 • XML Web DataWindow • 支持Microsoft .NET •支持 Microsoft Active Accessibility Interface
PowerBuilder 10.0数据库应用开发教程
第1章 PowerBuilder简介
重点内容:
• PowerBuilder 10概述及新特性
• Powe例
PowerBuilder 10.0数据库应用开发教程
一、PowerBuilder 10概述及新特性:
PowerBuilder 10.0数据库应用开发教程
要求:创建一个窗口,里面放一个按钮,点击时,弹 出“这是我的第一个PB程序”的对话框
PowerBuilder 10.0数据库应用开发教程
三、 PowerBuilder示例:
(1) 建立一个文件夹如PBFiles,用来存放即将生成的各种程序文件。(在开 发任何程序前,先建立一个专门的文件夹是一个好习惯) (2) 启动PowerBuilder应用程序。 (3) 选择File|New命令,弹出New对话框。 (4) 选择Workspace选项卡中的Workspace图标,然后单击OK按钮,弹出 New Workspace对话框。在该对话框中切换到文件夹PBFiles,在文件名处 输入文件名chapter1,并保存文件。 (5) 创建一个程序对象,将其命名为chapter1。 (6) 创建一个窗口对象,将其命名为w_main。 (7) 在窗口对象w_ main上添加一个按钮cb_ok (8) 双击按钮cb_ok,出现其Clicked()事件的脚本编辑区,即编写代码的地 方,在其中输入代码: messagebox("提示","我的第一个PB程序") 双击系统树中的应用对象chapter1,进入其Open()事件编辑区,在其中输入: open(w_ main)
PowerBI的自动化数据更新定时刷新和更新数据源

PowerBI的自动化数据更新定时刷新和更新数据源PowerBI是一款功能强大的商业智能工具,能够帮助用户以直观、易理解的方式展示和分析数据。
其中,自动化数据更新定时刷新和更新数据源成为了PowerBI的重要功能之一。
本文将探讨如何利用PowerBI实现自动化数据更新定时刷新和更新数据源的方法和技巧。
一、了解自动化数据更新定时刷新的概念与意义自动化数据更新定时刷新是指PowerBI在一定时间间隔内自动获取新的数据,并将其更新到数据模型中,使报表和可视化内容得以实时更新。
这对于需要及时了解业务数据的用户而言,具有重要意义。
二、设置定时刷新在PowerBI中,可以通过以下步骤设置数据更新的时间和频率:1. 打开PowerBI,选择“文件”菜单中的“选项和设置”,在弹出的菜单中选择“数据选项”。
2. 在“数据选项”对话框中,选择要进行定时刷新的数据源,并勾选“定期刷新”选项。
3. 在“定期刷新”选项下,设置刷新的时间和频率。
用户可以根据实际需求,选择每天、每周或每月的具体日期和时间进行刷新。
三、更新数据源除了自动化数据更新定时刷新,PowerBI还提供了手动更新数据源的功能。
下面是更新数据源的步骤:1. 在PowerBI的“主页”或“报表”界面中,选择需要更新数据源的报表。
2. 点击报表右上方的“刷新”按钮。
在弹出的菜单中,选择“刷新”选项。
3. PowerBI将会自动获取最新的数据,并将其更新到数据模型中。
四、选择合适的数据更新方式在更新数据源方面,PowerBI提供了多种数据更新方式,用户可以根据实际情况选择合适的方式:1. 网络数据源更新:当数据源位于网络上时,可以选择使用PowerBI提供的网页、数据库等数据源连接方式进行数据更新。
2. 文件数据源更新:当数据源为本地文件时,可以将其导入到PowerBI中并进行数据更新。
用户可以选择更新整个文件或者更新文件中的特定表或查询。
3. 云数据源更新:PowerBI还提供了与流行的云服务(如Azure、Salesforce等)连接的方式,可以实现对云数据源的自动数据更新。
PowerBI中的数据可视化最佳实践与技巧

PowerBI中的数据可视化最佳实践与技巧数据可视化是现代商业环境中数据分析的重要组成部分,而PowerBI作为一款领先的商业智能工具,提供了丰富的数据可视化功能。
本文将介绍PowerBI中的数据可视化最佳实践与技巧,帮助读者最大化利用PowerBI的功能,提升数据分析和决策的效果。
一、选择合适的可视化图表类型在PowerBI中,有多种可视化图表类型可供选择,如柱状图、折线图、饼图等。
选择合适的图表类型对于有效传达数据信息至关重要。
例如,当要比较不同类别或时间段的数据时,柱状图和折线图可能更适合;当要显示百分比或占比等比例关系时,饼图可能更适合。
合理选择图表类型可提高数据可读性和易理解性。
二、精简并突出重点在进行数据可视化时,必须不断考虑目标受众的需求和注意力焦点。
避免将太多信息堆积在一个图表中,以免混淆读者的关注点。
选择三个及以下的主要指标进行可视化,并将其突出展示,可以更好地传达数据的关键信息。
三、合理运用颜色和图表样式PowerBI提供了丰富的颜色主题和样式选项,可用于使可视化更具吸引力和可读性。
在运用颜色时需注意以下几点:1. 使用不同的颜色来表示不同类别或群组,提高区分度;2. 避免使用过于亮眼或刺眼的颜色,以免影响阅读体验;3. 根据背景色进行调整,确保图表在不同背景下都能清晰可见。
四、适当选择过滤器和交互式控件利用PowerBI的过滤器和交互式控件功能,可以增加数据探索的灵活性和互动性。
读者可以根据需要自定义数据筛选,从而更好地理解数据背后的故事。
在应用过滤器时需注意:1. 选择合适的过滤器类型,如文本过滤器、下拉菜单等;2. 避免过多的过滤器选项,以免造成操作繁琐;3. 提供明确的交互指引,使读者能够顺利使用过滤功能。
五、利用动画和动态效果PowerBI的动画和动态效果功能可提高可视化的吸引力和视觉效果。
动画效果可以帮助数据之间的关系更加清晰,增加视觉冲击力。
但需注意不要过度使用动画,以免分散用户的注意力和降低用户体验。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作为当今使用最广泛的编程语言之一的 Java 在 2018 年 3 月 21 日发布了第十个大版本。
为了更快地迭代、更好地跟进社区反馈,Java 语言版本发布周期调整为每隔 6 个月发布一次。
Java 10 是这一新规则之后,采用新发布周期的第一个大版本。
Java 10 版本带来了很多新特性,其中最备受广大开发者关注的莫过于局部变量类型推断。
除此之外,还有其他包括垃圾收集器改善、GC 改进、性能提升、线程管控等一批新特性。
本文主要针对Java 10 中的新特性展开介绍,希望读者能从本文的介绍中快速了解 Java 10 带来的变化。
局部变量类型推断局部变量类型推断是 Java 10 中最值得开发人员注意的新特性,这是 Java 语言开发人员为了简化 Java 应用程序的编写而进行的又一重要改进。
这一新功能将为 Java 增加一些新语法,允许开发人员省略通常不必要的局部变量类型初始化声明。
新的语法将减少 Java 代码的冗长度,同时保持对静态类型安全性的承诺。
局部变量类型推断主要是向 Java 语法中引入在其他语言(比如 C#、JavaScript)中很常见的保留类型名称var。
但需要特别注意的是:var不是一个关键字,而是一个保留字。
只要编译器可以推断此种类型,开发人员不再需要专门声明一个局部变量的类型,也就是可以随意定义变量而不必指定变量的类型。
这种改进对于链式表达式来说,也会很方便。
以下是一个简单的例子:清单 1. 局部变量类型推断示例1. var list = new ArrayList<String>(); // ArrayList<String>2. var stream = list.stream(); // Stream<String>看着是不是有点 JS 的感觉?有没有感觉越来越像 JS 了?虽然变量类型的推断在 Java 中不是一个崭新的概念,但在局部变量中确是很大的一个改进。
说到变量类型推断,从 Java 5 中引进泛型,到 Java 7 的<>操作符允许不绑定类型而初始化 List,再到 Java 8 中的 Lambda 表达式,再到现在 Java 10 中引入的局部变量类型推断,Java 类型推断正大刀阔斧地向前进步、发展。
而上面这段例子,在以前版本的 Java 语法中初始化列表的写法为:清单 2. Java 类型初始化示例List<String> list = new ArrayList<String>();Stream<String> stream = getStream();在运算符允许在没有绑定ArrayList <>的类型的情况下初始化列表的写法为:清单 3. Java 7 之后版本类型初始化示例List<String> list = new LinkedList<>();Stream<String> stream = getStream();但这种 var 变量类型推断的使用也有局限性,仅局限于具有初始化器的局部变量、增强型 for 循环中的索引变量以及在传统 for 循环中声明的局部变量,而不能用于推断方法的参数类型,不能用于构造函数参数类型推断,不能用于推断方法返回类型,也不能用于字段类型推断,同时还不能用于捕获表达式(或任何其他类型的变量声明)。
不过对于开发者而言,变量类型显式声明会提供更加全面的程序语言信息,对于理解和维护代码有很大的帮助。
Java 10 中新引入的局部变量类型推断能够帮助我们快速编写更加简洁的代码,但是局部变量类型推断的保留字var的使用势必会引起变量类型可视化缺失,并不是任何时候使用 var 都能容易、清晰的分辨出变量的类型。
一旦var被广泛运用,开发者在没有 IDE 的支持下阅读代码,势必会对理解程序的执行流程带来一定的困难。
所以还是建议尽量显式定义变量类型,在保持代码简洁的同时,也需要兼顾程序的易读性、可维护性。
整合 JDK 代码仓库为了简化开发流程,Java 10 中会将多个代码库合并到一个代码仓库中。
在已发布的 Java 版本中,JDK 的整套代码根据不同功能已被分别存储在多个 Mercurial 存储库,这八个Mercurial 存储库分别是:root、corba、hotspot、jaxp、jaxws、jdk、langtools、nashorn。
虽然以上八个存储库之间相互独立以保持各组件代码清晰分离,但同时管理这些存储库存在许多缺点,并且无法进行相关联源代码的管理操作。
其中最重要的一点是,涉及多个存储库的变更集无法进行原子提交(atomic commit)。
例如,如果一个 bug 修复时需要对独立存储两个不同代码库的代码进行更改,那么必须创建两个提交:每个存储库中各一个。
这种不连续性很容易降低项目和源代码管理工具的可跟踪性和加大复杂性。
特别是,不可能跨越相互依赖的变更集的存储库执行原子提交这种多次跨仓库的变化是常见现象。
为了解决这个问题,JDK 10 中将所有现有存储库合并到一个 Mercurial 存储库中。
这种合并的一个次生效应是,单一的 Mercurial 存储库比现有的八个存储库要更容易地被镜像(作为一个 Git 存储库),并且使得跨越相互依赖的变更集的存储库运行原子提交成为可能,从而简化开发和管理过程。
虽然在整合过程中,外部开发人员有一些阻力,但是 JDK 开发团队已经使这一更改成为 JDK 10 的一部分。
统一的垃圾回收接口在当前的 Java 结构中,组成垃圾回收器(GC)实现的组件分散在代码库的各个部分。
尽管这些惯例对于使用GC 计划的 JDK 开发者来说比较熟悉,但对新的开发人员来说,对于在哪里查找特定 GC 的源代码,或者实现一个新的垃圾收集器常常会感到困惑。
更重要的是,随着 Java modules 的出现,我们希望在构建过程中排除不需要的 GC,但是当前 GC 接口的横向结构会给排除、定位问题带来困难。
为解决此问题,需要整合并清理 GC 接口,以便更容易地实现新的 GC,并更好地维护现有的 GC。
Java 10中,hotspot/gc 代码实现方面,引入一个干净的 GC 接口,改进不同 GC 源代码的隔离性,多个 GC 之间共享的实现细节代码应该存在于辅助类中。
这种方式提供了足够的灵活性来实现全新 GC 接口,同时允许以混合搭配方式重复使用现有代码,并且能够保持代码更加干净、整洁,便于排查收集器问题。
并行全垃圾回收器 G1大家如果接触过 Java 性能调优工作,应该会知道,调优的最终目标是通过参数设置来达到快速、低延时的内存垃圾回收以提高应用吞吐量,尽可能的避免因内存回收不及时而触发的完整 GC(Full GC 会带来应用出现卡顿)。
G1 垃圾回收器是 Java 9 中 Hotspot 的默认垃圾回收器,是以一种低延时的垃圾回收器来设计的,旨在避免进行 Full GC,但是当并发收集无法快速回收内存时,会触发垃圾回收器回退进行 Full GC。
之前 Java 版本中的G1 垃圾回收器执行 GC 时采用的是基于单线程标记扫描压缩算法(mark-sweep-compact)。
为了最大限度地减少 Full GC 造成的应用停顿的影响,Java 10 中将为 G1 引入多线程并行 GC,同时会使用与年轻代回收和混合回收相同的并行工作线程数量,从而减少了 Full GC 的发生,以带来更好的性能提升、更大的吞吐量。
Java 10 中将采用并行化 mark-sweep-compact 算法,并使用与年轻代回收和混合回收相同数量的线程。
具体并行 GC 线程数量可以通过:-XX:ParallelGCThreads参数来调节,但这也会影响用于年轻代和混合收集的工作线程数。
应用程序类数据共享在 Java 5 中就已经引入了类数据共享机制 (Class Data Sharing,简称 CDS),允许将一组类预处理为共享归档文件,以便在运行时能够进行内存映射以减少 Java 程序的启动时间,当多个 Java 虚拟机(JVM)共享相同的归档文件时,还可以减少动态内存的占用量,同时减少多个虚拟机在同一个物理或虚拟的机器上运行时的资源占用。
简单来说,Java 安装程序会把rt.jar中的核心类提前转化成内部表示,转储到一个共享存档(shared archive)中。
多个 Java 进程(或者说 JVM 实例)可以共享这部分数据。
为改善启动和占用空间,Java 10 在现有的 CDS 功能基础上再次拓展,以允许应用类放置在共享存档中。
CDS 特性在原来的 bootstrap 类基础之上,扩展加入了应用类的 CDS (Application Class-Data Sharing) 支持。
其原理为:在启动时记录加载类的过程,写入到文本文件中,再次启动时直接读取此启动文本并加载。
设想如果应用环境没有大的变化,启动速度就会得到提升。
可以想像为类似于操作系统的休眠过程,合上电脑时把当前应用环境写入磁盘,再次使用时就可以快速恢复环境。
对大型企业应用程序的内存使用情况的分析表明,此类应用程序通常会将数以万计的类加载到应用程序类加载器中,如果能够将 AppCDS 应用于这些应用,将为每个 JVM 进程节省数十乃至数百兆字节的内存。
另外对于云平台上的微服务分析表明,许多服务器在启动时会加载数千个应用程序类,AppCDS 可以让这些服务快速启动并改善整个系统响应时间。
线程-局部管控在已有的 Java 版本中,JVM 线程只能全部启用或者停止,没法做到对单独某个线程的操作。
为了能够对单独的某个线程进行操作,Java 10 中线程管控引入 JVM 安全点的概念,将允许在不运行全局 JVM 安全点的情况下实现线程回调,由线程本身或者 JVM 线程来执行,同时保持线程处于阻塞状态,这种方式使得停止单个线程变成可能,而不是只能启用或停止所有线程。
通过这种方式显著地提高了现有 JVM 功能的性能开销,并且改变了到达 JVM 全局安全点的现有时间语义。
增加的参数为:-XX:ThreadLocalHandshakes (默认为开启),将允许用户在支持的平台上选择安全点。
移除 Native-Header 自动生成工具自 Java 9 以来便开始了一些对 JDK 的调整,用户每次调用 javah 工具时会被警告该工具在未来的版本中将会执行的删除操作。
当编译 JNI 代码时,已不再需要单独的 Native-Header 工具来生成头文件,因为这可以通过Java 8(JDK-7150368)中添加的javac来完成。