共有 5 人关注 标签:Java,共有 66 篇文章

...
最新的Java 9进度表从一开始就面临风险 【已翻译】

在达到功能扩展的审批过程后, Oracle确认将在2017年的7月份发布Java9的稳定版. 这个日期跟InfoQ上之前的预测很接近, 虽然种种原因表明可能存在风险: 而我们的估计是一个功能扩展期为三个月, 实际的周期持续7个月, 这可能会削减测试工作来弥补时间差额. 早期,非正式的测试可能会对这个有所补偿。 在 InfoQ的最后分析的时间,对于功能的扩展已经批准了新的日期是9月1日,这一延...

计算机/ @zhongzhong, @班纳睿, @guyue
...
在收购 Sun 的六年后,Oracle 终于瞄准了 Java 的非付费用户 【已翻译】

你还在认为 Java 是免费的吗?再想想!(2017年你会欠我们很多钱) 在收购了 Sun 公司的六年后,Oracle 正在大规模的加大对违反其许可证的 Java 客户的审查力度。 越来越多的 Oracle 客户和合作伙伴被拉里·埃里森的团队约谈,称他们没有遵守 Java 的规矩。 Oracle 在 2010 年 收购了 Sun Microsystems 公司 ,知情人士透露现在它的许可证管...

计算机/ @CY2
...
Java 模块化系统中反射和封装的对比 【已翻译】

过去,反射功能可以破坏任何运行在同一JVM中的代码的封装。随着Java 9的来临,这一现状将被改变。新模块化系统有两个主要目标,其中之一就是强封装,给各个模块一个安全的,无法入侵的运行空间。这两种技术是如此的的水火难容,那么如何解决这个问题呢?经过相当多的讨论之后,最近提出的开放化模块系统也许会是一个方向。 如果你已经全部了解的模块化系统的概念和反射的功能,那么你可以直接跳过后面的故事,直接...

计算机/ @R e;, @、默迹, @班纳睿, @CY2, @toypipi
...
Java Community Process (JCP)社区--继续前行 【50%】

Java已经二十多岁了,依然被评为地球上最受欢迎的编程语言之一。使得Java这么受开发者青睐的一部分原因是它的特性以一种可控的方式在演化,而这种方式很少会对它的向后兼容性有影响。Java演进的历史有点与众不同, 特别是相比较开源来说。在这篇文章里,我们来看看Java平台是如何标准化的,同时又维持着通过JCP网站的社区参与。我们也会看到这个过程中所遇到的并且还存在的一些挑战。

计算机/ @班纳睿
...
编写无 Bug Java 代码的 5 个最佳实践 【已翻译】

Java编程语言的热门程度可以从其使用范围推测出来,它被广泛用于开发各种功能的应用或代码,比如Web应用以及Android应用等。 在编写代码时,开发人员都在努力编写具有最低复杂度和最多功能的无Bug代码。无论你是源码初学者还是专家,如果要想为你的客户编写最好的代码,有一些规则你应该始终遵循。下面是无Bug代码的一些编写规则。

计算机/ @tangmisi, @苏州小浮云
...
深入Java 9-性能、编译器以及其它 【已翻译】

Java 9在模块化之外提供了许多新功能:新的语言特性,众多新的改进过的API,GNU风格的命令行参数,多版本JAR包,优化的日志机制等等。让我们来看看这个“等等”,看看性能方面的提升。多亏了字符串技术,编译器,垃圾回收技术以及JavaDoc。 作者其他的文章 深入Java 9 - 版本号命名规则,多版本JAR包等等 JUnit 5 现状 性能改进 随着版本的更新,Java的性能变得越来越好...

计算机/ @dahakawang, @KeYIKeYI
...
深入 Java 9 内部——版本架构,多版本 jar 包及其他 【已翻译】

两个月前我着带你 深入Java 9 ,看着新的语言特性和API。但是有很多事情导致我不得不离开,所以分两部分来完成它。在第一部分我们会看新版本字符串和命令行语法,多版本的JARs,改进的日志和更多其他。 JShell 在第一部分我们跳过Jigsaw不讲,因为已经有许多人在讨论这个话题。在这部分,我们将对JShell做些类似的事情,这是java全新的REPL。(如:是一个地方输入java代码,...

计算机/ @tony, @一叶障目
...
使用交替接口曝光的安全类 Java 映射构造器 【已翻译】

动态暴露你的类 我记得当我还是Java新手时,我就在思考应该有方法可以去除或者隐藏我的类中不想暴露的方法.像用重写方法或者类似那样的某种方式(由于某种原因这不可能也不应该是可能的).显然,时至今日我们都知道我们可以改为通过暴露来达到同样目的. 通过使用名叫交替接口暴露的方案,我们可以动态并且类型安全的去查看一个类的方法,这样,同一个类可以强制它应该使用的规范.  

计算机/ @KeYIKeYI, @toypipi, @Aileen
...
Java方法引用是如何计算值的 【已翻译】

除了 lambda 表达式,Java SE 8 引入了方法引用作为简写符号。 这些主要用于引用静态方法(例如 Double :: toString)或构造函数(egString [] :: new),这些用法是直接的。 然而,对实例方法的方法引用会以令人惊讶的方式产生与lambda表达式不同的结果。 这是因为方法引用的调用目标(在 :: 之前的部分)在首次遇到它的声明时被求值,而 lambd...

计算机/ @abel533, @拥抱阳光の雪, @KeYIKeYI
...
2016 年 7 个最佳的 Java 框架 【已翻译】

在最近的一段时间内,Java毫无疑问是世界上需求最大的编程语言之一。在这里,我们收集了一些比较流行的框架,以方便广大软件开发者的日常所需。 作为在线Java用户组(Virtual JUG)的媒体联盟,RebelLabs进行的一项调查显示,2016年最佳的Java框架列表如下: 图片来源: RebelLabs for Zero TurnAround Inc. 我们当然不想让您仅仅根据上面的对比...

计算机/ @拥抱阳光の雪, @luoluojuzi
...
现代Java风格的元素 【已翻译】

代码风格及其作用 编译器和解释器需要符合编程语言语法的正确语句,而人需要更多的信息来理解冰冷的机器指令。代码风格正好提供了这样的信息,它包括基本的文本格式、缩进以及短小的方法等。 风格同样适用于代表着最佳实践的设计模式,比如构建方法链、异常处理和同步等。具有良好风格的代码易于阅读,那感觉就像在阅读写得漂亮的散文一样。而易于阅读的代码意味着易于理解,意味着健壮,意味着更少错误,意味着开发者们的...

计算机/ @一叶障目, @toypipi, @城府很深, @Orange
...
Java 的12要素及其他因素 【已翻译】

对于许多人来说,“原生云”和“应用程序的12要素”是同义词。本文的目的是为了说明,对于原生云,除了坚持基本的12大要素外,还有一些其他的因素。在大多数情况下,Java 能胜任这一任务。在本文中,我们将对其概念和代码示例进行研究,看看在标准的12个要素以外,还存在哪些因素, 正如Kevin Hoffmann 最近在 O’Reilly 出版的书上提到了超越 12 个因素的应用。 1. 单个代码库...

计算机/ @一叶障目, @learner, @toypipi
...
下一代IOS和安卓应用程序应该使用Java来编写的八大理由 【已翻译】

作为企业的主要编程语言,Java一直以来都表现得十分稳定,但我们应该怎么来衡量java最近的增长呢?Oracle在Java 8中引入Lambda表达式和Streams对编程者来说具有很大的吸引力,这是一个原因。Java作为增长最快的移动平台的通用语言是另一个重要的驱动力。随着Android最近对OpenJDK 展开的策略以及Java 9 的即将发行,我们预测Java的相关性将继续增强。 生态...

计算机/ @fourAF
...
JavaOne 2016 —— 观众得以一睹 JShell 的威力 【已翻译】

在 JavaOne 2016 主题演讲中,Java 平台组的首席架构师 Mark Reinhold 指出 Java 9 并不仅仅是 Jigsaw,针对 Java 9,一共包含了85个JEP。我在这里会关注一个他所强调的Java新特性,JEP 222,那就是Java shell(也被称为JShell)。 借助 JShell,Java 9 能够让开发人员使用 REPL(Read-Eval-Pri...

计算机/ @CY2
...
有关 Java EE 8更新的思索 【已翻译】

在今年的JavaOne主题演讲上,甲骨文公司演示了 一段期待已久的 关于Java EE的进度的说明,其中对未来路线图做了大量的意想不到的更新。 Java EE 路线更新 Anil Gaul 在他的主题演讲中展示了 EE 8 和9的总体计划的更新,里面提到了对于Java EE的总体范围和目标对象的变化,同时也特意提到了JSRs的变化。在当下要求苛刻的云和微服务时代,这些变化就显得合情合理。 L...

计算机/ @班纳睿, @、默迹
...
内存分析:如何获取到 Java Heap Dump 【已翻译】

在本文中,我们将看到如何获取Java堆数据用来解决内存溢出或者内存高占用情况。获取堆数据有多种不同的方式,这些方式依据JVM版本的不同也会不是相同的 本文中,我使用Oracle JDK8. 当应用程序抛出“OutOfMemoryError”异常时自动生成堆数据 要自动生成堆数据,当应用程序抛出 “OutOfMemoryError“异常时,我们需要给JVM传递下面的参数用来生成堆数据文件。然后...

计算机/ @lison
...
Java 中通过 Redis 实现分布式任务调度和执行 【已翻译】

能够立即执行或者调度一个任务或工作成为一个典型的现代分布式Java应用程序需求。对于那些使用Redis的人来说,这种需求也变得更重要。 Redisson现在提供了一个新的方便的方法来执行这样的分布式任务执行和调度,它是通过标准JDK的ExecutorService和ScheduledExecutorService API实现的,被提交的任务在Redisson节点服务器上运行,它们连接同一个R...

计算机/ @淡蓝色
...
Java 9 新特性之微基准测试套件 【59%】

我已经好几个月没在这里写文章了,并且不出意外的话以后也会这样。因为我打算明年三月再重新开始写作。我将在本文最后解释为什么。等等! 并不一定是最后,因为你可以直接滚动到最后。反正是在文章底部前面的某个地方,别管它了,开始阅读吧! 三年前我写过一篇名叫 《Java编译器如何优化执行代码》  的文章. 更确切的说, 是为什么javac不做这些工作,但同时,JIT却优化了代码.于是我做了一些基础测试...

计算机/ @lison, @凭海临风, @KeYIKeYI
...
Java 性能优化的五大技巧 【已翻译】

要对你的 Java 代码进行优化,需要理解 Java 不同要素之间的相互作用,以及它是如何与其运行时的操作系统进行交互的。使用下面这五个技巧和资源,开始学习如何分析和优化你的代码吧。 在我们开始之前,你也许会担心许可的问题。Java 为 Oracle 公司所有,遵循 Oracle 的 BCL 许可,该许可证不是一个免费/开源许可证。即便如此, 仍然有许多开源项目由 Oracle 公司的 Ja...

计算机/ @learner, @KeYIKeYI, @唯恐有闻
...
别把所有问题都硬塞给 Java 8 Streams 【已翻译】

随着Java8成为主流,人们开始在所有地方使用流api(Steams),甚至在那些有点生硬的情景下(也就是,夸张一点说,完全疯了).举个例子,看下面mykong的这篇展示如何将Map的entry set流转化为一个键的List和一个值的List的文章: http://www.mkyong.com/java8/java-8-convert-map-to-list 发布在mykong.com上的...

计算机/ @KeYIKeYI
...
防止 Java 内存泄露的安全措施 【已翻译】

Java 通过 GC(一个守护线程)隐性回收内存资源。GC 会定期检查有没有哪个对象是不可达的,准确来说,没有引用指向这个对象。如果有,GC 就会回收这块内存。 现在的问题是我们应不应该担心内存泄漏问题或者说 Java 怎么处理这个问题的? 关注一下定义:一个对象只有在无可到达(无法使用)且没有任何现有线程可以使用到它时才会被垃圾回收器回收。 所以如果一个对象在应用中没有使用但无意中被引用了...

计算机/ @卓小混混, @負愚侕歸, @luke, @ypddw
...
JVM架构解析 【已翻译】

每一个Java 开发人员都知道字节码由JRE (Java运行时环境)执行。但许多人不知道JRE是Java虚拟机(JVM)的实现, 它负责分析字节码、解析并执行代码。作为一个开发人员了解JVM架构是非常重要的,因为它使我们能更高效的编写代码。在这篇文章中我们将更深入了解Java中的JVM架构以及JVM的各个组件。 JVM是什么? 虚拟机 是物理机器的一个软件实现。Java运行在VM上,实现WO...

计算机/ @城府很深
...
你是一个走在前沿的 Java 开发者吗? 【已翻译】

什么样才算是走在前沿的Java开发者?他们就只写Java或者能在JVM上运行的语言吗?Scala开发者或者Java开发者使用同样的JVM? 显然这里是有一些意见上的分歧,并且他们对于 JVM 社区也并不太积极。那么成为一个JVM 上的前沿开发者有什么意义?在JVM上已经有了很多语言像 Scala,Kotlin 和 Clojure,这些语言已经成了新的发展方向。 JVM 上的所有语言都受到欢迎...

计算机/ @dreampuff, @撩bug小能手
...
比较 Go 和 Java 两种语言 【已翻译】

首先,我想做一个免责声明,我并不是一个Go语言方面的专家。我是几个星期前才开始学习的,因此这里只是对第一印象的描述。在这篇文章里,一些主观的方面我可能有所错漏。也许我会在晚些时候做一个复核。但在此之前,如果你是一名Java程序员,欢迎阅读我的感受和经验,并发表评论。如果我有错漏之处,劳烦纠正我。 Go语言是了不起的 相对于Java,Go语言是编译成为机器码然后直接运行的。很大程度上像C语言一...

计算机/ @唯恐有闻, @lison, @KeYIKeYI
...
Java 实现一个 WebSocket 聊天的微服务 【已翻译】

本文描述了如何创建高性能的聊天应用程序,可以做为微服务.这里的微服务,我将使用 Caucho 的 Baratine (v 1.0) 框架来做演示: 创建 .jars 而非.wars 异步非阻塞方法 发布/订阅功能 高性能与可扩展 基于API编程 使用单线程来解决多线程中的并发问题 仅供参考, 最近DZone中使用WebSoket构建聊天室的详细内容,可以在这里找到: https://dzon...

计算机/ @負愚侕歸
...
使用 Certum 开源证书签署 Java 代码 【已翻译】

运行在 Web 上最新版本的 Java 代码已经加强了安全性,这对用户来说是个好消息,但开发者却很痛苦。新的要求迫使那些访问需要通过网站启动 Java 应用的用户必须手工给下载的 JAR 文件添加异常警告处理。听起来很简单,实际操作很繁琐,因此我决定使用真正的证书。 Certum 提供的证书对开源项目的开发者来说价格合理。这个服务很棒,这样我们就不需要为了一个证书每年花费数百美元。因此我为我...

计算机/ @coyee, @CY2, @Lan
...
Java 8 最佳技巧 【已翻译】

在过去的几年中,我一直使用Java 8 进行了很多的编码工作,用于开发新应用和迁移遗留应用,我觉得是时候写一些有用的"最佳实践"。我个人不喜欢"最佳实践"这个术语,因为它意味着“一刀切”的解决方案,当然编码工作是不会这样的--这是因为我们开发人员会想出适合我们的方案。但我发现我对Java8特别的喜欢,它让我的生活更轻松一点,所以我想就此话题展开讨论。

计算机/ @luke, @coyee, @負愚侕歸
...
Java 脚本引擎 —— 在 JavaScript 中使用 Java 语言 【已翻译】

本文主要讲述如何在脚本语言中调用 Java 类和接口。 所有的代码使用 JavaScript 编写,但你也可以用其他兼容 JSR 223 的脚本语言。这些例子可作为脚本文件也可以在交互式 Shell 中一次运行一个语句的方式来运行。在 JavaScript 中访问对象的属性和方法的语法与 Java 语言相同。 本文包含如下几部分:

计算机/ @CY2, @coyee
...
Java 脚本化编程指南 【已翻译】

Java脚本化API为谁准备? 脚本语言的一些有用的特性是: 方便:大多数脚本语言都是动态类型的。您通常可以创建新的变量,而不声明变量类型,并且您可以重用变量来存储不同类型的对象。此外,脚本语言往往会自动执行许多类型的转换,例如, 必要时 将数字10转换为“10”。 开发快速原型:您可以避免编辑编译运行周期,只使用“编辑运行”! 应用扩展/定制:你可以“具体化”的部分应用程序,例如一些配置脚...

计算机/ @蓝骑士, @luke
...
Java Scripting API 使用示例 【已翻译】

本章节我们讲述如何使用 Java Scripting API (JSR 223) 在 Java 应用中嵌入脚本功能,同时提供了一些 Java 的例子来演示 Java Scripting API 的特性。 Java Scripting API 包含一组类和接口,在 javax.script 包中定义。这是一个相对比较小的 Java 包,以 ScriptEngineManager 类作为起点。一...

计算机/ @CY2, @coyee