「java枚举的好处」java有枚举吗
今天给各位分享java枚举的好处的知识,其中也会对java有枚举吗进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、定义枚举有什么好处,请详细点,谢谢!
- 2、java 枚举和宏定义有啥不同?枚举有什么好处?枚举占用内存么?
- 3、枚举的好处
- 4、为什么java中用枚举实现单例模式会更好
- 5、java枚举类型有什么好处?请举个简单明了的例子
定义枚举有什么好处,请详细点,谢谢!
枚举的话,可以方便你“见名知义”。比如要表示星期,你可以将星期几声明为一个整型变量,然后用1~7分别表示周一到周日,但是这样就晦涩很多,人家看到数字并不能马上知道代表星期几。所以更好的做法是声明一个枚举类型,枚举值 sunday 到 saturday 代表周日到周六,将星期几声明为一个枚举类型的变量,这样人家一看枚举值就知道是什么含义啦。
java 枚举和宏定义有啥不同?枚举有什么好处?枚举占用内存么?
你好,这个问题不太好回答。
只有你用了枚举,并且细细体会,才能明白它被引入的目的和好处。
常见的宏定义是PI。这个就是为了让一个经常使用的变量用一个符号PI来代替。
而枚举,用法用名字上也能猜出一二,就是一组相关的集合。如颜色,季节,星期,月份。
好处也不是三言两语能说明白的,你要是不用,真的不好体会,理论永远需要实践去验证。
占内存是肯定的,但是相比其他的java对象,又不是特别浪费内存。
枚举的好处
1. int枚举模式:
public static final int APPLE=0;
public static final int ORANGE=1;
缺点:1)类型安全,apple可以传递到orange方法中,还能用equals和==进行比较2)如果与枚举常量关联的int发生变化,客户端必须重新编译
2. String枚举模式缺点:
1)会导致性能问题,依赖于字符串的比较操作
3.枚举的好处:
1)没有可以访问的构造器,是真正final。是实例受控的
2)编译时类型安全。apple不会被传到orange中
3)增加重新排列枚举中常量,无需重新编译
4)可以添加任意方法和域,实现任意接口
缺点:
装载和初始化枚举时会有空间和时间成本。
为什么java中用枚举实现单例模式会更好
单例模式实现方式有很多:在第一次使用的时候创建(构造函数中判断是否已经有实例存在),在类加载的时候用静态块儿创建(静态块初始化),在应用启动的时候创建。
在单线程中,基本大同小异,保证类的实例在整个应用中只有一个,都是没问题的。
但是在多线程环境下,什么时候创建这个实例是要考虑线程安全的。
枚举类型最大的特点就是:构造函数是private修饰的,也就是不能对其进行new,对象的实例都是预定义的,也就是在类加载的时候都是定义好了的,不会给其它调用去创建实例的机会。
结论是,可以模拟这个思路去创建单例,不一定非得用枚举,但是推荐用使用定义枚举的方式去实现单例模式
java枚举类型有什么好处?请举个简单明了的例子
Enum是enumeration(列举)的简写形式,包含在java.lang包中.熟悉C, C++, C#, 或 Pascal人应该对列举有所了解,先看个例子:
public enum Season
一个enum是定义一组值的对象,它可以包括零个或多个值成员.它是属于enum类型的,一个enum对象中不可有两个或多个相同的属性或值.在次之前的java程序员一般是 用接口的方法实现列举的,如 :
public interface Season {
static winter = 0;
static spring = 1; //etc..
}
引入了enum的java的列举的编写方便了许多,只须定义一个enum型的对象.enum对象的值都回自动获得一个数字值,从0开始,依次递增.看一个比较简单的enum实现的例子:
EnumDemo.java
package net.javagarage.enums;
/*
We can loop over the values we put into the enum
using the values() method.
Note that the enum Seasons is compiled into a
separate unit, called EnumDemo$Seasons.class
*/
public class EnumDemo {
/*declare the enum and add values to it. note that, like in C#, we don't use a ; to
end this statement and we use commas to separate the values */
private enum Seasons { winter, spring,
summer, fall }
//list the values
public static void main(String[] args) {
for (Seasons s : Seasons.values()){
System.out.println(s);
}
}
}
运行上述代码你回得到 以下结果:
winter
spring
summer
fall
关于java枚举的好处和java有枚举吗的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-20,除非注明,否则均为
原创文章,转载请注明出处。