`
eimhee
  • 浏览: 2150751 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java Enum的原理

    博客分类:
  • JAVA
阅读更多

Java Enum 类型的语法结构尽管和 java 类的语法不一样,应该说差别比较大。但是经过编译器编译之后产生的是一个 class 文件。该 class 文件经过反编译可以看到实际上是生成了一个类,该类继承了 java.lang.Enum<E>.

WeekDay (javap WeekDay 命令 之后得到的内容如下 ( 去掉了汇编代码 )

public final class WeekDay extends java.lang.Enum{ public static final WeekDay Mon; public static final WeekDay Tue; public static final WeekDay Wed; public static final WeekDay Thu; public static final WeekDay Fri; public static final WeekDay Sat; public static final WeekDay Sun; static {}; public static void printDay(int); public java.lang.String getDay(); public static WeekDay[] values(); public static WeekDay valueOf(java.lang.String); }


 

所以实际上 Enum 类型就是以 Java 类来实现的,没有什么新的特点,只不过 java 编译器帮我们做了语法的解析和编译。完全也可以自己实现。但是既然有这样方便一个东西,当然会去用了。

1
10
分享到:
评论

相关推荐

    Java中的Enum枚举用法.doc

    ### Java中的Enum枚举用法详解 #### 一、引言 在Java编程语言中,枚举(Enum)是一种特殊的数据类型,它被用来表示一组固定的常量集合。相比于使用常量接口或字符串来表示固定集合,枚举提供了更加安全且易于管理的...

    java 枚举(enum) 详解(学习资料)

    Java 枚举(enum)是 Java 语言中的一个重要特性,自 Java 5 开始引入。枚举用于定义一组相关的常量,这些常量通常代表一个有限的、预定义的值集合。枚举类是一种特殊的类,它具有以下特点: 1. **枚举类的声明**:...

    enum 结构分析源码

    而在更现代的语言如C#或Java中,枚举是一种完全独立的类型,可以拥有方法和属性,这使得枚举更加灵活且功能强大。 总的来说,理解和掌握枚举的使用对于任何C语言开发者来说都是至关重要的,它能帮助我们编写更加...

    Java面试枚举从使用到原理

    本篇文章将深入探讨Java枚举的使用及其背后的原理。 一、枚举的定义与使用 1. 基本用法: 在Java中,枚举可以通过`enum`关键字来创建。例如,我们可以定义一个表示一周七天的枚举类型: ```java public enum ...

    java通过jna返回结构体例子.rar

    Java通过JNA(Java ...通过理解JNA的工作原理,创建对应的Java结构体类,以及正确地传递和解析结构体指针,可以有效地在Java和C之间进行数据交换。对于需要跨平台或利用C库的Java开发者来说,这是一个重要的技能。

    Java面试要点(适用于2年以上经验,1年亦可)

    1. Java 中语法糖原理、解语法糖 并发编程 1. 什么是线程,与进程的区别 2. 阅读源代码,并学会使用Thread、Runnable、Callable、ReentrantLock、ReentrantReadWriteLock、Atomic*、Semaphore、CountDownLatch、、...

    Java坦克大战图片资源

    在Java编程领域,坦克大战是一款经典的基于控制台的游戏,它能帮助初学者理解游戏开发的基本原理,如对象交互、碰撞检测以及多线程等。在这个Java坦克大战的图片资源中,开发者显然对游戏进行了视觉升级,增加了丰富...

    Java语言程序设计 基础篇 第10版 梁勇 答案

    14. **JVM内存管理**:理解Java虚拟机(JVM)的工作原理,包括堆内存、栈内存、方法区等,以及垃圾回收机制,对优化程序性能至关重要。 15. **Java标准库API**:熟练掌握Java标准库如Math、Collections、Arrays等...

    JAVA學習手冊

    9. **JAVA高级特性**:包括枚举(enum)、注解(annotation)、Lambda表达式、Stream API等,这些都是JAVA 8及以后版本引入的新特性。 10. **JAVA开发工具**:介绍Eclipse、IntelliJ IDEA等主流JAVA集成开发环境...

    Java switch case数据类型原理解析

    "Java switch case 数据类型原理解析" Java switch case 语句是 Java 语言中的一种控制流语句,用于判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。switch 语句的语法格式如下: switch(expression...

    贪吃蛇游戏java版源码

    8. **注释**:源码中的详细注释是学习的关键,它们解释了代码的功能和工作原理。良好的代码注释可以帮助初学者更好地理解复杂的代码结构。 9. **调试与测试**:熟悉IDE(集成开发环境)的调试工具,如断点、单步...

    java1.6 英文api文档

    通过深入学习和实践Java 1.6的英文API文档,开发者可以更好地理解Java平台的工作原理,编写出高效、可靠的代码。这份文档不仅是学习工具,也是日常开发中不可或缺的参考资料。无论是初学者还是经验丰富的开发者,都...

    Java剪刀石头布小游戏源码整理

    3. **枚举类型(Enum)**:Java中的枚举用于定义一组固定的常量,非常适合表示游戏中的石头、剪刀、布这三个选项。通过枚举,我们可以确保只有这三种合法选择,并且方便比较它们之间的胜负关系。 4. **随机数生成**...

    Java rpc xdr的使用

    ### Java RPC XDR 使用详解 #### 一、RPC 概念与原理 ##### 1.1 RPC 定义 远程过程调用 (Remote Procedure Call, RPC) 是一种协议,允许在一个计算机上的程序调用另一个网络上的计算机上的子程序,而无需程序员...

    最新Java面试题及答案(Java基础、设计模式、Java虚拟机(jvm))

    随着版本的更新,从Java 5开始,`switch`语句还可以接受`enum`类型;从Java 7开始,又支持了`String`类型。但值得注意的是,`long`类型一直不被支持。 **1.6 计算方法** - 使用位运算进行乘法运算:`2 相当于`2 * ...

    The Java Language Specification 3.0

    《Java语言规范3.0》是Java开发的关键文档,它定义了Java编程语言的语法、语义以及编译器的行为。这份规范是Java 2 Standard...通过阅读这本规范,开发者能够深入理解Java的底层原理,从而编写出更高效、更可靠的代码。

    Java知识大讲堂,希望大家能下载

    Java的自动内存管理机制使得开发者无需手动释放内存,但理解其工作原理有助于避免内存泄漏。同时,理解Java集合框架(如ArrayList、LinkedList、HashMap等)的内部工作机制,将极大地提高代码的效率和可读性。 Java...

    enum_func.zip_FRIDA_frida hook_hook enum_安卓hook

    1. **Frida原理**:Frida工作于进程注入模式,它能够将自身注入到目标进程中,然后通过JavaScript来实现对目标进程的代码插桩。JavaScript代码在目标进程中运行,可以直接操作内存、API调用等,提供极高的灵活性。 ...

    Java猜拳游戏源代码

    4. **枚举类型(Enum)**:为了表示石头、剪刀、布这三个选项,可以使用Java的枚举类型。枚举是一种特殊的类,可以定义一组预定义的常量,便于管理和使用。 5. **游戏逻辑**:猜拳游戏的胜负判断是基于以下规则:...

Global site tag (gtag.js) - Google Analytics