Guava 指南 之「通用 Object 方法」

通用 Object 方法equals当你的对象含有的多个字段可能为null的时候,实现Object.equals会很痛苦,因为你不得不分别对它们进行null检查。使用Objects.equal能够帮助你用一个对null敏感的方式执行equals检查,而不必冒着抛出NullPointerException的风险。例如:Objects.equal("a", "a"); // returns tru...
阅读(175) 评论(0)

快讯 | Java 9 正式发布,新特性解读

作者简介:杨晓峰,OpenJDK Committer,Oracle 首席工程师,Java 核心类库北京团队 leader。2011年加入 Oracle Java 团队,经历了从 JDK 7 到 JDK 9 的研发过程,目前领导 Java 核心类库团队,专注于 JDK 核心类库新特性的测试和开发,希望对 Java 技术的演进和普及做出贡献。加入 Oracle 前,就职于 IBM,从事 IBM 企业数据...
阅读(1047) 评论(2)

Guava 指南 之「前置条件」

前置条件Guava 提供了很多用于进行前置条件检查的工具,我们强烈建议静态导入这些方法。每个方法都用三种形式: 没有额外的参数。抛出的任何异常都没有错误信息。 有一个额外的Object参数。抛出的任何异常都带有一个object.toString()的错误信息。 有一个额外的String参数以及任意数量的附加Object参数。这些行为类似于printf,但是为了 GWT 兼容性和高效性仅允许%s,例如...
阅读(214) 评论(0)

Guava 指南 之「使用和避免 null」

使用和避免null “null,糟糕透啦!” —— Doug Lea. “我称呼null为百亿美金的错误!” —— C. A. R. Hoare. 轻率地使用null可能导致很多令人惊愕的问题。通过研究谷歌的代码,我们发现:95% 的集合不接受null作为元素,因此相比于默默地接受null,使用快速失败的操作拒绝null值对开发者更有帮助。此外,null的模糊性会让人很不爽。我们很难知道返...
阅读(381) 评论(0)

Guava 指南 之「Throwable」

异常传播有时候,当你捕获一个异常时,你想将其返回到下一个try/catch块。这样的例子有很多,例如在出现RuntimeException和Error的情况下,不需要try/catch块,你也不想捕获它们,但是它们仍然被try/catch块捕获。Guava 提供了一些工具类来简化异常传播。例如:try { someMethodThatCouldThrowAnything(); } catc...
阅读(351) 评论(0)

[置顶] Google Guava 中文指南

温馨提示:Guava 中文指南的 GitHub 地址为 guava-guide,欢迎大家Star、Fork,纠错。 Guava 中文指南  Guava 项目包含若干被 Google 的 Java 项目依赖的核心类库,例如:集合、缓存、原生类型支持、并发库、通用注解、字符串处理、I/O 等等。Google 的开发者们每天都在使用这些工具进行项目的开发。但是查阅 Javadoc 并不总是最有效的学习这些...
阅读(365) 评论(0)

帮助文档 | JDK 1.8 中的 Timer 类

1 Class Timer定时器Timer类位于java.util包,并且继承自根类Object,具体为: public class Timer extends Object 线程调度任务以供将来在后台线程中执行的功能。 任务可以安排一次执行,或定期重复执行。对应于每个 Timer 对象是单个后台线程,用于依次执行所有定时器的所有任务。 计时器任务应该快速完成。 如果一个定时器任务需要花费很多时间来...
阅读(181) 评论(0)

详述 Java 中的别名现象

在任何编程语言中,赋值操作都是最常见的操作之一,Java 自然也不例外。赋值时,使用赋值操作符=,它的意思是:“将等号右边的值(右值),复制给左边的值(左值)”。右值可以是任何常数、变量或者表达式(只要它能生成一个值就行)。但左值必须是一个明确的、已命名的变量。也就是说,必须有一个物理空间可以存储等号右边的值。例如:a = 4;就是将一个常数赋给一个变量。但是不能把任何东西赋给一个常数。对于基本数据...
阅读(470) 评论(2)

详述获取字节码文件及其内容的方法

1 简述Java 的反射机制是指: 在运行状态中,对任意一个类(class文件),都能知道这个类的所有属性和方法;对任意一个对象,都能调用这个对象的方法和属性。 简单点说,这种动态的获取信息和动态的调用对象的方法的功能就是 Java 的反射机制。利用 Java 的反射机制,我们可以非常容易的获取类的详细信息,如构造函数、成员变量和成员函数等。在接下来,博主将分别演示如何获取类编译后的字节码文件及获取...
阅读(646) 评论(0)

深入分析 Java 方法反射的实现原理

博主说:Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为 Java 语言的反射机制。在本文中,占小狼分析了 Java 反射机制的实现原理(源码),感兴趣的同学可以通过本文花上几分钟了解了解。 正文方法反射实例public class ReflectCase { pu...
阅读(746) 评论(2)

详述 Java 中过滤器 Listener 的工作原理及使用方法

1 监听器概念监听器 Listener 就是一个实现特定接口的 Java 程序,它是随 web 应用的启动而启动,只初始化一次,随 web 应用的停止而销毁。监听器的主要作用是:做一些初始化的内容添加工作或者设置一些基本的内容等等,例如监听器就可以用于统计在线人数或者自定义 session 扫描器等等。2 监听器分类根据监听的对象不同,可以划分为以下三种: 用于监听应用程序环境对象(ServletC...
阅读(457) 评论(0)

详述 Java 中过滤器 Filter 的工作原理及使用方法

1 简介  Filter 也称之为过滤器,它是 Servlet 技术中最激动人心的技术之一,WEB 开发人员通过 Filter 技术,对 web 服务器管理的所有 web 资源:例如 JSP、Servlet,、静态图片文件或静态 HTML 文件等进行拦截,从而实现一些特殊的功能。例如实现 URL 级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。      Servlet API 中...
阅读(688) 评论(2)

详述 Java 语言中的两种 for 循环

在 Java 语言中,用于循环的语句有两个,一个是 for 循环,一个是 while 循环。而 for 循环其实还有两种实现方法,对于初学者来说,或许仅知道一般的 for 循环,即:for(初始化条件; 限制条件; 迭代语句) { // 循环体 }而不太了解高级的 for 循环,即:for(变量类型 变量名 : 集合) { // 循环体 }在本文中,咱们就一起来了解了解这两种...
阅读(568) 评论(0)

用 Java 实现拦截器 Interceptor 的拦截功能

Java 里的拦截器是动态拦截 action 调用的对象。它提供了一种机制可以使开发者可以定义在一个 action 执行的前后执行的代码,也可以在一个 action 执行前阻止其执行,同时也提供了一种可以提取 action 中可重用部分的方式。在AOP(Aspect-Oriented Programming)中拦截器用于在某个方法或字段被访问之前进行拦截,然后在之前或之后加入某些操作。  此外,拦截...
阅读(2033) 评论(2)

详述 Java 语言中的格式化输出

1 前言相信大家在学习 Java 语言的时候,见到的第一条输出语句,就是:System.out.println("Hello World");毫无疑问,该语句的作用就是将Hello World打印到控制台,格式也非常的简单,直接按原格式输出。但是,如果将输出的内容换成“数值”或者“日期”呢?其打印的格式是否会有什么不同的变化呢?在本文中,就让咱们一起看一看在 Java 语言中,数值和日期是如何进行格...
阅读(422) 评论(0)
26条 共2页1 2 下一页 尾页
    个人资料
    • 访问:449969次
    • 积分:8609
    • 等级:
    • 排名:第2402名
    • 原创:235篇
    • 转载:75篇
    • 译文:11篇
    • 评论:705条
    博主的 GitHub 账号
    GitHub : Charies Gavin

        鉴于 CSDN 糟糕的用户体验,博主会将一些优质的文章迁移到 Charies Gavin's Blog  欢迎大家在 GitHub 上 Follow 博主,以及 Fork、Star、Watch 博主的项目。


      青春不老 奋斗不止


      好学若饥虚心若愚
    博客专栏