共有 6 人关注 标签:Java,共有 79 篇文章

...
Java 9 模块化系统教程(Code First出品) 【未翻译】

The Java Platform Module System (JPMS) brings modularization to Java and the JVM and it changes how we program in the large. To get the most out of it, we need to know it well, and the first step i...

计算机/ @班纳睿
...
使用 Guava 实现对象的延迟加载和缓存 【未翻译】

Lazy loading and caching are extremely useful tools in the developer toolbox, but like most tools, they can be often overused/abused — so use them sparingly. Lazy loading can be useful when creatin...

计算机/ @CY2
...
理解 Java 当中的类(Class)(第1部分) 【87%】

自从 Sun 公司 1995 年发布 Java 以来,关于 Java 类的文章和教程已经是多的数不胜数——类的机制和原理、类的写法、应该怎么做/不该怎么做、还有一些技巧什么的。除开这些表象的话题,实际上真正对 Java 类的深刻理解,是指对类这个概念有一个整体的、直觉上的把控。这就是要求要建立起一个对 Java 类的本能般的感觉,来怎么定义这些类,怎么用这些类;这样的感觉要能够帮助你洞察和领...

计算机/ @捏造的信仰
...
Java 还是第一名,谁来取代? 【未翻译】

The TIOBE index for August 2017 shows Java as the world’s number one programming language in terms of popularity, but interest continues to fall. However, studying the top 20 rankings, it seems tha...

计算机/ @pauli
...
Java 9 中新的 RegEx 特性 【已翻译】

译者注:截止文章发布,Java 9 还没有正式发布。 我收到 Anubhava Srivastava 赠送的书 “Java 9 Regular Expressions”,由 Packt 出版。这本书是很好的教程,从零开始介绍了什么是正则表达式。对于那些想知道怎么使用 RegEx 正则表达式的人,这本书也很有趣,讲解了基础知识,深入了解了复杂的特性,就像零长度断言、反向引用,类似选择符。 本文...

计算机/ @pauli
...
Java 接口的默认和私有方法 【未翻译】

In this tutorial, we will look at default and private methods within interfaces. Default methods were added in Java 8, allowing methods to be added to an interface that comes with a default impleme...

计算机/ @CY2
...
无痛迁移到 Java Jigsaw 模块化项目——实例分析 【未翻译】

Key Takeaways Implementing applications in a modular fashion encourages good design practices, such as separation of concerns and encapsulation. The Java Platform Module System (JPMS) lets develope...

计算机/ @班纳睿
...
C# 对决 Java:C# 中 5 个不可替代的特性秒杀 Java 【已翻译】

如果我们可以综合来自 C# 和 Java 最好的特性,可以得到什么样的东西? 没有完美的编程语言。如果没有其它问题,我希望我们能就此达成一致。新语言往往是针对另一种语言的缺点而发展起来的,所以每个语言都必然会在某些方面很强大,而在另一些方面就比较弱了。 C# 和 Java 都源于 C/C++ 语言,它们拥有大量在面向对象方面的共性。除了 Java 虚拟机和 C# 的 .NET CLR 具有一...

计算机/ @边城, @烟火
...
并发编程: Java Futures 与 Kotlin 协程 【已翻译】

很久以前,为了在 Java 中运行并行代码,人们必须手动启动新线程。这不仅仅写起来困难,还很容易产生难以查找的缺陷。测试、阅读以及维护这种代码也毫不轻松。那之后,随着振奋人心的多核时代到来,Java API 产生不小的改进,使并发编程变得容易起来。同时,其它 JVM 语言也各自发挥,帮助开发者编写并发代码。本文中我会对 Java 和 Kotln 实现并发编程进行比较。 为了不偏离重心,为了代...

计算机/ @边城, @捏造的信仰
...
Java 9 集合的改进 【已翻译】

Java 9 为创建不可变的 List、Set、Map 和 Map.Entry 对象提供了工厂方法,它们可以用来创建空的或非空的集合。 对于 Java 8 或更早的版本,我们通常会用 Collections 类提供的 “unmodifiableXXX” 方法。比如说想要一个不可修改的 List,那么可以用 Collections.unmodifiableList 方法。 不过这种用法让语句看...

计算机/ @qianfangorg, @边城, @CY2
...
在 Java 中调用 Kotlin 语言的方法 【已翻译】

Java 可以轻松调用 Kotlin 代码。 属性 Kotlin 属性会编译成以下 Java 元素: 一个 getter 方法,名称通过加前缀  算出; 一个 setter 方法,名称通过加前缀  算出(只适用于  属性); 一个私有字段,与属性名称相同(仅适用于具有幕后字段的属性)。 例如, 编译成以下 Java 声明: 如果属性的名称以  开头,则使用不同的名称映射规则:getter 的...

计算机/ @CY2
...
在 Kotlin 中调用 Java 方法 【已翻译】

Kotlin 在设计时就考虑了 Java 互操作性。可以从 Kotlin 中自然地调用现存的 Java 代码,并且在 Java 代码中也可以很顺利地调用 Kotlin 代码。在本节中我们会介绍从 Kotlin 中调用 Java 代码的一些细节。 几乎所有 Java 代码都可以使用而没有任何问题 Getter 和 Setter 遵循 Java 约定的 getter 和 setter 的方法(名...

计算机/ @CY2
...
使用 Java Bean 验证方法参数和返回值 【17%】

Java’s static type system is a robust mechanism that lets you specify a method’s preconditions and postconditions (from the caller’s perspective: what to supply and what to expect) with the compile...

计算机/ @toypipi
...
Java 的未来 【已翻译】

为了收集关于 Java 生态系统发展现状的见解,我们采访了 9 名对该生态系统非常熟悉的高管。 我们向这些有经验的 Java 专家问了这么一个问题: "从你的观点来看,Java 的未来发展为怎样?" 下面是他们的回答: 我之前已经不再用 Java 了,但是 Java 8 发布后我又回来了。Java 8 有很多创新,这些创新是我从 Java 2 到 Java 7 都没看到过的。Lambda 就...

计算机/ @CY2
...
适合 Java 开发者学习的 Python 入门教程 【已翻译】

编者按:在Java文章频道里,我们大部分人应该对该语言都非常的了解,而且在该生态圈内至少已经呆了好几年了。这让我们有常规和专业的知识,但是也同时也让我们一些井蛙之见。 在Outside-In Java系列文章中,一些非Java开发人员会给我们讲讲他们对于我们这个生态圈的看法。 从哲学的角度来讲,Python几乎是与Java截然相反。它抛弃了静态类型和刚性结构,而是使用了一个松散的沙盒,在这里...

计算机/ @班纳睿, @toypipi, @宇德高辉, @CY2, @goon_, @呼保义, @边城
...
Java 中单元级别的性能测试 【8%】

在性能测试方面,我经常听说有专门的环境,像JMeter或Apica这样的时髦工具,以及复杂的场景。这需要花费大量的精力来建立和维护。因此,我首先要确保在没有这些工具的情况下,对最关键的单元进行优化。实现这一承诺的一种方法是通过非it级性能测试应用程序。这些应用程序的伟大之处在于,不需要任何特殊工具;他们可以在一分钟内做好准备,他们被证明可以节省大量的时间、金钱和愤怒的顾客的电话。

计算机/ @Grimm
...
关于 Java 9 中模块系统特性被委员会拒绝的详细信息 【未翻译】

In a 13-10 vote that concluded on May 8, the Public Review Ballot for JSR #376 (formally known as the Java Platform Module System) failed to pass the JCP executive committee's muster. Perhaps the c...

计算机/ @CY2
...
除了模块,Java 9 还有什么新特性? 【21%】

Java9最重要的特征就是Java平台模块化系统(JPMS)。这里还有其它有趣的新特性,例如改进了应用程序编程接口(API)并且增添了新工具,比如JSshell。在过去几年的时间里,我对一些小的改变没有给予太多的关注,直到我参加了在法国Devoxx举办的这场有趣的演讲。由于今年早些时候JDK9已经宣布完成所有功能,因此这篇文章收集了让广大程序员感兴趣的那些新特性,并且详细地讲解了它们。当然,...

计算机/ @忘忧禅师, @一叶障目, @CY2, @班纳睿
...
使用 Jenv 让所有 Java 开发工具同时运行多个版本 【已翻译】

如果你需要一个平台无关的工具可以让你管理多个版本的 Java 开发工具,如 Maven、Gradle 或者是 Tomcat 之类,那么 jenv 是你最佳的选择。使用 jenv 你可以轻松安装多个版本的 Java 应用,这些版本可以是整个系统使用或者是单独某个 Shell 使用。例如可以让你用 Maven 3.1 来构建一个项目,而使用 Maven 3.5 去构建另外的项目。 jenv 介绍...

计算机/ @CY2
...
使用 IoC 反转控制的三种设计模式 【已翻译】

对于许多开发人员来说,控制反演(IoC)都是一个模糊的概念,因为他们在现实世界中很少或没有被应用过。在最好的情况下,控制反演(IoC)可以加单的认为是等效于依赖注入(DI)。实际上,只有在翻转控制与依赖注入双方都只是反映翻转依赖管理控制的时候,才认为两者是等效的。虽然,依赖注入实际上是IoC的一种众所周知的形式。但是,事实上IoC却是一个相对更为广泛的软件设计范例,可以通过多种模式来进行实现...

计算机/ @scilence, @班纳睿, @边城
...
在 Java 9 里对 IntegerCache 进行修改? 【已翻译】

5 年前,我在 Hungarian 上发表了一篇关于 JDK 中如何改变 IntegerCache 的文章。这种做法其实是深入进 Java 运行时,在实际并没有使用的场景。当你开发这些研究代码时,你才能更好的理解反射是如何工作的,以及 Integer 类是如何实现的。 Integer 类有一个私有的嵌套内,名为 IntegerCache ,包含了值从 -127 到 128 的 Integer...

计算机/ @CY2
...
使用 Flyway 和 Java 实现数据库的版本控制 【52%】

源代码版本控制是一个被广泛讨论过的话题,并且有许多解决方案,比如 Git, Subversion,以及 Mercurial. 但是数据以及模式如何进行版本控制呢,如何与操作这些数据的应用程序保持同步呢?在这篇文章中,我们会学习Flyway,这是一款可以帮助开发人员在Java应用程序上进行数据库版控制的工具。 Flyway是什么? Flyway是一款工具,由Boxfuse开发。Flyway能使...

计算机/ @苏州小浮云
...
哪个 Java 日志框架性能最佳? 【已翻译】

Java有三个主要的日志框架: Java Util Logging, Log4j 2, and Logback。当为你的项目挑选日志框架的时候,你考虑过他们的性能吗?毕竟,如果仅仅是因为你选择了一个缓慢的框架或者是配置了次优的配置,就让你的应用变慢,那也太蠢了。 当你登陆Twitter,查看Java主题的时候,你一定会发现大量的争论,这也许是最好的总结了,来自Dan Allen: @conn...

计算机/ @GreyWord
...
Java 和 Python:哪一个最适合你? 【已翻译】

软件开发总有不少关于编程语言选择的问题是非常纠结的,而且很容易引起争吵。 软件开发者一般都会强烈的认同他们所选择的工具,这其中混杂了主观偏好和一些客观事实。 然而,在近十年里,开发人员可使用的语言数量增长不少。这意味着语言的关联在不同的代码库、框架和平台上越来越分散。现代项目和现在的开发者也就变得越来越多元化,必须通晓多门语言,熟悉越来越多的语言和开发库。但仍需要一些关于语言的明智选择方法来指引。

计算机/ @coyee, @GreyWord
...
开始使用Async / Await 【14%】

Async programming is all the rage in mobile app development for good reasons. Using async methods for long running tasks, like downloading data, helps keep your user interface responsive, while not...

计算机/ @夏帆
...
五分钟理解Java的反射API 【已翻译】

目录 反射API 基本类型和方法 注解 概要 注释 像java一样,一种具有反射功能的语言。允许开发人员在运行时检查类型、方法、字段、注解等,并在程序运行时决定是否使用。 为此,Java的反射API提供类,类,字段,构造函数,方法,注释和其他。 使用它们可以与编译时未知的类型进行交互,例如创建未知类的实例并对它们调用方法。

计算机/ @中国码农, @班纳睿, @/(?:.*)?/g, @toypipi
...
三分钟学会Java的Synchronized关键字 【已翻译】

内容目录 同步的基本知识 使用synchronized关键字 synchronized是如何工作的 多重锁 在实际的java应用中计数 结论 评论 synchronized关键字可以用来确保一次只有一个线程执行一个特定部分的代码. 这是种可以避免竞争危害的简单方法,这通常发生在多个线程在同一时间改变共享的数据所导致的错误. 使用synchronized关键字的整个方法或代码块可以是单线程的....

计算机/ @Orange, @GreyWord, @中国码农
...
深入研究Java 9的栈遍历(Stack-Walking)API 【5%】

The stack-walking API, released as part of Java 9, offers an efficient way to access the execution stack. (The execution stack represents the chain of method calls – it starts with the method or th...

计算机/ @班纳睿
...
2017年你不能错过的Java类库 【已翻译】

各位读者好, 这篇文章是在我看过 Andres Almiray 的一篇介绍文后,整理出来的。 因为内容非常好,我便将它整理成参考列表分享给大家, 同时附上各个库的特性简介和示例。 请欣赏! Guice Guice (发音同 ‘juice’) ,是一个 Google 开发的轻量级依赖性注入框架,适合 Java 6 以上的版本。  GitHub, JavaDoc, 使用指南, FactoryMo...

计算机/ @一叶障目, @班纳睿, @Hornsey
...
Java模块系统上手指南 【未翻译】

Table of Contents The Application Before Jigsaw Entering Jigsaw Land Modules Name Dependencies Exports Implementation Splitting Into Modules Made-up Rationale Implementation Services Made-up Ration...

计算机/ @班纳睿