近几天从单例模式及阿里开发手册中遇到枚举,之前没怎么关注过。

便学习一下,此次看了多方资料,并写Demo实现,记录下知识点,方便之后巩固。


枚举的两个优点:

1. 保证了类型安全:调用者无法随意传一个 int或者String 等值;

2. 代码可读性非常高;

举个例子:

 package com.wzf.study03.test03;

 enum LangEnum {
JAVA, JS, PYTHON
} public class EnumDemo1 {
public static void main(String[] args) {
LangEnum lan = LangEnum.JAVA;
switch (lan){
case JS:
System.out.println("JS");
break;
case JAVA:
System.out.println("JAVA");
break;
case PYTHON:
System.out.println("PYTHON");
break;
default:
}
}
}

这是枚举常用的方法,根据业务整理稳定的数据集,写成枚举。便于读取理解,并可以用作判断。


理解枚举

枚举也是个class类,可以在类内/外定义。

特性:

1,不可在方法内定义。

2.它不能有public的构造函数,以保证私有,无法手动创建实例。

3,枚举不能在继承其它类了,因为它默认继承了java.lang.Enum

4.  常量值地址唯一,可以用==直接对比,性能会有提高.

5,Enum的values方法,可方便的遍历所有的枚举值。

6.Enum的oridinal方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定。

package com.wzf.study03.test03;

/**
* @author wzf
* @date 2019/7/26
*/
public enum LanguageEnum { /** JAVA */
JAVA(1,"JAVA"),
/** JS */
JS(2,"JS"),
/** PYTHON */
PYTHON(3,"PYTHON"); /** 我们可以理解成
* public static final LanguageEnum JAVA = new LanguageEnum(1,"JAVA");
* public static final LanguageEnum JS = new LanguageEnum(2,"JS");
* public static final LanguageEnum PYTHON = new LanguageEnum(3,"PYTHON");
* 每个元素为静态不可变的实例对象,那下面就很好理解了
*/
private Integer num;
private String type; LanguageEnum(Integer i, String type) {
this.num = i;
this.type = type;
} /**
* 根据类型返回枚举实例
*/
public static LanguageEnum getEnumByType(String type){
for (LanguageEnum language : LanguageEnum.values()) {
if(type.equals(language.type)){
return language;
}
}
return null;
} public Integer getNum() { return num; }
public void setNum(Integer num) { this.num = num; }
public String getType() { return type; }
public void setType(String type) { this.type = type; }
}

贴个阿里开发手册关于枚举的截图:

ps:单例模式有个枚举实现的方式很好,有时间跟大家分享。

Java枚举知识点的更多相关文章

  1. Java 枚举用法详解

    概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性. 在Java中,被 enum 关键字修饰的类型就是枚举类型.形式如下: enum Color { RED, GR ...

  2. Java进阶知识点: 枚举值

    Java进阶知识点1:白捡的扩展性 - 枚举值也是对象   一.背景 枚举经常被大家用来储存一组有限个数的候选常量.比如下面定义了一组常见数据库类型: public enum DatabaseType ...

  3. Java 面试知识点解析(二)——高并发编程篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  4. Java 面试知识点解析(四)——版本特性篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  5. Java基础知识点(四)

    前言:记录Java基础知识点,方便熟悉与掌握. 1.面向对象的"六原则一法则" “六原则一法则”:单一职责原则.开闭原则.依赖倒转原则.里氏替换原则.接口隔离原则.合成聚合复用原则 ...

  6. Java基础知识点(三)

    前言:准备将Java基础知识点总结成一个系列,用于平常复习并加深理解.每篇尽量做到短小精悍,便于阅读. 1.Math类中相关函数 Math.floor(x):返回不大于x的最大整数.eg:Math.f ...

  7. Java面试知识点之线程篇(二)

    前言:接上篇,这里继续对java线程相关知识点进行总结. 1.notify和notifyall的区别 notify()方法能够唤醒一个正在等待该对象的monitor的线程,当有多个线程都在等待该对象的 ...

  8. Java基础知识点总结

    前言 本文主要是我之前复习Java基础原理过程中写的Java基础知识点总结.Java的知识点其实非常多,并且有些知识点比较难以理解,有时候我们自以为理解了某些内容,其实可能只是停留在表面上,没有理解其 ...

  9. java枚举和constant使用区别

    本文结合<Effective Java>第六章前半部分关于枚举的介绍和自己的理解及实践,讲解了Java枚举的知识点.文章发布于专栏Effective Java,欢迎读者订阅. 前言  你代 ...

随机推荐

  1. 等保测评中与oracle有关的工作

    等保2.0包含硬件.存储.中间件.数据库各方面的安全规范,现把与Oracle数据库有关的内容整理如下,供参考: 一.安全计算环境 1.身份鉴别: a,应对登陆的用户进行身份标识和鉴别,身份标识具有唯一 ...

  2. 如何使用.gitignore文件删除掉已经提交的文件

      如何使用.gitignore文件删除掉已经提交的文件 2018.06.06 22:13:38字数 96阅读 116 如果你的文件已经提交,而此时你才发现忘了添加.gitignore文件,不用担心, ...

  3. impala 表迁移方式 partquet数据文件移动方法

    1.原表查询:select count(*) from edm.ucard_wxd0123 where stat_dt = '2024-01-09' and id_no = '110101199003 ...

  4. Redis系列之-—内存淘汰策略(笔记)

    一.Redis ---获取设置的Redis能使用的最大内存大小 []> config get maxmemory ) "maxmemory" ) " --获取当前内 ...

  5. 打造完美Python环境(pyenv, virtualenv, pip)

    写在最前 在使用 Python 进行开发和部署的时候,经常会碰到Python版本或者依赖包或者对应版本不同导致各种意外情况发生. 本文将介绍如何通过 pyenv, virtualenv, pip三个工 ...

  6. Django 中使用权限认证

    权限认证 权限概念 """ 在实际开发中,项目中都有后台运营站点,运营站点里面会存在多个管理员, 那么不同的管理员会具备不同的任务和能力,那么要实现这样的管理员功能,那么 ...

  7. java后端处理高并发

    一个登陆页面可能会被很多账户同时登陆或者注册,那么我们就好处理这些并发,否则降低程序的使用率,甚至程序奔溃,下面一段代码处理程序的高并发效果不错. /** *@author xiaoxie *@dat ...

  8. 模仿DotnetCore中间件的方式,做一个列表过滤的功能

    我们的很多功能当中都会遇到对版本进行过滤的场合,例如你可能需要对列表中的数据的时间进行过滤.版本过滤.渠道以及地区信息进行过滤. 原本的做法:设计很多个过滤方法,通过枚举的方式组合,选择需要过滤哪些方 ...

  9. 助教培训第四次作业——熟练掌握GitHub及Git的使用方法

    助教培训第四次作业——熟练掌握GitHub及Git的使用方法 1.Git 命令的理解和使用 常用的Git命令可以查看官方文档,官方文档的网址:https://git-scm.com/docs .虽然是 ...

  10. 牛客网暑期ACM多校训练营(第三场)H Diff-prime Pairs (贡献)

    牛客网暑期ACM多校训练营(第三场)H Diff-prime Pairs (贡献) 链接:https://ac.nowcoder.com/acm/contest/141/H来源:牛客网 Eddy ha ...