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

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

1、概述 在编码过程中,避免不了维护一些常量。而通过这么多的项目中发现,使用方式都不尽相同。...因为我在阅读《Effective Java》这本书中提到过: 如果某个实现了常量接口的类被修改不再需要常量了,也会因为序列化兼容原因不得不保持该实现,而且非final类实现常量接口会导致所有子类被污染...什么时候使用枚举呢?其实建议使用枚举。《Effective Java》中也是推荐使用枚举代替int常量的。...枚举当然是首选,另如果不用枚举,在《Effective Java》一书中,作者建议使用一般类加私有构造方法的方式,至于为什么不用接口,那就要上升到语言哲学问题了(可参考上面通俗易懂的话)。...3、使用场景 大力推荐枚举类型的使用,让他无处不在的去管理你的代码,可以让代码结构更加清晰易懂可扩展。而常量类可以收集管理一些比较杂的一些常量

3.8K21

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 字符常量: 用单引号括起来的内容。'

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

java常量

JAVA变量与常量 常量 常量常量 常量的声明定义 常量 常量在c语言编程网中的定义是指在程序的整个运行过程中值保持不变的量。...这里体现出常量值这一定义,我认为的常量值就是值,具体的某一数值 百度出来的常量是定义为两种意思:一是不可变的变量,也是最最最开始接触java知道的,二如上。...大堆字符串事实测试 一大堆字符串事实测试 大堆字符串事实测试 一大堆字符串事实测试 //如上所示是我在eclipse中运行的,\r是回车另起一行光标在当前位置, //其后面紧跟的\n我认为是无效的;但是先使用...\n再使用\r则两者都生效,这两者单独使用所起的效果是一样的 //或许我解释的不够全面、这是我所了解到的一个\r与\n的区别 常量 通常理解的定义就是不可以改变的变量就是常量,这个常量用final定义(...语法: final 数据类型 变量名=值;//使用final关键字声明常量 示例: public class HelloJAVA { // 静态常量 public static

63530

java变量、常量

它们通常用于保存程序中需要反复使用的值,以便在需要时可以轻松地访问这些值。在Java中,每个变量都有一个类型和一个名称。变量的值可以在程序执行过程中更改。...它只能在该方法内部使用常量概念常量是指在程序执行过程中不能更改的值。在Java中,常量通常用来存储一些固定的值,例如π的值或常量字符串。常量的值不能被修改或重新分配。...在Java中,使用关键字final来定义常量。声明声明一个常量时,需要指定常量的类型、名称和初始值。...由于x是一个常量,我们无法在后续的代码中修改其值。常量命名规范在Java中,通常使用大写字母表示常量,以便区分变量和常量。...示例下面是一个示例,演示了如何在Java使用变量和常量:public class MyClass { int x = 5; // 全局变量 final int y = 10; // 全局常量

88810

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

JAVA常量就是在程序中固定不变的值,是不能改变的数据。例如数字1、字符“a”、浮点数3.2等。那么java常量有哪些呢?在Java中,常量包括整型常量、浮点数常量、布尔常量、字符常量等。...在JDK7.0中允许使用字面值来表示二进制数,前面要以0b或0B开头,目的是为了和十进制进行区分,如0b01101100、0B10110101。...当然,在使用浮点数时也可以在结尾处不加任何的后缀,此时虚拟机会默认为double双精度浮点数。浮点数常量还可以通过指数形式来表示。...以上就是动力节点java学院小编针对“Java中的常量有哪些?”...的内容进行的回答,希望对大家有所帮助,如果对于学习Java的学习计划,怎么学才有效率,或者学完如果找工作的问题,请在线咨询,有专业老师随时为你服务。

4.3K30

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 对象, //而是直接引用常量池中的

88520

Java (三) 常量

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

33610

java常量池在方法区还是堆_JAVA常量

String.intern()会将字符串丢到字符串常量池里面。以此来不断增加常量池的使用部分。 还有你得一直使用着这个字符串,不然就被gc了,你就看不到oom现象了。...方法区总共就分了10m,在oom的时候,也就使用了7m多,说明这个常量池,在jdk1.7的时候,确实被安排到了堆Java heap里面了。 上面的说明加起来,使得下面这个理论得到了验证。...姑且最终结论,常量池就是在Metaspace 元空间里面。 参考: 老外原文地址 怎么怎么都觉得不对,这个常量怎么能在元空间里面。...JAVA的三种常量池 此外,Java有三种常量池,即字符串常量池(又叫全局字符串池)、class文件常量池、运行时常量池。 1....1.8 把永久代删除使用元空间,也就是方法区由元空间(类信息)和堆实现(常量池、静态变量)。

2.9K20

触摸Java常量

本地方法栈是jvm调用操作系统方法所使用的栈。 虚拟机栈是jvm执行java代码所使用的栈。 方法区存放了一些常量、静态变量、类信息等,可以理解成class文件在内存中的存放位置。...虚拟机堆是jvm执行java代码所使用的堆。 Java中的常量池,实际上分为两种形态:静态常量池和运行时常量池。...s1 == s2这个非常好理解,s1、s2在赋值时,均使用的字符串字面量,说白话点,就是直接把字符串写死,在编译期间,这种字面量会直接放入class文件的常量池中,从而实现复用,载入运行时常量池后,s1...前文提到过,class文件中存在一个静态常量池,这个常量池是由编译器生成的,用来存储java源文件中的字面量(本文仅仅关注字面量),假设我们有如下java代码: 1 String s = "hi"; 为了方便起见...在jdk8中,移除了方法区,转而用Metaspace区域替代,所以我们需要使用新的jvm参数:-XX:MaxMetaspaceSize=2M,依然运行如上代码,抛出:java.lang.OutOfMemoryError

1.1K10

java常量的定义

Java语言中,主要是利用final关键字来定义常量。当常量被设定后,一般情况下就不允许再进行更改。如可以利用如下的形式来定义一个常量:final double PI=3.1315。...当在常量定义的时候初始化过后,在应用程序中就无法再次对这个常量进行赋值。如果强行赋值的话,会跳出错误信息,并拒绝接受这一个新的值。 二是final关键字使用的范围。...这个final关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。如数组就是一个对象引用。为此可以使用final关键字来定义一个常量的数组。这就是Java语言中一个很大的特色。...总之,Java开发人员需要注意,被定义为final的常量需要采用大写字母命名,并且中间最好使用下划线作为分隔符来进行连接多个单词。...为此程序开发人员需要了解自己的需求,然后选择是否需要使用这个关键字。

89130

Java常量池(静态常量池与运行时常量池)

今天说一说Java常量池(静态常量池与运行时常量池)[通俗易懂],希望能够帮助大家进步!!! 1、什么是常量 用final修饰的成员变量表示常量,值一旦给定就无法改变!...final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量Java中的常量池,实际上分为两种形态:静态常量池和运行时常量池。...这些符号引用在虚拟机中如果不经过转换则无法与实际内存相连接,即无法被虚拟机直接使用,在虚拟机运行时,需要从常量池获得对应的符号引用,再在类创建时或运行时解析并翻译到具体的内存地址中。...另外Byte,Short,Integer,Long,Character这5种整型的包装类也只是在对应值在-128到127时才可使用对象池。 ​...运行时常量池相对于CLass文件常量池的另外一个重要特征是具备动态性,Java语言并不要求常量一定只有编译期才能产生,也就是并非预置入CLass文件中常量池的内容才能进入方法区运行时常量池,运行期间也可能将新的常量放入池中

2.2K21

jvm字符串常量池_java 常量

字符串 字符串字面量:就是指这个字符串本身,比如”Java”,”Hello”。...常量池 class常量Java源文件编译之后得到的class文件,其中有项信息就是常量池,保存有字面量和符号引用,比如 public class JvmClass1 { final int b=...这两项就是java和abcd这两个字符串的字面量。 而符号引用也是一些常量,比如全限定类名,字段的名称和描述符,方法的名称和描述符。 这是类名。 这是变量名。...c=”java”; String d=”abcd”; String e=”java”; String f=new String(“java”); } } 运行时常量池 && 字符串常量池 class常量池被加载到内存后...运行时常量池相对于class常量池的一个特点是具有动态性,Java不要求所有常量在编译器产生,可以在运行时产生常量加入常量池,例如String类的intern()。

51520

Java入门】常量和变量

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1 个人主页:hacker707的csdn博客 系列专栏:Java入门 个人格言:不断的翻越一座又一座的高山...这一马平川,一眼见底的活,我不想要,我的人生,我自己书写,余生很长,请多关照,我的人生,敬请期待 常量和变量 常量 常量的含义 常量分类 变量 变量的含义 如何定义变量 变量的使用 变量使用注意事项...如何定义变量 格式 数据类型 变量名 = 变量值; 范例 int a = 10; 变量的使用 取值和修改值 取值格式 变量名 范例 a 修改值格式 变量名=变量值; 范例 a = 707; package...System.out.println(a); } } 解决方法 浮点数默认为double类型,转化为float类型在值后加F即可 float a = 13.14F; 结束语 以上就是Java...入门之常量和变量,如有任何问题欢迎在评论区留言 在下一章节会讲解Java数据类型相关内容 你们的支持就是hacker创作的动力

28020

Java基础-常量和变量

(例如:常量UP、DOWN、LEFT和RIGHT分辨代表上下左右,其数值分别是1、2、3和4) 在实际的程序中,可以根据数据在程序运行中是否发生改变,来选择应该是使用变量代 表还是常量代表。...备注 Java是一种强类型语言,每个变量都必须声明其类型。 Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。...类比 电脑使用内存来记忆计算时所使用的数据。人类采用旅馆来存储外出住宿的人们。 内存中变量好比旅馆的房间,内存中常量好比住旅馆房间的人 ?...可以将变量的声明和初始化放在同一行中,例如: int age = 18; float e = 2.718281828f; final 常量 使用final修饰的变量,只能被初始化一次,变成了常量。...final常量是有名称的 package com.cwl.base.day01; /** * @program: java_base * @description: 测试常量 * @author

65020
领券