Archive for Java

运行时动态增加枚举类型

运行时动态增加枚举类型 最近在使用一个内部框架的时候,希望能够在运行时指定枚举类型,却发现这是一件挺麻烦的事情(不找别的替代方式,就是要动态增加enum的类型),方法也不正统,不过作为有趣的尝试,研究研究也无妨,下面的内容主要来自于《Java – create enum instances dynamically》这样一篇文章。在一切开始前,如果你想问,为什么非要增加/改变enum类型?其实这是一个非常好的问题,多数情

[......]阅读全文

分享到:

泛型趣谈

泛型趣谈

Java中的泛型带来了什么好处?规约。就像接口定义一样,可以帮助对于泛型类型和对象的使用上,保证类型的正确性。如果没有泛型的约束,程序员大概需要在代码里面使用大量的类型强制转换语句,而且需要非常清楚没有标注的对象实际类型,这是容易出错的、恼人的。但是话说回来,泛型可不只有规约,还有很多有趣的用法,容我一一道来。

 

泛型擦除

Java的泛型在编译阶段实际上就已经被擦除了(这也是

[......]阅读全文

分享到:

Java8集合中的Lambda表达式

Java8集合中的Lambda表达式

本文翻译自《Java 8 Explained: Applying Lambdas to Java Collections》。

Lambdas表达式是Java 8的主题,在Java平台上我们期待了很久。但是,如果如果我们不在集合中使用它的话,就损失了很大价值。把现有接口迁移成为lambda风格接口的问题已经通过default methods,也就是defender methods解决了。在这篇

[......]阅读全文

分享到:

Java的日期API真烂

Java的日期API真烂 记得在我刚学Java的时候,真是搞不清楚Date和Calendar这两个类,后来我渐渐知道,原来不能全怪我啊,Java日期API之烂是公认的(不妨参见这篇文章,Tiago Fernandez做过一个投票,就是要选举最烂的Java API,结果Java日期API排行第二,仅次于臭名远扬的EJB2,嘿嘿)。

蛋疼的java.sql.Date

只有Date和Calendar搞定一切吗?那还好啊。当

[......]阅读全文

分享到:

你真的精通Java吗?

你真的精通Java吗? 简历和自我介绍上经常能够读到“精通Java”这样的话,有人和我说,精通Java的人太多了,精通Java已经不能算亮点、不能给自己加分了。可是事实真是这样吗?

对于语言的学习,我有一种观点,一是纵向,即要选择一门自己认为合适的语言学到有相当的深度。二在于横向,即要学习不同类型、不同历史和不同门派的语言:

  1. 既有底层的语言,也有高级语言;
  2. 接触一些动态语言、函数式

[......]阅读全文

分享到:

J2EE 核心模式学习理解和记录

第1章:导论

模式能够:

  • 利用一个经过验证可行的解决方案;
  • 提供一套通用词汇;
  • 约束解决方案的空间。

第2章:表现层设计考虑和不佳实践

客户端验证:基于表单的验证、基于抽象类型的验证。

曾经在JSP中滥用过的助手类,通过助手类在页面和业务逻辑之间传递数据,有点类似于如今Struts中的Action作为传值模型时的情况。

表现层不佳实践:

  • 多个视图中都包含控制代码;
  • 表现层数据结构暴露给业务

[......]阅读全文

分享到:

看JDK源码,解几个疑问

看JDK源码,解几个疑问 1、Java定时器原理是怎么样的?

解包jdk_sec-1_5_0-src-jrl,在/j2se/src/share/classes/java/util中找到Timer类。

private TaskQueue queue = new TaskQueue();
private TimerThread thread = new TimerThread(queue);

我找到了一个Timer的任务队列,

[......]阅读全文

分享到:

动手实现随机验证码

动手实现随机验证码 见过好几种类型的验证码,一开始觉得验证码的生成很神奇,后来发现验证码也是可以用Java轻松实现的。今天就来做一做这件事情。

首先,来写一个画验证码图片的Java类:

package com.xxx.validationCode;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.a

[......]阅读全文

分享到:

Preview on Feedage: