璀璨资讯网
首页 >> 互联网 >> 正文

程序员梦寐以求的Java枚举和面试题目

日期:2020-11-17 16:18:30 来源:互联网 编辑:小优 阅读人数:491

一、为什么会出现枚举的原因

在Java5之前,其实是没有enum的,为了考虑安全性、易用性和可读性呢,就慢慢出现枚举。

幸运的是,从Java1.5发行版本开始,就提出了另一种可以替代的解决方案,可以避免int和String枚举模式的缺点,并提供了许多额外的好处。那就是枚举类型(enum type)

二、枚举定义

枚举类型(enum type)是指由一组固定的常量组成合法的类型。Java中由关键字enum来定义一个枚举类型。下面就是java枚举类型的定义。

public enum Season { SPRING, SUMMER, AUTUMN, WINER;}

下面是一个很规范的枚举类型

程序员梦寐以求的Java枚举和面试题目(图1)

程序员梦寐以求的Java枚举和面试题目(图2)

三、Enum类的常用方法

程序员梦寐以求的Java枚举和面试题目(图3)

四、values 方法

程序员梦寐以求的Java枚举和面试题目(图4)

其中有valueOf方法、ordinal 方法

五、枚举实现单例

单例的饿汉式

程序员梦寐以求的Java枚举和面试题目(图5)

其中还有懒汉式的单例

六、枚举的单例

package com.tianuyanchuangzhi.ct.producer.controller;public enum EnumSingleton { //定义一个单例对象 INSTANCE; //获取单例对象的方法 public static EnumSingleton getInstance{ return INSTANCE; }}

再一个需要单例的类里面,定义一个静态枚举类,来实现枚举的单例

看上面三个方式,光看代码就知道单例的模式是最简单的,因为单例本身就是私有构造的,所以建议大家以后用枚举来实现单例

七、面试问题

1、枚举允许继承类吗?

枚举不允许继承类。Jvm在生成枚举时已经继承了Enum类,由于Java语言是单继承,不支持再继承额外的类(唯一的继承名额被Jvm用了)

2、枚举可以用等号比较吗?

枚举可以用等号比较。Jvm会为每个枚举实例对应生成一个类对象,这个类对象是用public static final修饰的,在static代码块中初始化,是一个单例。

3、枚举可以被人家继承吗

不可以继承枚举。因为Jvm在生成枚举类时,将它声明为final。

八、结尾

枚举其实也就那么多了,定义常量的话用枚举确实是优雅很多,大家在项目中记得多使用哈

本文相关词条概念解析:

程序员

程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员,系统架构师,测试工程师五大类。程序员需要理解一个模块的需求,很多程序员写程序往往只关注一个功能需求,他们把性能指标全部归结到硬件,操作系统和开发环境上,而忽视了本身代码的性能考虑,性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。

延伸 · 推荐

下载已经近,28762W,次的,面试题库了,附答案

网上有太多的 Java 面试题库了,但是大部分潦潦草草,没有知识储备的很难看下去,看完后也不会留下印象。有没有这样的题库 ?图文并茂,易于理解,代码讲解,题目高频?如果有面试岗位的打算,这本 ,否则等...

这次再补充Java常见的系列题

上期给大家整理了新手Java面试常见的概念区分题,这次再补充Java常见的系列题,这次的题目稍微要难点了,小伙伴们拿小本本记好喽~面试官出现哈哈~1.简述你所知道的Linux:Linux起源于1991...

程序员: 我终于知道Java这些“锁”事了

文章目录前言悲观锁和乐观锁自旋锁和适应性自旋锁无锁和偏向锁和轻量级锁和重量级锁公平锁和非公平锁可重入锁和非可重入锁独享锁和共享锁总结前言每次面试的时候总是有面试官会甩出致命三连 高并发、高可用、高性能...

网友评论