j***a语言常量有几种,j***a语言的常量有几种

kodinid 2 0

大家好,今天小编关注到一个比较意思的话题,就是关于java语言常量有几种的,于是小编就整理了4个相关介绍Java语言常量有几种的解答,让我们一起看看吧。

  1. java里有多少个类加载器?
  2. Java中的字符串常量池与Java中的堆和栈的区别?
  3. java什么时候用常量,什么时候用枚举呢?
  4. NAN在软件中是啥意思?

j***a里有多少个类加载器?

J***a类加载器

J***a类加载器分为两类,一类是系统的类加载器,一类是自定义类加载器。系统类加载器主要有下面三个引导类加载器,扩展类加载器,系统类加载器(还有线程上下文类加载器等等,但是主要有三个);自定义类加载器通过继承 j***a.lang.ClassLoader类的方式实现这个没有明确规定多少个。

java语言常量有几种,java语言的常量有几种-第1张图片-安济编程网
图片来源网络,侵删)

功能

J***a类加载器是负责读取 J***a 字节代码,并转换成 j***a.lang.Class类的一个实例

工作过程

java语言常量有几种,java语言的常量有几种-第2张图片-安济编程网
(图片来源网络,侵删)

类加载器工作主要有五个阶段

1.加载:查找需要加载类的字节码,并创建实例对象

2.验证:对于字节信息的检验,防止危害虚拟

java语言常量有几种,java语言的常量有几种-第3张图片-安济编程网
(图片来源网络,侵删)

3.准备:为类变量分配内存,并赋初始化

4.解析:常量池中的符号引用替换为直接引用的过程

J***a中的字符串常量池与J***a中的堆和栈的区别

j***a常量池不在堆中也不在栈中,是独立的内存空间管理

 1. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)

 2. 堆:存放所有new出来的对象。

 3. 常量池:存放字符串常量和基本类型常量(public static final)。

对于字符串:其对象的引用都是存储在栈中的,如果编译期已经创建好(直接用双引号定义的)的就存储在常量池中,如果是运行期(new出来的)才能确定的就存储在堆中。对于equals相等的字符串,在常量池中永远只有一份,在堆中有多份。

j***a什么时候用常量,什么时候用枚举呢?

写代码是一种艺术,结构层次好的代码可以少出bug,提高效率。而在J***a编程中,什么时候用常量,什么时候用枚举呢?曾经的我也迷茫过。当然,经历了多年的编程之后,也陆陆续续有了自己的思考。

在我看来,具备一定规则的常量集合需要使用枚举类,既包含一年四季,一周七天这种自然枚举,也包含在编译时就知道所有可能值的其它情况,比如加减乘除等运算。枚举值不必是固定的,可以在后面继续添加

而对于毫无规则归类可言的一些常量:如SUCCUSS字符串、密钥串、路径等等这些,可以放在一个常量类里面糅在一起。在《Effective J***a》一书中,作者建议使用一般类加私有构造方法的方式,而在 sonar 代码质量扫描中,也将该方式定为常量类处理推荐方式。

而相对于常量类,枚举的优点是很明显的。枚举更具可读性、更安全,并且功能更强大。许多枚举不需要明显的构造器成员变量,而有些枚举通过为每个枚举值绑定数据,并且为这些数据提供函数,可以添加额外的功能,枚举值也可以直接用来进行数据库存储。

总而言之,建议在具备相关性的前提下,能使勇枚举的地方一定要要用枚举,如果无法使用枚举时,建议使用带有私有构造函数的常量类。

作者:夕阳雨晴,欢迎关注我的头条号:偶尔美文,主流J***a,为你讲述不一样的码农生活。

NAN在软件中是啥意思?

aN,是Not a Number的缩写

NaN 用于处理[_a***_]中出现的错误情况,比如 0.0 除以 0,其中尾数域的第一位为 1,其余均为 0(不计隐藏的一位),但这取决系统的硬件架构。J***a 中甚至允许程序员自己构造具有特定位模式的 NaN 值(通过 Float,所以 NaN 实际上不是一个,而是一族。由上面的表中可以看出,对于单精度点数,比如 J***a 中的常量 Float.NaN 的浮点数可能表达为 01111111110000000000000000000000.0 或者求负数的.intBitsToFloat() 方法)。比如。IEEE 标准没有要求具体的尾数域。不同的实现可以自由选择尾数域的值来表达 NaN,NaN 表示指数为 emax + 1 = 128(指数域全为 1),且尾数域不等于零的浮点数

到此,以上就是小编对于j***a语言常量有几种的问题就介绍到这了,希望介绍关于j***a语言常量有几种的4点解答对大家有用。

标签: 常量 枚举 j***a