Java基础
peida
这个作者很懒,什么都没留下…
展开
-
重构代码学习笔记一:重构的原则
有没有那么一瞬间,你的代码写的让自己和兄弟们都感觉到很凌乱? 有没有那么一瞬间,有段代码就放在你眼前,你却读不懂它? 有没有那么一瞬间,你要花很长很长时间去读别人写的代码? 有没有那么一瞬间,你的参数过长却不知道怎么办? 重构代码,是每个程序员都需要具备的能力! 下面是整理的重构原则学习思维导图! ...原创 2012-09-12 13:43:00 · 44 阅读 · 0 评论 -
深入理解Java:注解(Annotation)基本概念
什么是注解(Annotation): Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。 Annotation(注解)是JDK5.0及以后版本引入的。它可以用...原创 2013-04-23 06:30:00 · 51 阅读 · 0 评论 -
深入理解Java:注解(Annotation)自定义注解入门
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target, 2...原创 2013-04-24 08:44:00 · 47 阅读 · 0 评论 -
深入理解Java:注解(Annotation)--注解处理器
如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement): Java使用Annotation接口来代表程序元素前面的注解,该接口是所有A...原创 2013-04-26 08:30:00 · 51 阅读 · 0 评论 -
深入理解Java:SimpleDateFormat安全的时间格式化
想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。...原创 2013-05-31 18:07:00 · 65 阅读 · 0 评论 -
深入理解Java:内省(Introspector)
一些概念: 内省(Introspector) 是Java 语言对 JavaBean 类属性、事件的一种缺省处理方法。 JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值对象”(Value Object),或“VO”。...原创 2013-06-03 14:57:00 · 138 阅读 · 0 评论 -
Guava学习笔记:Google Guava 类库简介
Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻...原创 2013-06-08 11:24:00 · 64 阅读 · 0 评论 -
Guava学习笔记:Optional优雅的使用null
在我们学习和使用Guava的Optional之前,我们需要来了解一下Java中null。因为,只有我们深入的了解了null的相关知识,我们才能更加深入体会领悟到Guava的Optional设计和使用上的优雅和简单。原创 2013-06-14 15:42:00 · 85 阅读 · 0 评论 -
Guava学习笔记:Preconditions优雅的检验参数
在日常开发中,我们经常会对方法的输入参数做一些数据格式上的验证,以便保证方法能够按照正常流程执行下去。对于可预知的一些数据上的错误,我们一定要做事前检测和判断,来避免程序流程出错,而不是完全通过错误处理来保证流程正确执行,毕竟错误处理是比较消耗资源的方式。原创 2013-06-17 09:03:00 · 68 阅读 · 0 评论 -
Guava学习笔记:复写的Object常用方法
在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,hashCode和toString等方法。每次写这几个方法都要做很多重复性的判断, 很多类库提供了覆写这几个方法的工具类, Guava也提供了类似的方式。下面我们来看看Guava中这几个方法简单使用。原创 2013-06-18 16:19:00 · 67 阅读 · 0 评论 -
Guava学习笔记:Ordering犀利的比较器
Ordering是Guava类库提供的一个犀利强大的比较器工具,Guava的Ordering和JDK Comparator相比功能更强。它非常容易扩展,可以轻松构造复杂的comparator,然后用在容器的比较、排序等操作中。原创 2013-06-24 14:38:00 · 62 阅读 · 0 评论 -
Guava学习笔记:简化异常处理的Throwables类
有时候, 当我们我们捕获异常, 并且像把这个异常传递到下一个try/catch块中。Guava提供了一个异常处理工具类, 可以简单地捕获和重新抛出多个异常。原创 2013-07-01 16:51:00 · 97 阅读 · 0 评论 -
Guava学习笔记:Immutable(不可变)集合
不可变集合,顾名思义就是说集合是不可被修改的。集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变。原创 2013-07-04 09:03:00 · 64 阅读 · 0 评论 -
Guava学习笔记:Guava新增集合类型-Multiset
Guava引进了JDK里没有的,但是非常有用的一些新的集合类型。所有这些新集合类型都能和JDK里的集合平滑集成。...原创 2013-07-08 13:18:00 · 93 阅读 · 0 评论 -
Guava学习笔记:Guava新增集合类型-Multimap
在日常的开发工作中,我们有的时候需要构造像Map<K, List<V>>或者Map<K, Set<V>>这样比较复杂的集合类型的数据结构,以便做相应的业务逻辑处理。例如:import java.util.ArrayList;import java.util.HashMap;import java.util.List;...原创 2013-07-09 16:51:00 · 68 阅读 · 0 评论 -
Guava学习笔记:Guava新增集合类型-Bimap
BiMap提供了一种新的集合类型,它提供了key和value的双向关联的数据结构。 通常情况下,我们在使用Java的Map时,往往是通过key来查找value的,但是如果出现下面一种场景的情况,我们就需要额外编写一些代码了。首先来看下面一种表示标识序号和文件名的map结构。 @Test public void logMapTest(){ M...原创 2013-07-10 11:37:00 · 75 阅读 · 0 评论 -
Guava学习笔记:Guava新集合-Table等
Table 当我们需要多个索引的数据结构的时候,通常情况下,我们只能用这种丑陋的Map<FirstName, Map<LastName, Person>>来实现。为此Guava提供了一个新的集合类型-Table集合类型,来支持这种数据结构的使用场景。Table支持“row”和“column”,而且提供多种视图。 @Test public...原创 2013-07-11 11:34:00 · 67 阅读 · 0 评论 -
Guava学习笔记:Guava cache
缓存,在我们日常开发中是必不可少的一种解决性能问题的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。原创 2013-07-29 14:11:00 · 99 阅读 · 0 评论 -
Guava学习笔记:EventBus
EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和接口层次结构。 Observer模式是比较常用的设计模式之一,虽然有时候在具体代码里,它不一定叫这个名字,比如改头换面叫个Listener,但模式就是这个模式。手工实现一个Observer...原创 2013-07-31 08:01:00 · 74 阅读 · 0 评论 -
Guava学习笔记:Range
在Guava中新增了一个新的类型Range,从名字就可以了解到,这个是和区间有关的数据结构。从Google官方文档可以得到定义:Range定义了连续跨度的范围边界,这个连续跨度是一个可以比较的类型(Comparable type)。比如1到100之间的整型数据。 在数学里面的范围是有边界和无边界之分的;同样,在Guava中也有这个说法。如果这个范围是有边界的,那么这个范围又可以...原创 2013-08-01 08:30:00 · 75 阅读 · 0 评论 -
Guava学习笔记目录
Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻...原创 2013-08-01 08:58:00 · 74 阅读 · 0 评论