Java中如何避免空指针异常

原文地址  首发博客地址   译者:aCoder2013    校对:方腾飞

这个问题对于我来说是一个很常见的问题,这也是由初级程序员成长到中级程序员的时候经常会遇到的问题。程序员不知道或不信任正在使用的约定,并且小心的检查着null。还有当程序员写代码的时候,总是会依赖于通过返回空(NULL)来表明某些意义,因此需要调用者去检查Null。换种方式来说,有两种空指针的检查场景:

  1. 期望的结果就是null。
  2. 期望的结果不是null。

第二种很简单,可以通过用assert或者允许程序报错,例如抛出NullPointerException。Assertions是一个从Java1.4加进来的高度未被利用的特性,语法是:

阅读全文

Java Date Time 教程-时间测量

原文链接 作者:Jakob Jenkov  译者:魏嘉鹏

在Java中,用System.currentTimeMillis()来测量时间最方便。
你要做的是在某些操作之前获取到时间,然后在这些操作之后你想要测量时间,算出时间差。下面是一个例子:
[code lang=”java”]
long startTime = System.currentTimeMillis();
callOperationToTime();
long endTime = System.currentTimeMillis();
long totalTime = endTime – startTime;
[/code]
阅读全文

图解 Java IO : 二、FilenameFilter源码

Writer      :李强强

从上一篇 图解 Java IO : 一、File源码 并没有把所有File的东西讲完。这次讲讲FilenameFilter,关于过滤器文件《Think In Java》中写道:

更具体地说,这是一个策略模式的例子,因为list()实现了基本功能,而按着形式提供了这个策略,完善list()提供服务所需的算法。

java.io.FilenameFilter是文件名过滤器接口,即过滤出符合规则的文件名组。

阅读全文

Java Date Time 教程-System.currentTimeMillis()

原文链接 作者:Jakob Jenkov  译者:魏嘉鹏

静态方法System.currentTimeMillis() 返回从1970年1月1日到现在的总毫秒数。返回类型为long。下面是一个例子:
[code lang=”java”]
long timeNow = System.currentTimeMillis();
[/code]
阅读全文

Java Date Time 教程

原文链接 作者:Jakob Jenkov  译者:魏嘉鹏

目录

  • Java 8 Date Time API
  • Java 7 Date Time API

当你初次尝试弄明白怎么去使用Java的date time 的API的时候,那是相当令人困惑的。Therefore I have put together this little trail on Java’s date and time classes。希望这会让你对Java’的date类和time类有个总体的认识。我也希望这能消除一些Sun所制造的关于Java中许多date和time类的困惑。
实际上,在Java8中,随着一整套新的类的引入,旧有的date time API已经发生了改变(清除)。这个教程将会一起解释Java8和Java7的date time API.

阅读全文

《Java并发编程的艺术》第一章

封面立体图
作者:方腾飞  本文是样章  购买本书=》  当当 京东 天猫 互动

第1章并发编程的挑战

并发编程的目的是为了让程序运行的更快,但是并不是启动更多的线程,就能让程序最大限度的并发执行。在进行并发编程时,如果希望通过多线程执行任务让程序运行的更快,会面临非常多的挑战,比如上下文切换的问题,死锁的问题,以及受限于硬件和软件的资源限制问题,本章会介绍几种并发编程的挑战,以及解决方案。

阅读全文

图解 Java IO : 一、File源码

Writer      :李强强

记得Java源码是从集合类开始看的,写了一系列集合相关的文章,受到不错的评价。感谢各位读者。我依旧会读到老写到老,并生动形象的写出来心得体会。这次依旧是图解Java IO。

Java IO – File的要点,应该是

1、跨平台问题的解决

2、文件的安全

3、文件的检索方法

阅读全文

JavaEE 要懂的小事:三、图解Session(会话)

作者:李强强

相继 图解Http协议图解Cookie 之后,中间迷茫期哈,没写了!可是又要告诉你自己明明喜欢写为啥不写了!那就写吧,学到老学到老~ 然后写到老!本系列皆以图为主,力求简单易懂,娓娓道来。

阅读全文

Apache Velocity官方指南-资源

原文地址

对于程序员来说,这里有相当多的资源和示例可以获取到。我们推荐你查看我们的示例、文档甚至源代码。以下便是一些很好的途径:

  1. 用户和开发者社区:  通过此页加入我们。 从此页还可以获取到邮件列表的历史档案。
  2. 维基百科:  http://wiki.apache.org/velocity/ 。 Velocity的维基中包含了文章、样例代码和其他写作社区的精华内容。
  3. Frequently Asked Questions (FAQ):  http://wiki.apache.org/velocity/VelocityFAQ。  请访问此页来阅读最近的FAQ,并积极贡献出你们个人的解答。
  4. 源代码:  src/java/…。 Velocity项目中的所有源代码。

阅读全文

Velocity官方指南-应用程序的属性

原文地址    译者:肖竹  校对:方腾飞

应用程序属性

       应用程序属性是一种能够和运行时实例相关联(通过Velocity引擎或者Velocity单例)的键值对。它可以被Velocity引擎中任何运行时实例访问。这个特性是为了在应用层和Velocity引擎的特定部件之间通信的应用程序而设计的,比如日志记录器,资源加载器,资源管理器
      应用程序属性的API非常的简单。在应用层,Velocity引擎和Velocity类中都有下面这个方法:
阅读全文

JAVA性能优化调查结果(第二部分)

原文地址 原作者:Nikita Salnikov Tarnovski  译者 严亮 校对:方腾飞(清英)

这是我们在2014年10月做的性能调优调查结果系列的第2部分,如果您还没读过第1部分。我推荐先读第1部分。第2部分我们关注Java应用性能的监控问题。我们特别要尝试弄清楚下面几个问题:

  • 如何发现性能问题
  • 这些问题都有什么样的表现
  • 这些问题有多少会影响最终用户
  • 使用什么工具监控应用

阅读全文

Adopt Open JDK官方文档(三)对Adopt OpenJDK的初步了解

译文地址 译者:郑玉婷

3. 对Adopt OpenJDK的初步了解


阅读全文

Adopt Open JDK官方文档(四)基于虚拟机的编译环境

译文地址 译者:bobwenx@gmail.com

4.基于虚拟机的编译环境


  • 准备工作
  • 编译你自己的虚拟机
  • 编译你自己的轻量级虚拟机
  • 在Host 与 Guest VM 之间共享文件
  • 适用于 OpenJDK 8 的Vagrant Puppet 环境

阅读全文

Adopt Open JDK官方文档(八)OpenJDK 项目介绍

原文地址 译者:bobwenx  (bobwenx@gmail.com)

8.OpenJDK 项目介绍


对于其他项目,请参见OpenJDK http://mail.openjdk.java.net/mailman/listinfo 以及对应项目的Mailing Lists.

阅读全文

阿里内贸团队敏捷实践-敏捷回顾

原文地址 作者: 春平

回顾(review)是敏捷开发中的一个必不可少的实践,也是把整个敏捷开发过程连接成一个闭环的关键节点,本文将阐述我们是如何做敏捷回顾的。

敏捷回顾最高指导原则

ž无论我们发现了什么,考虑到当时的已知情况、个人的技术水平和能力、可用的资源,以及手上的状况,我们理解并坚信:每个人对自己的工作都已全力以赴。
敏捷回顾的目标
ž发现问题,持续改进。

阅读全文

return top