- 浏览: 1248396 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (193)
- ant/maven (6)
- algorithm (5)
- tomcat/weblogic/jboss (6)
- javascript/jquery (13)
- java (33)
- flex/flash (0)
- JPA/Hibernate/myBatis (18)
- java concurrent (7)
- test (2)
- windows/linux (6)
- java collection (7)
- design pattern (2)
- life/health (3)
- database (12)
- IDE (4)
- spring/ejb (20)
- html/css/ckeditor (7)
- jsp/servlet (3)
- java io (13)
- java security (4)
- jni (0)
- svn/git (2)
- english (2)
- java jmx (1)
- xml (1)
- struts/springmvc (9)
- middleware (2)
- cache (1)
- cglib (3)
最新评论
-
jlotusYo:
博主,真感谢。
Java 密码扩展无限制权限策略文件 -
senninha:
这个。。是api说明吧。。
ScheduledExecutorService 源码分析 -
zoutao2008:
请问大文件如何处理?按你这种方式的话,文件超过200M时就会报 ...
hessian系列之二:上传文件 -
lwj1113:
lwj1113 写道谢谢博主这么细致的demo;在系列五中通过 ...
myBatis系列之五:与Spring3集成 -
lwj1113:
谢谢博主这么细致的demo;在系列五中通过testng测试类跑 ...
myBatis系列之五:与Spring3集成
所有的Java枚举类型都继承自该抽象类。我们用关键字enum来声明枚举类型,不可以通过显式继承该抽象类的方式来声明。
public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable { private final String name; // 当前枚举常量名称 public final String name() { return name; } private final int ordinal; // 当前枚举常量次序,从0开始 public final int ordinal() { return ordinal; } // 专有构造器,我们无法调用。该构造方法用于由响应枚举类型声明的编译器发出的代码。 protected Enum(String name, int ordinal) { this.name = name; this.ordinal = ordinal; } // 返回枚举常量的名称,默认是返回name值。可以重写该方法,输出更加友好的描述。 public String toString() { return name; } // 比较当前枚举常量是否和指定的对象相等。因为枚举常量是单例的,所以直接调用==操作符。子类不可以重写该方法。 public final boolean equals(Object other) { return this==other; } // 返回该枚举常量的哈希码。和equals一致,该方法不可以被重写。 public final int hashCode() { return super.hashCode(); } // 因为枚举常量是单例的,所以不允许克隆。 protected final Object clone() throws CloneNotSupportedException { throw new CloneNotSupportedException(); } // 比较该枚举常量和指定对象的大小。它们的类型要相同,根据它们在枚举声明中的先后顺序来返回大小(前面的小,后面的大)。子类不可以重写该方法 public final int compareTo(E o) { Enum other = (Enum)o; Enum self = this; if (self.getClass() != other.getClass() && // optimization self.getDeclaringClass() != other.getDeclaringClass()) throw new ClassCastException(); return self.ordinal - other.ordinal; } // 得到枚举常量所属枚举类型的Class对象 public final Class<E> getDeclaringClass() { Class clazz = getClass(); Class zuper = clazz.getSuperclass(); return (zuper == Enum.class) ? clazz : zuper; } // 返回带指定名称的指定枚举类型的枚举常量。名称必须与在此类型中声明枚举常量所用的标识符完全匹配。不允许使用额外的空白字符。 public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name) { T result = enumType.enumConstantDirectory().get(name); if (result != null) return result; if (name == null) throw new NullPointerException("Name is null"); throw new IllegalArgumentException( "No enum const " + enumType +"." + name); } // 不允许反序列化枚举对象 private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { throw new InvalidObjectException("can't deserialize enum"); } // 不允许反序列化枚举对象 private void readObjectNoData() throws ObjectStreamException { throw new InvalidObjectException("can't deserialize enum"); } // 枚举类不可以有finalize方法,子类不可以重写该方法 protected final void finalize() { } }
发表评论
-
Netty系列之二、Netty组件
2014-10-12 19:55 0Netty主要由以下几个组件构成: Bootstrap o ... -
Netty系列之二:传输方式
2014-09-17 22:35 0NIO (Non-blocking I/O) io.netty ... -
Java正则表达式实例
2014-08-25 22:50 1934题目: 有两个文件context.txt和words ... -
quartz系列之九:存储
2014-08-05 13:16 0这里以1.8.x为例: 任务 ... -
JVM 四种引用
2014-04-24 19:56 17641. 强引用 指通过普通 ... -
Proxy 源码分析
2014-04-21 10:47 0public class Proxy implements ... -
NIO UDP 编程
2014-04-17 23:18 4251和TCP的SocketChannel类似,UDP的Dat ... -
Matcher 源码分析
2014-04-15 14:45 0首先看下接口: public interface Matc ... -
BTrace 使用
2014-03-20 18:03 0简介 Btrace (Byte Trace)是Sun推出的一款 ... -
NIO Socket 编程
2014-04-11 22:48 1660Java NIO (Nonblocking IO)解决了常规I ... -
hessian系列之二:上传文件
2014-02-17 17:16 6221hessian较早版本通过 byte[] 进行文件传输;4.0 ... -
hessian系列之三:与Spring集成
2014-02-17 20:21 17886Spring封装了hessian客户端和服务端的通用代码,把实 ... -
hessian系列之一:Hello world
2014-01-06 20:51 2296Hessian是一个Web Service的轻量级二进制协议, ... -
XStream:自定义转换器
2013-12-30 22:47 0XStream是一款不错的oxm (Object-XML ma ... -
Http连接工具类
2013-12-28 16:13 0public class HttpConnUtil { ... -
Integer源码分析
2013-12-26 19:59 0private static String toU ... -
全排序
2013-12-23 21:02 0写一个函数, 如 foo(String str), 打印出 s ... -
logback系列之四:输出日志到不同文件
2013-12-03 16:25 69000logback系列之一:输出日志到控制台 logback系列之 ... -
Properties 源码分析
2013-11-26 10:32 01. Properties类扩展了Hashtable,用来保存 ... -
logback系列之三:输出日志到文件(滚动)
2013-11-16 23:37 64406logback系列之一:输出日志到控制台 logback系列之 ...
相关推荐
在这个“enum 结构分析源码”资源中,我们主要关注的是C语言中的枚举使用和实现。C语言中的enum并不是一种真正的类型,而是对整型变量的一种别名,它提供了更易读的常量名称。 首先,我们来看`enum.c`这个源文件。...
3. 枚举源码分析: Java枚举的源码实现中,每个枚举实例都是类的一个静态常量,存储在类的静态域中。`Enum`类提供了许多用于操作枚举的内置方法,如`name()`返回枚举常量的名称,`compareTo()`比较枚举实例的顺序等...
通过深入学习和实践这些源码,读者不仅可以掌握Java编程的基本技能,还能提升分析问题和解决问题的能力。在实际工作中,这样的实践经验将极大地提高编程效率和代码质量。所以,这个压缩包是一份非常宝贵的资料,值得...
通过分析和学习这个源码,我们可以深入了解Java游戏开发的基础知识,以及如何使用Java来创建交互式的娱乐应用程序。 首先,Java作为一款跨平台的编程语言,具有丰富的类库和强大的性能,适合开发各种类型的游戏。在...
在Java编程领域,创建一个日历应用是一项常见的练习,它能帮助开发者巩固基础并实践面向...通过分析和理解源码,开发者不仅可以了解如何创建一个实用的日历应用,还能深入理解Java的图形用户界面设计和时间日期操作。
本资源"Java源码查看枚举类型定义.rar"包含了关于Java枚举类型的详细解释和实例,旨在帮助开发者深入理解这一特性。 首先,枚举类型在Java中通过关键字`enum`声明。例如: ```java public enum Color { RED, ...
学习和分析这样的源码可以帮助提升Java编程技能,理解实际项目中的编程实践,同时也可以借鉴优秀代码的编写方式。对于初学者来说,这是一个了解实际项目结构和编程习惯的好机会;对于有经验的开发者,它可以提供新的...
源码中可能会有枚举(Enum)或类来表示这些状态。 8. **游戏逻辑**:源码会展示如何实现方块的生成、移动、旋转、碰撞检测、得分计算等核心逻辑。这部分涉及复杂性较高,但也是学习的重点。 9. **资源管理**:如果...
【Java贪吃蛇游戏源码解析】 在编程领域,实现一款经典的贪吃蛇游戏是学习基础编程和控制台交互的好方法。本项目是使用Java语言编写的...通过分析和理解源码,开发者可以提升自己的编程技能,同时享受游戏开发的乐趣。
源码分析: 1. **项目结构**:压缩包中的文件结构通常是Java项目的标准布局。`推箱子.iml`是IntelliJ IDEA项目的配置文件,`src`目录存放源代码,`out`目录包含编译后的字节码文件,`.idea`目录存储IDE的项目设置,...
【标题】基于Java的扫雷源码分析 在编程领域,扫雷游戏是常见的学习项目,因为它涉及到逻辑推理、二维数组操作以及用户交互等多方面的技术。本篇将深入探讨一个基于Java实现的扫雷游戏的源码,帮助读者理解Java编程...
通过分析和理解这段源码,不仅可以提高Java编程技能,还能深入理解游戏开发的基本原理。记得查看提供的"下载及使用说明.txt"来获取源码的使用指南,以及使用"查看文件解压密码(网址即为解压密码).url"提供的网址...
6. **枚举类型Enum**:解释了Java中枚举类型的用法,以及如何创建和使用枚举常量。 7. **迭代器Iterator**:阐述了迭代器接口及其作用,如何通过迭代器遍历集合。 ### 第9章:文件与流 本章关注Java中的文件操作和...
总之,"java象棋开发源码"项目涵盖了从基础编程到高级算法的多个方面,对于学习Java和游戏开发的开发者来说,是一个很好的实践和学习素材。通过分析和理解这段代码,你可以提升自己的编程能力,同时也能了解到如何将...
2. 胜负判断:AI不仅需要计算自己的胜利路径,还要防止对方形成五子连珠,因此会涉及到复杂的棋局分析。 四、资源管理 "META-INF"目录通常包含元数据,如MANIFEST.MF文件,它记录了类加载器如何查找和加载类。在...
Java贪吃蛇是一款基于Java编程语言开发的经典游戏,它的源码是学习Java基础、...通过分析Java贪吃蛇的源码,开发者不仅可以学习到上述知识点,还能深入了解如何将理论知识应用于实际项目,提升编程技能和问题解决能力。
通过学习和分析Java版的俄罗斯方块源码,不仅可以掌握基本的游戏开发流程,还能加深对Java语言的理解,提升编程技巧。此外,这种简单的项目也是实践和学习多线程、图形库(如JavaFX或Swing)以及游戏AI的好起点。 ...
《Core Java 7th Edition》是Java编程领域的一本经典著作,主要面向...通过分析和修改这些源码,可以加深对Java编程的理解,提高编程技能。对于想要深入理解Java 7的开发者来说,这本书和源码都是不可多得的学习资源。
通过阅读和分析"Java_java_源码.rar"中的源码文件,可以深入理解项目的架构、设计模式、算法和数据结构,从而提升编程技能。同时,这也是学习和研究开源项目、参与社区贡献以及解决实际问题的重要方式。
《俄罗斯方块》是一款经典的游戏,它以简单的规则和高度的可玩性赢得了全球玩家的喜爱...在分析提供的`codefans.net`文件中,很可能是包含了一个完整的《俄罗斯方块》Java源码实现,可以从代码中学习到实际的应用示例。