未找到

未发布 Oracle正式发布Java 9,引入新的Java编程组件
by Harriet666 keys 分享 1506566182619
Java SE 9.0于2017年9月21日发布。JDK 9的核心变化就是引入了一种新的Java编程组件,也就是模块,按照Oracle的说法,它是一个可命名的、自描述的代码和数据集合。模块技术的核心目标是减少Java应用和Java核心运行时环境的大小与复杂性。为此,JDK本身进行了模块化,Oracle希望通过这种方式提升性能、安全性和可维护性。

为了支持Java 9的模块,引入一种新的模块化JAR文件形式,按照这种形式会在其根目录中包含一个module-info.class文件。Oracle同时提供了工具,允许我们组合和优化一组模块,形成自定义的运行时镜像(image),这样的镜像不必将整个Java运行时包含进来。模块化所带来的其他变化包括从Java运行时镜像中移除了rt.jar和tools.jar。
Java社区进程(JCP)执行委员会的成员Ben Evans认为最急需重构的应用恰好就是最适合进行模块化的应用。如果你已经备受Lava Flow/God Class/Stovepipe System地狱的折磨,而且你的利益相关方明确知道这一点,那么你可能更容易说服他们进行一次完整的底层重构,通过渐进式的努力形成一个完成的模块解决方案(而不是简单重构并迁移至Java 8)是值得去做的。

Oracle宣布Java 8会是一个长期支持的发布版本,会一直支持到2022年,因此Evans认为很多的应用将会停留在Java 8上,根本不会升级到Java 9。Evans补充说,有些应用可能会让开发和构建工具链使用Java 8版本,而在生产环境使用Java 9的运行时。
对特定类型的应用来说,这是很有帮助的。例如,我曾经见到有的电子商务网站具有非常大的堆空间,其中包含了大约40G的字符串数据。Java 9的ompact Strings技术能够将这种类型的内存使用减半。这反过来又会对GC的性能带来积极的影响。对于有些应用来说(这可能就包括大型的Solr安装环境及类似场景),单单这一项收益就值得将运行时升级到Java 9。

Java 9使用G1作为默认的垃圾收集器,替代了之前默认使用的Parallel GC。Evans对这项变化的评论:
这项变更是很重要的,因为相对于Parallel来说,G1会在应用线程上做更多的事情,而Parallel几乎没有在应用线程上做任何事情,它基本上完全依赖GC线程完成所有的内存管理。这意味着切换到G1将会为应用线程带来额外的工作,从而直接影响到应用的性能。


在很多(甚至可以说大多数)场景中,这种额外的性能损耗都不是什么问题。但是,在这方面,我确实也曾经见过从Parallel切换到G1时,有一定比例的工作负载会引起性能的下降。对于这些应用来说,这种性能下降是无法接受的,所以他们无法切换至G1收集器。随着G1成为默认的收集器,这将会影响到升级至Java 9的每个应用。

JClarity的CEO Martijn Verburg认为大型的代码库需要重构为模块的形式。Verburg给出了一些通用的模块化建议,并且指出了开发人员在采用Java 9模块系统时,需要注意的一些事情:
  • 阅读Paul和Sander的图书“Java 9 modularity”:它是本权威指南,提到了所有需要注意的地方,阐述了模块、包以及JAR之间如何运行的关联关系; 
  • 在模块边界的地方,使用定义良好的接口并且针对这些接口编程; 
  • 不要拆分包(split package),也就是说一个包不要分散到两个模块中。Adopt OpenJDK有个探测工具,我们可以用它来探测已有的代码; 
  • 确保不要存在循环依赖(Jigsaw不允许这样); 
  • 模块在源码的布局上与我们已习惯的方式有所不同,需要确保构建工具能够进行对应的处理; 
  • Jigsaw不支持多版本。
 
按照Verburg的说法,核心要点在于处理循环依赖、拆分包的问题,并确保针对接口进行编码。在尝试使用Jigsaw模块化重构之前,针对已有的代码库,这些工作需要预先完成。他还澄清了一个误解,那就是只有模块化的应用才能在Java 9上运行。

由于误解,在这方面有一种FUD(恐惧、不确定和怀疑)情绪,有人误认为在Java 9上运行的必须是模块化的应用。事实并非如此,我们可以将已有的基于类路径的应用直接在Java 9上运行。这里会有一些新的安全限制,因此我们需要设置一些特定的运行时标记(除非你重构代码,使用更安全的方式来访问Java的内部资源),即便如此,默认的行为也只是警告,而不是完全阻止我们(Java 10的限制会更严格)。

Verburg认为Jigsaw会是一个基石,会让Java的演进更快,这要归功于Mark Reinhold、Alan Bateman、Mandy Chung以及Jigsaw团队的其他成员多年来不知疲倦的工作,正是他们的努力使这一切得以实现。

Java 9还引入了jshell工具。这个命令行环境为Java平台带来了读入-求值-打印-循环(Read-Eval-Print-Loop,REPL)功能。它的目的在于以即时结果和反馈的形式,简化原型的实现并帮助我们探索语言在编码时的可选项。

Verburg和Evans看到Java 9中包含了jShell都非常兴奋,但令他们失望的是,HTTP/2只是作为Java 9的一个孵化模块(incubator module)提供的。鉴于社区对这项特性的兴趣和提供的帮助,Evans认为Oracle应该投入足够的工程资源,将HTTP/2交付为GA版本。

JDK 9完整的变更列表可以在Oracle的站点上查阅。Oracle宣布会按照每六个月一次的节奏进行发布,意味着Java 9是最后一次“keystone”特性驱动的版本发布,这反映出了Oracle目前管理Java的特点。Java下一阶段的演化将会按照更短的发布周期并且会按照更加面向特性的方式来发布。Java是否依然能够在服务端技术中占据领导者地位尚有待观察。
更多资讯点击查看>>>



未发布 使用MyEclipse开发Java EE应用:用XDoclet创建EJB 2 Session Bean项目(二)
by AABBbaby keys 分享 1503283779783

MyEclipse限时秒杀!活动火热开启中>>

MyEclipse最新版下载

二、创建一个Session EJB – Part 1

MyEclipse中的EJB 2.x开发使用了EJB向导和集成XDoclet支持的组合。 每个EJB由三个基本部分组成:

  • EJB Remote接口类声明业务操作对客户端可用
  • EJB实现类,也称为bean类,其中包含业务逻辑
  • EJB Home界面类,它控制bean的生命周期
未发布 用户界面框架jQuery EasyUI示例大全之Panel
by AABBbaby keys 分享 1450663021476

<jQuery EasyUI最新试用版免费下载>

jQuery EasyUI致力于帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。jQuery EasyUI提供了基于当下流行的jQuery core和HTML5的控件,助您打造适合当今网络的应用程序。

未发布 iOS VS Android ,10年之战,谁是最后赢家?
by zoujiajun33 keys 分享 1497434239652
苹果公司刚刚为 iPhone 发布了 iOS 11,而 Google 几周前也更新了 Android O。这两种系统几乎支持全球所有手机,那么,谁才是现阶段的赢家?
https://www.evget.com/article/2017/6/14/26418.html

未发布 12个优秀JavaScript库帮助你创建超酷滚动效果
by AABBbaby keys 分享 1457405133377
在本文中,小编为大家收集了一些用于创建酷炫滚动效应的优秀JavaScript库。动画和特效能够帮助网站变得更有活力和感染力,而这些非常棒的JavaScript库则能帮助您创建这样的网站。
未发布 WeMall微商城系统签到插件Sign的主要源码
by wemallshop keys 分享 1476157463434
WeMall微信商城源码签到插件Sign,用于商城的签到系统,分享了部分比较重要的代码,供技术员学习参考
未发布 一体化建模仿真平台20-sim v4.6.4发布,修复3D动画
by Harriet666 keys 分享 1503567227661
20-sim是一种机电一体化系统的建模和仿真程序。利用20-sim可以像绘制工程方案一样灵活地的键入模型。这些模型能用于仿真和分析多域动态系统的特性,也可以创建控制系统,甚至可以生成C代码并用于快速原型设计和HIL仿真。

【20-sim v4.6最新版点击下载】

一体化建模仿真平台20-sim v4.6.4发布。此版本是一个维护版本,主要修复了以下问题:
3D动画修复:
  • 点角度范围问题。
代码生成修复:
  • 如果子模型采用输入的积分,则直接映射到R(ate) - 变量。
  • FMU中的初始方程不能影响初始状态。
  • 在FMI 1.0主模拟器中运行FMU时发生崩溃。
文档修复:
  • 参考手册:关于'while do'和'reapeat until'的声明不清楚。
  • 参考手册:3D动画窗口中的欧拉角定向(ZXZ而不是XYZ)。
模拟器修复:
  • 在模拟期间关闭20-sim时不保存模型。
  • 编写多个运行结果的数据文件时出现问题(参数扫描)。
  • 未命名节点可以为连续时间块而不是相应的离散块生成指令的问题。
未发布 你值得拥有的8个实用Chrome新标签扩展
by AABBbaby keys 分享 1441676722632
Google Chrome是一个非常受欢迎的Web浏览器,由于其速度快并且简单,因此它也成为了最为常用的Web浏览器。很多开发人员和设计人员更倾向于使用Google Chrome的一个重要原因就是它的扩展,这也是Google Chrome非常强大的原因之一。因此,今天我们为大家收集了12个极佳的Chrome新标签扩展。有了这些扩展,你可以更有调理的同时处理多个标签!
未发布 VintaSoft PDF插件VintaSoftPDF.NET Plug-in更新至v5.4,创建PDF可视化工具
by Harriet666 keys 分享 1491816822873
VintaSoftPDF.NET Plug-in是一个完全的.NET组件,可用于查看,创建以及编辑PDF文档。该程序库还可用于显示,渲染,创建,转化,注释,打印,保存,修改和编辑PDF文档页面。
【最新VintaSoftPDF.NET Plug-in点击下载】

VintaSoftPDF.NET Plug-in v5.4更新内容:


与PDF文档的视觉交互:
  • 创建了一个可视化工具 - PdfAnnotationTool,允许与PDF注释和PDF文档的交互式表单区域进行交互。可视化工具:
    • 在查看模式下,可以查看PDF注释并填写PDF交互式表单的区域。
    • 在标记模式下,允许编辑PDF标记注释并填写PDF交互式表单的区域。
    • 在编辑模式下允许:
      • 调整大小并重新定位PDF注释和交互式区域。
      • 修改PDF评论和交互式区域的外观。
      • 创建/删除/复制/粘贴PDF注释和交互式区域。
      • 立即选择几个PDF评论和交互式区域。
    • 允许将操作分配给PDF注释和交互式字段的触发器。
    • 允许在字段上方显示交互式区域的名称。
    • 允许突出显示可以填写的交互式区域。
    • 仅允许突出显示必须填写的交互式区域。
    • 允许在编辑模式下突出显示PDF注释和交互式区域。
    • 支持执行以下操作:JavaScript、隐藏注释、Goto、启动、命名、URI、导入表单数据、重置表单、提交表单。
    • 允许配置互动区域的视觉外观:颜色、透明度、大小、区域大小。
  • 增加了使用JavaScript注释器和支持执行JavaScript操作的能力。
  • 支持以下可视化工具用户界面(复制、剪切、粘贴、删除、全选)的常见操作:PdfAnnotationTool、PdfContentEditorTool、PdfTextSelectionTool、PdfImageExtractionTool、PdfRemoveContentool。
使用PDF注释:
  • 创建通用PDF注释的外观生成器。
使用PDF交互式区域:
  • 增加了从XFDF格式导入交互式表单的值的功能。
  • 增加了将交互式表单的值导出为XFDF格式的功能。
打印PDF文件:
  • 在WinForms中打印PDF文档时,增加了整体打印性能并减少了内存使用,这是因为新的PdfPrintDocument类是以矢量形
    式来打印PDF文档。
使用PDF文档的字体:
  • 创建通用PDF注释的外观生成器。
  • 使用PDF交互式区域:
  • 增加了从XFDF格式导入交互式表单的值的功能。
  • 增加了将交互式表单的值导出为XFDF格式的功能。
  • 打印PDF文件:
  • 在WinForms中打印PDF文档时,增加了整体打印性能并减少了内存使用,这是因为新的PdfPrintDocument类是以矢量形
    式来打印PDF文档。
  • 使用PDF文档的字体:
  • 增加了对可变代码长度的复合字体的支持。
  • 增加了对复合字体的预定义CMap编码的支持。
  • 增加了对TrueType字体集(.ttc文件)的支持。
  • 增加了创建基于Type1程序的字体子集的功能。
  • 使用改进和简化的字体搜索和替换算法创建了一个新版本的FontProgramsController-s。
  • 增加了将程序替换为14种标准字体的功能。
  • 增加了打包Type1和Type3字体的功能。
  • 增加了基于TTC程序嵌入和打包字体的功能。
  • 增加了对基于Type1和CFF程序的Type3字体模糊文字的功能。
  • 增加了查看进度并获取有关字体混淆、字体打包、内容删除的详细信息的功能。
  • 修复了Type1字体解析器中的一些错误。
  • 修复CFF字体解析器中的一些错误。
渲染PDF文档:
  • 增加了垂直对齐文本的渲染支持。
  • 增加了使用PdfContentRenderer类来控制PDF注释绘图的功能。
  • 支持使用PDF文档的渲染设置对PDF注释进行扩展管理。
使用PDF文档的ow-level tree:
  • 增加了查看和更改PDF文档基础对象树的功能。
  • 增加了将用户数据存储在PDF文档的任何节点中的功能。
演示应用:
  • PdfEditorDemo已经完全修改:
    • 添加了独立面板:
      • 文本选择、文本提取和文本搜索
      • 填写PDF文档的交互式表单区域
      • 注释PDF文件
      • 创建PDF文档的交互式表单区域
      • 从PDF页面提取图像
      • 将图形添加到PDF页面
      • 从PDF页面中删除内容。
    • 增加了注释PDF文档的功能。
    • 增加了填写PDF文档的交互式区域的功能。
    • 增加了使用交互式表单创建PDF文档的功能。
    • 增加了以XFDF格式导出/导入PDF交互式表单的功能。
    • 增加了将交互式表单域导出为PDF格式的功能。
    • 增加了将任何动作分配给PDF注释和交互式区域的任何触发器的功能。
    • 增加了为PDF事件处理程序分配任何操作的功能。
    • 增加了触发所有支持的PDF操作(包括JavaScript操作)的功能。
    • 增加了在激活时反转(超级)链接区域的功能。也可以配置自定义效果。
    • 增加了测试和调试JavaScript代码的功能。
    • 增加了在PDF页面上刻录矢量PDF注释的功能。
  • PdfReaderDemo已经完全修改:
    • 增加了独立面板:
      • 文本选择、文本提取和文本搜索
      • 填写PDF文档的交互式表单域
      • 从PDF页面提取图像。
    • 增加了填写PDF文档的交互式区域的功能。
  • 增加了在PdfStructureEditorDemo中查看PDF文档的low-level tree的功能。
  • 增加了一个演示了如何在PdfReportGeneratorDemo中创建和执行PDF操作的示例。
进行了许多主要和次要的修复。
未发布 Electron在npm/yarn安装问题:1Electron failed to install correctly 2path.txt无法找到 3 electron-v19.0.8-win32-x64无法下载等问题
by newghost keys Node.JS 1657348971386

 近期热门 - 点击最多
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Node.js 打印vite react+go项目目录树
  3. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  4. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  5. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  6. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  7. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  8. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  9. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  10. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法

  全端社区 - 最新回复
  1. 在无管理员权限的情况下,使用安装Python补全 pip临时配置环境变量
  2. Python鉴权方法:Depends 依赖注入;装饰器;与基于Proxy模式的Session状态管理自动计算脏属性;将用户数据存储在Redis中
  3. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  4. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  5. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  6. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  7. Node.js 打印vite react+go项目目录树
  8. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  9. Windows与Mac通过git ssh和rsync实现文件共享互传
  10. Windows与Mac通过git ssh和scp实现文件共享互传

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA