首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【小家javajava中维护常量使用常量?接口?还是枚举呢?

因为我在阅读《Effective Java》这本书中提到过: 如果某个实现了常量接口的被修改不再需要常量了,也会因为序列化兼容原因不得不保持该实现,而且非final实现常量接口会导致所有子类被污染...当然,刚才说了不建议把一般的常量放在接口里,所以我们可以放在常量了,但建议常量是final的。 什么时候使用枚举呢?其实建议使用枚举。...《Effective Java》中也是推荐使用枚举代替int常量的。...枚举当然是首选,另如果不用枚举,在《Effective Java》一书中,作者建议使用一般加私有构造方法的方式,至于为什么不用接口,那就要上升到语言哲学问题了(可参考上面通俗易懂的话)。...此处个人不建议什么都使用枚举来代替常量。比如毫无规则归类可言的一些常量:如SUCCUSS字符串、密钥串、路径等等这些,可以放在一个常量里面糅在一起。

3.4K21
您找到你想要的搜索结果了吗?
是的
没有找到

java枚举类型enum用法(java定义枚举常量)

文章目录 枚举的使用 如何定义枚举 方式一:jdk5.0之前,自定义枚举 方式二:jdk5.0,可以使用enum关键字定义枚举 Enum的主要方法 toString() values() valueOf...(String objName) 使用enum关键字定义的枚举实现接口的 情况一:实现接口,在enum中实现抽象方法 情况二:让枚举的对象分别实现接口中的抽象方法 枚举的使用 枚举的理解:的对象只有有限个...我们称此类为枚举 当需要定义一组常量时,强烈建议使用枚举 如果枚举中只有一个对象,则可以作为单例模式的实现方式。...如何定义枚举 方式一:jdk5.0之前,自定义枚举 //自定义枚举 class Season{ //1.声明Season对象的属性:private final修饰 private final...使用 enum 定义的枚举默认继承了 java.lang.Enum,因此不能再继承其他 枚举的构造器只能使用 private 权限修饰符 枚举的所有实例必须在枚举中显式列出(, 用于分隔 ;

3.6K20

常量接口 vs 常量 vs 枚举区别

常量定义在接口里与里都能通过编译,那2者到底有什么区别呢? 那个更合理?...开发人员在没有参考资料时, 不可能知道某个 int 型的参数到底应该赋什么内容 编译时, 是直接把常量的值编译到的二进制代码里, 常量的值在升级中变化后, 需要重新编译所有引用常量, 因为里面存的是旧值...String CONST_C = "cc"; private ConstClassA() { } } 常量可以设置构造函数为 private 从而限制继承, 也就没有继续添加常量的问题了...编译时, 没有把常量值编译到代码里, 即使常量的值发生变化也不会影响引用常量 enum 类型 public static enum Grade { A(4), B(3),...查看 enum 反编译后的代码与枚举常量的结构非常相似 这可能是因为 java 的设计者一开始觉得 enum 与 OO 思想不符 所以没有提供支持, 但是随着常量接口的滥用和枚举常量方案的出现 才在

14430

JAVA 常量

常量 3.1 常量概述 常量 : 在程序运行过程中,其值不可发生改变的量 3.2 Java中的常量分类: ​ 字符串常量 用双引号括起来的多个字符(可以包含0个、一个或多个),例如”a”、”abc”、...”中国”等 ​ 整数常量 整数,例如:-10、0、88等 ​ 小数常量 小数,例如:-5.5、1.0、88.88等 ​ 字符常量 用单引号括起来的一个字符,例如:’a’、’5’、’B’、’中’等 ​...布尔常量 布尔值,表示真假,只有两个值true和false ​ 空常量 一个特殊的值,空值,值为null 除空常量外,其他常量均可使用输出语句直接输出。...3.3 代码 /* 常量: 在程序运行过程中,其值不可以发生改变的量。 常量分类: 字符串常量: 用双引号括起来的内容。"...HelloWorld","黑马程序员" 整数常量: 不带小数的数字。666,-88 小数常量: 带小数的数字。13.14,-5.21 字符常量: 用单引号括起来的内容。'

62120

JAVA-常量常量

文章目录 1.常量 2.Java常量池 2.1. 静态常量池: 2.2....运行时常量池: 3.基本数据类型包装常量池 4.java字符串常量池 1.常量 常量表示程序运行过程种不可改变的值,主要作用如下: 1.代表常数,便于程序的重构和修改。...在java中,常量的语法格式只需要在变量前添加final即可。代码规范要求常量名称须用大写字母。...java常量池可做如下分类: 2.1. 静态常量池: 即*.class文件中的常量池,class文件中的常量池不仅仅包含字符串(数字)字面量,还包含、方法的信息,占用class文件绝大部分空间。...3.基本数据类型包装常量池 在java中,基本数据类型byte、char、int 、short、long、boolean的包装 Byte、Character、Integer、Short、Long、Boolean

1.8K30

java常量

JAVA变量与常量 常量 常量常量 常量的声明定义 常量 常量在c语言编程网中的定义是指在程序的整个运行过程中值保持不变的量。...在这里要注意常量常量值是不同的概念,常量值是常量的具体和直观的表现形式,常量是形式化的表现。...这里体现出常量值这一定义,我认为的常量值就是值,具体的某一数值 百度出来的常量是定义为两种意思:一是不可变的变量,也是最最最开始接触java知道的,二如上。...平时所说的值指的是常量值,常量是不可变的变量(用final修饰的变量) 常量值 提到常量值不得不说一下计数法,八进制、十进制、十六进制所代表的进制计数法跟科学计数法,这几个是在值体现中可以直观看到的。.../article/details/53672573) 常量的声明定义 语法: final 数据类型 变量名=值;//使用final关键字声明常量 示例: public class HelloJAVA {

61930

String 常量

String-Pool-Java String 类型的常量池比较特殊,它的主要使用方法有两种: 直接使用双引号声明出来的 String 对象,会直接存储在常量池中 如果不是用双引号声明的 String...String.intern() 是一个 Native 方法,它的作用是:如果运行常量池中已经包含一个等于此 String 对象内容的字符串,则返回常量池中该字符串的引用;如果没有,则在常量池中创建与此...System.out.println(s1.equals(s2)); // 输出 true 8 种基本类型的包装常量Java 基本类型的包装的大部分都实现了常量池技术,即 Byte,Short...,Integer,Long,Character,Boolean;这 5 种包装默认创建了数值[-128,127] 的相应类型的缓存数据,而超出此范围的仍然会去创建新的对象 两种浮点数类型的包装 Float...IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); } 应用场景: Integer i1=40; // Java

51620

java变量、常量

Java是一种面向对象的编程语言,其中变量和常量是构建程序的基础。变量可以用来存储数据值,而常量是不能被修改的值。在本文中,我们将深入探讨Java中变量和常量的概念、类型、声明、作用域和示例等方面。...在Java中,每个变量都有一个类型和一个名称。变量的值可以在程序执行过程中更改。类型在Java中,变量可以分为两种类型:基本类型和引用类型。基本类型基本类型是指不依赖于任何其他类型的数据类型。...在Java中,变量的作用域可以是全局的或局部的。全局变量全局变量是在的内部声明的,但在方法之外。它们可以通过的任何方法访问。全局变量的作用域在整个中都是可见的。...常量概念常量是指在程序执行过程中不能更改的值。在Java中,常量通常用来存储一些固定的值,例如π的值或常量字符串。常量的值不能被修改或重新分配。在Java中,使用关键字final来定义常量。...作用域常量的作用域与变量的作用域相同。常量可以是全局的或局部的。全局常量全局常量是在的内部声明的常量,但在方法之外。它们可以通过的任何方法访问。全局常量的作用域在整个中都是可见的。

84810

integer常量池在哪_java 常量

目录 常量池 Integer a= 127 与 Integer b = 127相等吗 ---- 常量java中存在字符串常量池,维护了所有String对象 使用String s=”zx”的时候是使用...String.valueOf(“zx”)从常量池中找了个对象返回 如果不存在则将内容放入常量池中 在使用new的时候是直接创建一个新的对象在堆中 Integer中也有常量池 其中缓存了-128到127之间的数字...如果整型字面量的值在-128 到 127 之间,那么自动装箱时不会 new 新的Integer 对象,而是直接引用Integer常量池中的 Integer 对象,超过范围 a1==b1...System.out.println(b == c); // true //如果整型字面量的值在-128到127之间, //那么自动装箱时不会new 新的Integer 对象, //而是直接引用常量池中的

86220

EasyC++62,常量枚举

这是EasyC++系列的第62篇,常量枚举。 常量 有的时候, 我们希望能给当中定义一些常量,可以给所有的对象使用。...比如说我们在当中定义一个数组,希望可以定义一个常量,用来初始化数组的长度。既然是用来初始化数组长度的,那么这个值自然也不会改变,我们定义成const是否可行呢?...这个常量会和其他静态变量存储在一起,而不是存储在对象里,这样的话也就被所有对象共享了。 对于像是Java、Python等其他语言来说,中的静态变量是可以通过名直接访问的,而C++中不行。...通过这种方式声明并不会创建数据成员,对于的对象来说,并不包含枚举,这里的N只是一个符号名称。在当中遇到它的时候,编译器会用15来代替。...也正是因为我们只是为了创建符号常量,而不是创建枚举类型的变量,所以不需要提供枚举名。有一些C++的库当中也用到了这种方法,比如ios_base::fixed等。

27530

java常量有哪些_Java中的常量有哪些?

JAVA常量就是在程序中固定不变的值,是不能改变的数据。例如数字1、字符“a”、浮点数3.2等。那么java常量有哪些呢?在Java中,常量包括整型常量、浮点数常量、布尔常量、字符常量等。...下面我们就一起来看看java中的这些常量。 1.整型常量 整型常量是整数类型的数据,有二进制、八进制、十进制和十六进制4种表示形式具体表示形式如下。 二进制:由数字0和1组成的数字序列。...之所以能这样表示,是因为Java采用的是Unicode字符集,Unicode字符以u开头,空白字符在Unicode码表中对应的值为’u0000’。...以上就是动力节点java学院小编针对“Java中的常量有哪些?”...的内容进行的回答,希望对大家有所帮助,如果对于学习Java的学习计划,怎么学才有效率,或者学完如果找工作的问题,请在线咨询,有专业老师随时为你服务。

4.3K30

Java (三) 常量

今天我们来记录一下java基础之常量,虽然这个很简单很简单,但是我还是喜欢记录下来,因为什么东西都是由开始的不会转变过来的,慢慢的积累最后都是财富,也能做到温故而知新,所以我也会坚持不管多简单或者多难。...常量:程序在执行过程中其值是不可以改变的量叫做常量。 2.Java中的常量Java常量是分两种的一种是字面值常量一种是面向对象常量,今天我要记载的是字面值常量。...3.字面值常量: 1).字符串常量 :双引号内包括的内容,特点是双引号内。...下面让我们来用代码测试一下:字符串常量,整数常量,小数常量 5.下面让我们来用代码测试一下:布尔常量 6.假如我们把布尔常量单词书写错误,在看看效果。...(是会报错的) 7.可以看出“布尔常量”单词是不可以书写错误的,下面让我们来用代码测试一下:字符常量 8.下面我们把“字符常量” 多写几种不同的形态 9.我们会发现“字符常量” :单引号内自能存放一个字符

32110
领券