开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
Java - 开源中国社区
Java

Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的...

完整介绍Java首页Java下载 | 授权协议: CDDL
将 Spring Boot 应用迁移到 Java 9 — 模块
上周,我试图制作一个 Spring Boot 应用程序 —— 是一个著名宠物诊所(Pet Clinic)的 app,对 Java 9 兼容。这很不容易,我不得不放弃了很多功能。总而言之,唯一的好处是改进了 St...
oschina 发布于 3周前 1
Spring Framework 5.x 中的新特性
Spring Framework 5.0 中的新功能和增强 JDK 8+ 和 Java EE 7+ 基准版 基于 Java 8 源代码级别的完整框架代码 通过引入泛型、lambda 等提高可读性。 通过直接代码支持 Java 8 功能的...
oschina 发布于 2个月前 0
使用 Visual Studio Code 调试 Java 应用程序
对于使用 Visual Studio Code 的 Java 开发者来说,Language Support for Java(TM) by Red Hat 扩展提供了非常好的语言特性支持,比如智能感知和项目支持等。然而,我们也听到一些用...
oschina 发布于 2个月前 40
Stack vs. Heap:了解 Java 的内存分配机制
知道栈和堆之间的区别吗?什么时候该用哪一个,它们提供了什么功能? 这是一篇关于内存分配的指南。 栈和堆是与关于 Java 内存分配的两个重要概念。我们来看看这两个概念,为什么它们...
oschina 发布于 3个月前 8
Java 9 中的 9 个新特性
Java 8 发布三年多之后,即将快到2017年7月下一个版本发布的日期了。 你可能已经听说过 Java 9 的模块系统,但是这个新版本还有许多其它的更新。 这里有九个令人兴奋的新功能将与 Ja...
oschina 发布于 7个月前 29
使用 Java 8 学习 MongoDB(Part 1)
Java 8 提供了很多工具,能让你连接 MongoDB,查询数据,甚至转换结果。 欢迎来到新的系列教程:使用 Java 8 学习 MongoDB。通过这份教程,希望大家对 Java 8 提供的大数据和新特性有...
oschina 发布于 7个月前 6
Java 实现的 URL 编码和解码技术
当编写 “ 网络爬虫” 或下载器时,在 Java 中实现 URL 编码和解码是一个很常见的要求。本文的重点是创建用于对所传递的 URL 进行编码和解码的模块。你可以看一下 GitHub 上的 源码...
oschina 发布于 8个月前 9
Java 新特性,使用 Lambdas 表达式作为 Predicates
以前我给过一个例子,查询地图的参数变成了 SOLR 的搜索字符串。在 Java 8 之前的代码使用传统的for循环条件和使用StringBuilder 逐步构建一个字符串。Java 8 代码使用 map 实体,映...
oschina 发布于 1年前 8
用 Lint 优化您的代码
除了测试 Android 的应用程序是否满足功能要求外,确定你的代码没有结构问题也相当重要。代码架构不完善会影响 Android 应用程序的可靠性和运行效率,同时也会使代码更难维护。比如,...
oschina 发布于 1年前 1
在 Java 8 中避免 Null 检查
如何预防 Java 中著名的 NullPointerException 异常?这是每个 Java 初学者迟早会问到的关键问题之一。而且中级和高级程序员也在时时刻刻规避这个错误。其是迄今为止 Java 以及很多其...
龙哥盟飞龙 发布于 2年前 24
把 Java 8 流解析成 SQL
当我们尝试用“Java 8 的方式”使用数据库时,如何去解决性能上的问题呢? 通过与 ZeroTurnaround 合作,我们为你带来了 Java Zone。你可以阅读这里的 8 个步骤的指南,来看看如何...
oschina 发布于 2年前 35
Java 8 vs Scala — Part II Streams API
这是本文的第 2 部分。第 1 部分在这里。 Stream 与 Collection 的比较 这是我按自己的意思给的一个十分简要的说明:collection 是一个有限的数据集,而 stream 是数据的一个序列,可...
oschina 发布于 2年前 16
Java 8 vs. Scala:Part I
比较 Java 8 和 Scala 在使用 Stream API 时的表达方式和性能的差异。 经过漫长的等待,终于等到了有着高阶函数的 Java 8。我迷恋 Java,但是我必须承认和现在一些其它的语言相比 ...
oschina 发布于 2年前 64
Java 的最佳实践
Java 是在世界各地最流行的编程语言之一, 但是看起来没人喜欢使用它。而 Java 事实上还算是一门不错的语言,随着 Java 8 最近的问世,我决定编制一个库,实践和工具的清单,汇集 Ja...
金河 发布于 2年前 68
为 Java 程序员准备的 Go 入门 PPT
这是 Google 的 Go 团队技术主管经理 Sameer Ajmani 分享的 PPT,为 Java 程序员快速入门 Go 而准备的。 视频 这个 PPT 是 2015年4月23日在 NYJavaSIG 中使用的。 前往 YouTube 观看...
oschina 发布于 2年前 57
JVM:如何分析线程堆栈
在这篇文章里我将教会你如何分析JVM的线程堆栈以及如何从堆栈信息中找出问题的根因。在我看来线程堆栈分析技术是Java EE产品支持工程师所必须掌握的一门技术。在线程堆栈中存储的信息...
0x0bject 发布于 3年前 19
Java 9 – 终极特性列表
本文会根据针对即将发布的Java 9新特性做同步更新(最后更新:9/9/2014) 加快OpenJDK的开发速度: 继2014年3月份发布了Java 8之后,我们进入下一个两年的发布周期. Java 9预计在2016年发...
oschina 发布于 3年前 54
Java 8 Update 20 的新特性 —— 字符串去重
字符串在任何应用中都占用了大量的内存。尤其数包含独立UTF-16字符的char[]数组对JVM内存的消耗贡献最多——因为每个字符占用2位。 内存的30%被字符串消耗其实是很常见的,不仅是因为...
oschina 发布于 3年前 23
创建你自己的 Java 注解类
如果你已经在使用Java编程,并且也使用了任何像Spring和Hibernate这样的流行框架,那么你应该对注解的使用非常地熟悉。使用一个现有框架工作的时候,通常使用它的注解就够了。但是,...
oschina 发布于 3年前 31
Scala 比 Java 还快?
通常Scala被认为比Java要慢,特别是用于函数式编程时。本文会解释为什么这个被广泛接受的假设是错误的。 数据验证 编程中一个常见的问题是数据验证。即我们要确保所有得到的数据处于...
oschina 发布于 3年前 48
Java 串口编程
使用Java进行串口通信 引言   由于java的平台无关特性使得串口编程很困难。因为串口需要一个与特定平台实现的标准的API,而这对于java来说很困难。 不幸的是,Sun在java的串口通信上...
吾同树 发布于 3年前 1
Java 8 Lambda 表达式示例
自从我听说Java8将要支持Lambda表达式(或称闭包),我便开始狂热的想要将这些体面的简洁的功能元素应用到我的代码中来。大多开发者普遍的使用匿名内部类来开发事件处理器,比较器,...
oschina 发布于 4年前 52
你可能没听过的 Java 8 中的 10 个特性
你以前听到的谈论关于Java8的所有都是围绕lambda表达式. 但它仅仅是Java8的一部分. Java 8 有许多新特性---一些强大的新类和语法, 还有其他的从一开始就应该具有的东西. 我将要介绍我...
oschina 发布于 4年前 35
115个Java面试题及回答
在本教程中,我们将讨论在Java面试中,用人单位用来测试应聘者Java以及面向对象的能力的面试题目.以下章节我们将按照以下结构讨论面试问题,面向对象编程及其特性,Java及其特性的一般...
翟志军 发布于 4年前 66
避免在 Java 接口中使用数组的 3 个理由
如果你发现在一个接口使用有如下定义方法: public String[] getParameters(); 那么你应该认真反思。数组不仅仅老式,而且我们有合理的理由避免暴露它们。在这篇文章中,我将试图总...
oschina 发布于 4年前 29
Java 8 彻底改变数据库访问
Java 8终于到来了! 经过几年的等待, java程序员终于能在java中得到函数式编程的支持了. 函数式编程的支持能流程化现有的代码并且为java提供强大的能力.在这些新特性中最瞩目的是jav...
oschina 发布于 4年前 111
Java 8 的默认方法和多重继承
介绍 我一看到 Java 8 发布了, 就决定开始深入看看对于这门编程语言新的增强功能. 我承认,自己并没有像对待 7 那样对这个版本进行跟进, 所以我所知道的唯一的增强功能只是lambda表达...
oschina 发布于 4年前 15
并发酷刑: 在 Java 内存模型中测试代码
不知道你是否这么觉得,而对于我来说最烦恼的bug就是处理并发问题。除非你已经掌握了利用其他工具摒弃你现有的工具. 但是,这里还有另外一个例子,因为我们已经在这里讲述了很多关于...
oschina 发布于 4年前 0
选择正确的 JSR-352 (Java批处理)实现的 10 个关键点
您可能已经知道,JSR-352是一个Java批处理的标准。该标准在今年发布,并被包含在了JEE7之中,这意味着,所有的JEE7应用服务器都会有批处理的能力。正如我在上一篇文章中指出,即使您...
oschina 发布于 4年前 4
Java 线程转储
软件维护是一个枯燥而又有挑战性的工作。只要软件功能符合预期,那么这个工作就是好的。设想一个这样的情景,你的电话半夜也一直在响(这不是一个令人愉快的感受,是吧?) 任何软件...
YuanyuanL 发布于 4年前 22
Java 中使用内存映射文件需要考虑的 10 个问题
java中的内存映射IO和内存映射文件是什么? 内存映射文件非常特别,它允许Java程序直接从内存中读取文件内容,通过将整个或部分文件映射到内存,由操作系统来处理加载请求和写入文件...
oschina 发布于 4年前 11
Java 8 是否还需要 LINQ?还是已经比 LINQ 更好?
Featured article by oschina reproduced with permission by Data Geekery GmbH. English content copyright © 2013 by Data Geekery GmbH. (此处请勿翻译) LINQ一直是.net程序系统...
oschina 发布于 4年前 47
Java长存!12个Java长久占居主要地位的原因
我们很容易就会遗忘那些曾经在猿群中大热而又被各种新技术掩盖直至堙灭的技术的价值。就拿COBOL这个老猿们当年所用的神器来说,就跟条死鱼一样被现代猿基本这么形容:没价值,腥臭,...
NealFeng 发布于 4年前 108
介绍 Java 的内存泄漏
java最明显的一个优势就是它的内存管理机制。你只需简单创建对象,java的垃圾回收机制负责分配和释放内存。然而情况并不像想像的那么简单,因为在Java应用中经常发生内存泄漏。 本教...
oschina 发布于 4年前 0
Map 值增加的最高效的方法 —— 只一次搜索键
这个问题初看起来可能会比较基础,但却在论坛里频繁地讨论。在这篇文章中,我将会讨论一种只在 Map 中搜索一次键的方法。 让我们看一个例子。假设我正在创建一个词频表,使用 Map 来...
oschina 发布于 4年前 13
提给程序员和开发者的 10 道 Java 泛型面试题
关于泛型的面试题在 Java面试中变得越来越常见,因为 Java 5问世已经有相当长的时间了,越来越多的应用已经迁移到Java 5上来了,并且几乎所有新的Java开发工作也都是在Tiger(Java 5的...
lwei 发布于 4年前 30
Java的Exception和Error面试题10问10答
在Java核心知识的面试中,你总能碰到关于 处理Exception和Error的面试题。Exception处理是Java应用开发中一个非常重要的方面,也是编写强健而稳定的Java程序的关键,这自然使它成为面...
lwei 发布于 4年前 48
针对 Java 开发者的 Apache Camel 入门指南
Apache Camel是一个非常实用的规则引擎库,能够用来处理来自于不同源的事件和信息。你可以在使用不同的协议比如VM,HTTP,FTP,JMS甚至是文件系统中来传递消息,并且让你的操作逻辑和...
oschina 发布于 4年前 23
10 个 Java 编码中微妙的最佳实践
Featured article by oschina reproduced with permission by Data Geekery GmbH. English content copyright © 2013 by Data Geekery GmbH. 这是10个最佳实践的列表,比你平时在J...
oschina 发布于 4年前 21
在 Java SE 平台上使用 Headless 模式
这篇文章介绍怎样在标准Java(Java SE,也称作J2SE)平台上用Headless模式。 Headless模式是在缺少显示屏、键盘或者鼠标时的系统配置。听起来不可思议,但事实上你可以在这中模式下完成...
oschina 发布于 4年前 9
Java 程序员在写 SQL 程序时候常犯的 10 个错误
Featured article by oschina reproduced with permission by Data Geekery GmbH. English content copyright © 2013 by Data Geekery GmbH. Java程序员编程时需要混合面向对象思维...
oschina 发布于 4年前 70
Java程序员快速入门 go 语言
这篇文章帮助Java程序员快速入门Go语言。 本文将以一个有代表性的例子为开始,以此让Java程序员对Go语言有个初步认识,随后将详细的描述Go语言的各个构成模块,最后以一个例子来讲解...
oschina 发布于 4年前 42
JVM 平台上的各种语言的开发指南
Why do we need somany JVM languages? It’s 2013 and you have over 50 JVM languages to choose from for your next project. But even if you can name more than a dozen or s...
Sub 发布于 4年前 19
Java 8 详解之默认方法
在上篇文章中我们了解了 Java 8里的 lambdas表达式 ,它被证明是个非常受欢迎的主题。现在我们看一下默认方法,来继续我们 Java 8 新特性之旅。 默认方法和lambdas表达式关系密切...
oschina 发布于 4年前 13
关于 Java 性能方面的 9 个谬论
Java性能问题被冠以某种黑暗魔法的称谓。一部分是因为其平台的复杂性,在很多情况下,无法定位其性能问题根源。然而,在以前对于Java性能的技巧,有一种趋向:认为其由人们的智慧,经...
oschina 发布于 5年前 179
如何编码实现内存溢出
这将会是一篇比较邪恶的文章,当你想在某个人的生活中制造悲剧时你可能会去google搜索它。在Java的世界里,内存溢出仅仅只是你在这种情况下可能会引入的一种bug。你的受害者会在办公...
oschina 发布于 5年前 22
Java 8 的新特性和改进总览
这篇文章是对Java 8中即将到来的改进做一个面向开发者的综合性的总结,JDK的这一特性将会在2013年9月份发布。 在写这篇文章的时候,Java 8的开发工作仍然在紧张有序的进行中,语言特...
JoeyBlue 发布于 5年前 85
使用 Eclipse 调试 Java 程序的 10 个技巧
你应该看过一些如《关于调试的N件事》这类很流行的帖子 。假设我每天花费1小时在调试我的应用程序上的话,那累积起来的话也是很大量的时间。由于这个原因,用这些时间来重视并了解所...
oschina 发布于 5年前 49
Java 编程中关于异常处理的 10 个最佳实践
异常处理在编写健壮的Java应用的过程中,扮演着一个重要的角色。它并不是应用的功能需求,且需要优雅的处理任何错误情况,例如资源不可用,错误的输入,null输入等等。Java提供几个异...
oschina 发布于 5年前 26
Java 的序列化 (Serialization) 教程
Java提供一种机制叫做序列化,通过有序的格式或者字节序列持久化java对象,其中包含对象的数据,还有对象的类型,和保存在对象中的数据类型。 所以,如果我们已经序列化了一个对象,...
oschina 发布于 5年前 6
java.util.concurrent.Future 类基础
我通过《回到Future》这个工作主题开始写一系列的关于探讨编程语言的Futrure概念的文章。Futrues是非常重要的抽象,甚至随着异步,事件驱动,并行和扩展系统的发展显得更加重要。在第...
oschina 发布于 5年前 5
延迟加载有助于提升性能和降低内存使用率
在使用多个对象或者大数据结构时,一种提升其性能的方式是运用延迟加载或赋值(来实现)。将费时的操作尽可能的缩短的想法,从未实现。我通过一些例子来说明延迟加载技术在Java中如何...
oschina 发布于 5年前 3
[Java] 多线程环境下使用 DateFormat
DateFormat 类是一个非线程安全的类。javadocs 文档里面提到"Date formats是不能同步的。 我们建议为每个线程创建独立的日期格式。 如果多个线程同时访问一个日期格式,这需要在外部...
oschina 发布于 5年前 20
在 Sublime Text 2 中编译和运行 Java 程序
Sublime Text 2 是我最喜欢用来编码的文本编辑器,如果你尝试使用后相信你也会喜欢上它的。在这篇文章中我们将讨论如何在 Sublime Text 2 中编译和运行 Java 程序。...
oschina 发布于 5年前 35
浅谈Java中的几种随机数
众所周知,随机数是任何一种编程语言最基本的特征之一。而生成随机数的基本方式也是相同的:产生一个0到1之间的随机数。看似简单,但有时我们也会忽略了一些有趣的功能。
彭博 发布于 5年前 0
异常处理的 15 个原则
见过很多人在进行异常处理的时候,直接一个 e.printStackTrace() 就完成了,这是一种非常粗陋的做法,首先会导致应用日志的大量错误信息,而很多时候你都不知道这些错误信息因何发生...
彭博 发布于 5年前 0
为什么Java程序占用的内存比实际分配给它的要多
很多人错误的认为运行Java程序时使用-Xmx和-Xms参数指定的就是程序将会占用的内存,但是这实际上只是Java堆对象将会占用的内存。堆只是影响Java程序占用内存数量的一个因素。要更好的...
曾沙 发布于 5年前 0
Java 中 HashMap 的工作机制
现在很多的Java程序员都会把HashMap当作一个热门话题,今天我也来说一说Hashmap。  我假设你对HashMap感兴趣,另外我认为你已经了解了HashMap的基础,这里我就不再赘述HashMap是个什...
彭博 发布于 5年前 1
一见钟情!Java闭包
在2013年将发布的 JavaSE8 中将包含一个叫做 Lambda Project 的计划,在今年6月份的 JSR-335 草案中有描述。  JSR-335 将闭包引入了 Java 。闭包在现在的很多流行的语言中都存在,例...
彭博 发布于 5年前 0
一个更好Java Shell 脚本包装
在许多Java工程中,经常会看到带有程序自定义参数调用Java命令的包装shell脚本。例如, $ANT_HOME/bin/ant, $GROOVY_HOME/bin/groovy ,甚至在我们的TimeMachine Scheduler程序中也能...
王振威 发布于 5年前 0
Java 8 Lambda 表达式:模拟 Mixin 实现类的多重继承
Java 8 开始出现,带来一个全新特性:使用 Lambda 表达式 (JSR-335) 进行函数式编程。今天我们要讨论的是 Lambda 的其中一部分:虚拟扩展方法,也叫做公共辩护(defender)方法。该特...
曾沙 发布于 5年前 0
8种常见的Java不规范代码
在工作上,我最近对一个现有的Java项目代码进行了清理。完成之后,我发现了一些反复出现的不规范代码。所以,我把它们整理成了一个列表出来分享给我的同行希望能引起注意并改善代码的...
彭博 发布于 5年前 1
顶部