共有 4 人关注 标签:Java,共有 47 篇文章

...
遗留系统开发人员的Java 9指南 【已翻译】

每隔几年,Java就会发布一个新版本,而且在JavaOne演讲上兜售其新的语言结构和API,并赞美其带来的好处。同时开发者们都激动的跃跃欲试,急于使用新功能。 这是一个乐观的画面,但是请不要忘了这样一个事实,即大多数开发商只能维护和增强现有的应用,而不是从头开始创建新的。 大多数的应用,特别是商业发行的, 需要向后兼容早期版本的java, 就无法支持那些比较优秀的新特性。最后,大多数客户和最...

计算机/ @班纳睿
...
Java 性能的流言终结者 【22%】

Java是地球上最流行的软件开发平台,但是这不意味着它是容易理解的。 当然不是从性能的角度。不像其他大部分平台, Java在它运行的电脑和代码之间有一个Java虚拟机 (JVM)。 这种虚拟化有许多优点,但是让性能分析更复杂了。 JVM做了两件事让查找性能问题的根源更困难了。

计算机/ @Mark
...
来自Serenity的Java 8的一些使用技巧 【已翻译】

Java 8早在2014年就出来了,但是我仍发现有很多团队并没有尽量多的去使用其新的特性。可以说Java 8中最大的新特性就是Lambda表达式,这终于给Java世界引入了函数式编程的味道。 在这篇文章中,我想要给大家看一个简单的例子,通过这个具体的例子来展示Java 8和Lambda表达式是如何使你的生活更轻松的。 假如我们想要为一个使用frame或iframe的遗留应用编写一个测试。 J...

计算机/ @班纳睿
...
10 个最简单的 Java 性能优化技巧 【36%】

最近“全网域(Web Scale)”一词被炒得火热,人们也正在通过扩展他们的应用程序架构来使他们的系统变得更加“全网域”。 但是究竟什么是全网域?或者说如何确保全网域? 扩展的不同方面 全网域被炒作的最多的是扩展负载(Scaling load),比如支持单个用户访问的系统也可以支持10个、100个、甚至100万个用户访问。在理想情况下,我们的系统应该保持尽可能的“无状态化(stateless...

计算机/ @薯片番茄, @班纳睿
...
盯着我的 Java 水晶球 【未翻译】

With Java 9 on the horizon this year, what will its release bring? What other developments can we look forward to? 2017 promises to be an interesting year. Many years ago, when I was working at Sun...

计算机/ @班纳睿
...
每个Java开发人员都应该知道(并爱上)的8个工具 【已翻译】

在Stormpath(译者注:一款用户管理和认证服务软件,也是该软件的公司名),我们把质量和生产力看得非常重要。每一个优秀的工匠都知道,要完成工作,仅仅拥有天赋是不够的,还需要有正确的工具。工程学不仅仅是一门科学,还是一门艺术,因此虽然我们Stormpath的员工都毋庸置疑地都很有天赋(眨眼眨眼(译者注:调皮的样子)), 我们还是在一直不断的寻找最适合我们需求的工具。我们的工程师总是渴望跟其...

计算机/ @班纳睿
...
如果你在2016年写过Java代码,这些趋势你不应该错过 【已翻译】

2016年最有趣的Java相关的话题 现如今有很多关于代码的趋势话题,试图跟上所有事情本身就是一项全职工作。如果你不清楚如何从糠中分离小麦,我们已经为你做好这个工作了。 在本文中我们将回顾2016年热点,在新的一年哪些将有更高的热度。当然,是与Java相关的。准备好像在2017年一样编程吧!

计算机/ @vincentsun, @班纳睿
...
在 Spring 框架中使用 jOOQ —— 配置部分 【已翻译】

我已经分享过关于ORM框架所导致的性能问题。尽管我不得不承认这些问题大部分都是由你自己造成的, 但我也在开始思考在只读操作里使用ORM是不值得的。 于是我开始寻找实现这些操作的替代方法。 接着我就遇到了 jOOQ ,它是这么介绍自己的: jOOQ 可以从数据库生成Java代码,并允许你通过其流利的API构建类型安全的SQL查询。 这看起来相当有趣。这就是我为什么决定试一试 jOOQ ,并且把...

计算机/ @班纳睿, @CY2, @行者江
...
Node.js 对于Java 开发者来说意味着什么? 【已翻译】

我们都知道现在Node.js越来越引人注目。每个人都对学习Node.js感兴趣并希望把它用起来。在开始使用一项技术之前,最好是先了解下它背后的概念。但对于初学者,不同的人使用不同的定义会可能令他们感到困惑。Node.js到底是什么?它是一门新语言,一个新框架,一个新工具,还仅仅是一个JavaScript文件?即使是对于那些有经验的Java开发者来说,他们也很难迅速地了解Node.js。因此,...

计算机/ @Aileen, @tangmisi
...
Hotswap Agent —— 在 Java 运行时重新加载类和资源 【已翻译】

Hotswap Agent 项目的主要目的是避免可怕的“改程序 -> 重启+等待 -> 检查" 这样的开发周期。在开发的过程中保存代码并重新加载这是一个标准的流程,而且很多语言(包括 C#)都有这样的特性。 目前我们这个项目已经发布 1.0 版本了,值得一试! 特性 与标准的 Java 方法相比较,hotswap 仅限于方法体内的代码改动,DCEVM + HotswapAgent 则允许下列...

计算机/ @CY2
...
最新的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
...
JavaScript 语境、 nwjs/nw.js Wiki、 GitHub的差异 【59%】

注意: 在维基百科上只一些内容只适合0.12以前的版本. 0.13以后的更多的官方文档, 请看http://docs.nwjs.io。 不同的基于webkit的窗口有不同的JavaScript 上下文环境, 比如:每个窗口都有自己的全局对象和一套自己的全局构造函数(例如 数组或对象)。 这是一些在Web浏览器中的常规做法。这是一件好事, 因为: 当某个对象的原型被一些库替换或扩充时 (例如 ...

计算机/ @zhongzhong
...
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, @唯恐有闻