用的不多,但用的时候仅仅简单的使用,不太明白原理,今天就系统的学一下枚举。参考:java编程思想。 Update: 枚举可以当做数据字典来存储,通常只要一个字段即instance本身,toString()或者name()打印的string。 枚举的数据都是一个实例对象,比如 enum Test{A}中A就是一个对象,A的toString和name()的结果是“A”。而如果一个字符串为"A",可以转为对应的枚举实例:Test.valueOf("A") ---- 1.简单创建 枚举就是一个固定的集合,内容是声明
要想看源码,首先得有一个类吧,那么枚举类型到底是什么类呢?是enum吗?答案很明显不是,enum就和class一样,只是一个关键字,他并不是一个类,那么枚举是由什么类维护的呢,我们简单的写一个枚举:
blog.csdn.net/javazejian/article/details/71333103
枚举是我们在编码过程中常用的,比如电影有多种类型:喜剧片、动作片、恐怖片、爱情片、纪录片等等。在这种场景当中,我们可以编写一个枚举类(如MovieType)来进行表示。
枚举类型很早就在计算机语言中存在了,主要被用来将一组相似的值包含进一种类型中,这种类型的名称被定义成独一无二的类型描述符,这就是枚举类型。
在学习过程中,我们也只是在定义常量的时候,会意识到枚举的存在,而定义常量其实可以在类中实现,这时就会感觉枚举有点鸡肋。但在实际项目开发的过程中,枚举因相当迷人的特性而受到越来越多的关注。
Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等,订单的状态。
在编程语言中我们,都会接触到枚举类型,通常我们进行有穷的列举来实现一些限定。Java也不例外。Java中的枚举类型为Enum,本文将对枚举进行一些比较深入的剖析。
enum全称为enumeration,中文意为枚举,枚举简单的说就是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合。
什么是枚举?说实话,在我这些年的开发生涯中,用过枚举的次数大概两只手都可以数的过来。当然你不能说枚举一无是处,只能说是我对 Java 理解的还不够深刻,在可以使用枚举的时候并没有去使用。
完整代码示例如下: package com.merryyou.enmu; import java.util.EnumMap; import java.util.EnumSet; /** * Created on 2016/11/1 0001. * * @author zlf * @since 1.0 */ public class LightTest { //1.定义枚举类型 public static void main(String[] args) { /
本文介绍了枚举类的基本概念,使用方法,以及底层实现原理。帮助你更好地使用枚举类并且理解枚举类的内部实现细节。
上一篇文章复习介绍了JDK中注解的底层实现,跟注解一样比较常用,但是底层实现比较神秘的还有枚举类型。趁着国庆假期的最后两天,把JDK中枚举的底层实现也进行一次探究。
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看
当然不行,当2个线程同时执行getInstance方法时,都会执行第一个if判断,由于锁机制的存在,会有一个线程先进入同步语句,而另一个线程等待,当第一个线程执行了new Singleton()之后,就会退出synchronized的保护区域,这时如果没有第二重if判断,那么第二个线程也会创建一个实例,这就破坏了单例。
1>.枚举类型都隐式继承了java.lang.Enum类,因此不能继承其他类,但可以实现接口;
枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。
这篇文章介绍几个 Java 开发中可以进行性能优化的小技巧,虽然大多数情况下极致优化代码是没有必要的,但是作为一名技术开发者,我们还是想追求代码的更小、更快,更强。如果哪天你发现程序的运行速度不尽人意,可能会想到这篇文章。
执行 javac ColorEn.java 命令,生成 ColorEn.class 文件。
枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。 枚举在曰常生活中很常见,例如一个人的性别只能是“男”或者“女”,一周的星期只能是 7 天中的一个等。类似这种当一个变量有几种固定可能的取值时,就可以将它定义为枚举类型。
Java反射的API在JavaSE1.7的时候已经基本完善,但是本文编写的时候使用的是Oracle JDK11,因为JDK11对于sun包下的源码也上传了,可以直接通过IDE查看对应的源码和进行Debug。
Java中的基本数据类型只有8种,分别是 byte、short、int、long、float、double、char、boolean
本文原创首发CSDN,本文链接https://blog.csdn.net/qq_41464123/article/details/107633044 ,作者博客https://blog.csdn.net/qq_41464123 ,转载请带上本链接,谢谢配合。
Java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?以前我们都是采用这种方式定义的,很少采用enum 定义,所以也都没有注意过,面对突入起来的问题,还真有点不太清楚为什么有这样的定义。既然不明白就抽时间研究下吧。 Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型。要了解枚举类型,建议大家先打开jdk
Java1.5提供了关键字enum,能够通过该关键字方便得定义自己须要的枚举类型,比方
Java中的枚举类是我们平时写代码时经常会用到的一个类型,在我们创建枚举类之后,Java会默认在该类中为我们生成values、valueof 等方法。
在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
一个enum就像其他的类一样,可以拥有一系列的实例。 下面我们会举几个简单的例子说明如何使用Java中的enum。
枚举是Java1.5引入的新特性,通过关键字enum来定义枚举类。枚举类是一种特殊类,它和普通类一样可以使用构造器、定义成员变量和方法,也能实现一个或多个接口,但枚举类不能继承其他类.
最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?以前我们都是采用这种方式定义的,很少采用enum 定义,所以也都没有注意过,面对突入起来的问题,还真有点不太清楚为什么有这样的定义。既然不明白就抽时间研究下吧。 Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型。要了解枚举类型,建议大家先打开jdk 中的Enum类简单读一下,这个类里面
前面系列,我们介绍了Java中表示和操作数据的基本数据类型、类和接口,本节探讨Java中的枚举类型。 所谓枚举,是一种特殊的数据,它的取值是有限的,可以枚举出来的,比如说一年就是有四季、一周有七天,虽然使用类也可以处理这种数据,但枚举类型更为简洁、安全和方便。 下面我们就来介绍枚举的使用,同时介绍其实现原理。 基础 基本用法 定义和使用基本的枚举是比较简单的,我们来看个例子,为表示衣服的尺寸,我们定义一个枚举类型Size,包括三个尺寸,小/中/大,代码如下: public enum Size {
春节来临之际,祝大家新年快乐哈。整理了Java枚举的相关知识,算是比较基础的,希望大家一起学习进步。
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。
如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以 Color 枚举类型举例,它的枚举常量依次为 RED:0,GREEN:1,BLUE:2。
枚举虽然是一个比较基础的东西。但如果你能在具体的开发中,更优雅的定义枚举的话会让你的代码看起来清新脱俗,本文将介绍枚举的各种用法,特别后面的通过构造函数传参以后,让你在开发中,遇到枚举与int value之间切换时变得更优雅。 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 public enum Color { RED, GREEN, BLANK,
一、定义(语法) enum全称为enumeration,中文意为枚举,枚举简单的说就是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合。 创建枚举类型是需要用到enum关键字,如: public enum Color{ RED, GREEN, BLUE, BLACK, PINK, WHITE; } enum的语法看似与class不同,但它实际上就是一个类,经过编译器编译之后得到一个.class文件。 创建的枚举类型默认是java.lang.enum<枚
枚举可以理解为就是常量,在Java中我们定义常量.都是用 final语句. C++中都是用const关键字.
枚举类型是 Java 5 中增加的一个小特性,在此之前,实现枚举的方式为定义编译期常量形式。而代码中使用编译期常量的方式在理解性和安全性方面存在不足,单纯的常量数值不能够直观的体现出其作为枚举实例的目的,且实际中无限的取值空间也不能很好的与理论上有限的枚举空间相匹配。
概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。 在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下: enum Color { RED, GR
在第一次学习面向对象编程时,我记得最深的一句话就是“万物皆对象”。于是我一直秉承着这个思想努力的学习着JAVA,直到学习到枚举(Enum)时,看着它颇为奇怪的语法……我一直在想,这TM是个什么鬼???当时学习OOP时也是被类啊接口什么的整的有点昏头转向的于是就把这个小细节忽略掉了。后来到了公司工作后慢慢的又需要用上枚举了,看着它一副神秘兮兮的样子我还是决定要好好的深挖一下!以下链接是了解枚举时所参考的博客。如发现本文有错误或知识遗漏欢迎在评论中指正!
文章目录 1. 枚举例子 2. 接口的实现 3. 枚举中定义抽象方法 enum 定义了枚举类型,其继承于 Enum 枚举类 1. 枚举例子 import java.util.EnumMap; import java.util.EnumSet; import java.util.Iterator; import java.util.Map; class EnumDemo { public enum Color{ RED, GREEN, BLUE } public s
package com.lxq.enumm; public enum Color { RED{ public String getName(){ return "红色"; } } ,GREEN{ public String getName(){ return "绿色"; } } ,YELLOW{ public String getName()
JDK1.5之前需要自定义枚举类 JDK 1.5 新增的 enum 关键字用于定义枚举类 若枚举只有一个对象, 则可以作为一种单例模式的实现方式。
Enum是一种受限制的类,编译时IDE会为enum生成一个相关的类,这个类继承自 java.lang.Enum,且具有自己的方法
在Android开发工作中,我们都或多或少接触过代码混淆。比如我们想要集成某个SDK,往往需要做一些排除混淆的操作。
一般来说,在switch语句中只能使用整数值或者字符串,但是枚举实例天生就具备了整数值的次序,并且可以通过 ordinal()方法来取得这个次序,所以我们可以在switch语句中使用enum。下面是在switch中使用enum的一个实例:
枚举类是Java5引进的特性,其目的是替换int枚举模式或者String枚举模式,使得语义更加清晰,另外也解决了行为和枚举绑定的问题.
领取专属 10元无门槛券
手把手带您无忧上云