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

...
哪个 Java 日志框架性能最佳? 【已翻译】

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

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

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

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

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

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

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

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

Table of Contents Who Called Me? StackWalker Basics Getting a StackWalker The forEach Method Walk the walk Advanced StackWalker Why Taking a Function Instead of Just Returning the Stream? The getCa...

计算机/ @班纳睿
...
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...

计算机/ @班纳睿
...
C++ 、 Java 和 C# 中关于数组使用的异同 【41%】

介绍 如果想在三种 OO 语言之间进行切换,另一篇短文会有所帮助。本文只是讲述了数组及其创建和初始化。注意,我不准备讲像 vector 这样的容器,我写的另一篇文章已经讲过了。本文讲的是内置的数组类型,不包含任何扩展代码或者附加库。 背景 什么是数组?唔,从本质上讲,它是一个列表。数组是一个受到某些限制的列表(也可以说是好处,这得看你怎么理解)。数组是一片连续的内存空间,用于存放大量相同类型...

计算机/ @边城, @CY2
...
Java 10 可能会对 Lambda 表达式进行升级 【已翻译】

新的 JEP 对增强 Lambda 提出了修改建议,包括消除歧意、用下划线表示未使用的参数、影子外部变量 等。虽然这些改变会让 Java 的 Lambda 更接近于其它语言的 Lambda,不过最初的讨论只是想支持混合水平。这个 JEP 补充了一系列的提议来改善 Java 语言,包括局部变量的类型推断和增强的枚举,这些内容都有可能包含在 Java 10 中。 尽管与 Lambda 相关的改变...

计算机/ @边城, @班纳睿
...
你应该知道的五个开源的Java性能监控工具 【已翻译】

衡量任何应用程序最重要的指标之一就是性能。 我们希望确保用户能够获得最佳的体验,并确保我们的应用程序正常运行。 这就是为什么大多数人至少使用一个监控工具的原因。 如果你想在性能监控市场上寻找一些不同的东西,那么选择之一是选择一款开源工具。 在下面的博文中,我们收集了一些开源的APM工具,这些工具目前已经可以替代付费工具,你可以看看它是否是你的最佳选择。

计算机/ @toypipi, @Hornsey, @班纳睿
...
遗留系统开发人员的Java 9指南 【已翻译】

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

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

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

计算机/ @Mark, @中国码农
...
来自Serenity的关于Java 8的一些使用技巧 【已翻译】

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

计算机/ @班纳睿
...
关于Java性能优化最容易操作的10个技巧 【已翻译】

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

计算机/ @薯片番茄, @班纳睿, @learner
...
2017年我对Java的预测和期待 【已翻译】

随着Java 9在今年将要正式发布,那它到底会带来什么呢?我们可以期待哪些其他的发展呢?2017注定是有趣的一年。   多年前,当我在Sun公司从事Java的推广传播工作时,我的一个朋友送给了我一个真正的水晶球。他说我一直在试图给人们讲解Java的未来,因此我可能需要一些适当的装备。 既然现在是2017年的第一周(新年快乐),我想我该拿出我的水晶球来大胆的做一些预测,预测在接下来的12个月内...

计算机/ @班纳睿
...
每个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