iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >深入探索Java常量池
  • 616
分享到

深入探索Java常量池

java常量池ava 2023-05-30 20:05:02 616人浏览 薄情痞子
摘要

Java的常量池通常分为两种:静态常量池和运行时常量池静态常量池:class文件中的常量池,class文件中的常量池包括了字符串(数字)字面值,类和方法的信息,占用了class文件的大部分空间。运行时常量池:JVM在完成加载类之后将clas

Java的常量池通常分为两种:静态常量池和运行时常量池

静态常量池:class文件中的常量池,class文件中的常量池包括了字符串(数字)字面值,类和方法的信息,占用了class文件的大部分空间。

运行时常量池:JVM在完成加载类之后将class文件中常量池载入到内存中,并保存在方法区中。平时我们所讲的常量池就是指方法区中的运行时常量池。其相对于CLass文件常量池的另外一个重要特征是具备动态性,Java语言并不要求常量一定只有编译期才能产生,也就是并非预置入CLass文件中常量池的内容才能进入方法区运行时常量池,运行期间也可能将新的常量放入池中,这种特性被开发人员利用比较多的就是String类的intern()方法。

深入探索Java常量池

程序计数器:是程序执行的流水线,指示下一条该执行哪条命令。

本地方法栈:JVM调用操作系统方法使用的栈。

虚拟机栈:JVM执行java代码所使用的栈

虚拟机堆:存放对象的地方,在java程序中new出来的对象都存放在堆中。

方法区:存放了常量、类信息、静态变量,可以理解为class文件在内存中存放的位置。

常量池的好处:

常量池是为了避免频繁的创建和销毁对象而影响系统性能,其实现了对象的共享。

例如字符串常量池,在编译阶段就把所有的字符串文字放到一个常量池中。

节省内存空间:常量池中的所有字面值相同的字符串常量合并,只占用一个空间

节省运行时间:在进行字符串比较时,==比equals()要快。对于两个引用变量,只用==判断引用是否相等,也就可以判断实际值是否相等。

==对于基本数据类型和对象代表的含义是不同的。

对于基本数据类型:==比较的是基本数据类型的数值对于对象:==比较的是对象在内存中的内存地址

8种基本数据类型的包装类和常量池

Java中基本数据类型的包装类大部分都实现了常量池技术,即Byte,Short,Integer,Long,Character,Boolean。

Integer i1 = 40;Integer i2 = 40; System.out.println(i1==i2);//true

--结束END--

本文标题: 深入探索Java常量池

本文链接: https://www.lsjlt.com/news/220775.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 深入探索Java常量池
    Java的常量池通常分为两种:静态常量池和运行时常量池静态常量池:class文件中的常量池,class文件中的常量池包括了字符串(数字)字面值,类和方法的信息,占用了class文件的大部分空间。运行时常量池:JVM在完成加载类之后将clas...
    99+
    2023-05-30
    java 常量池 ava
  • JVM常量池的深入讲解
    提示:这里咱们要说的常量池,常量池就是咱们面试中所说的常量池,谈谈你对常量池的认识?面试官一问咱们就懵逼了,你要记得你脑子中有一张图!!! 剩下的就好办了 提示:请各位大佬批评指正!...
    99+
    2022-11-12
  • AndroidRetrofit原理深入探索
    目录序章Retrofit构建过程创建网络请求接口实例过程执行请求过程总结序章 首先引入依赖     implementation 'com.squareu...
    99+
    2022-11-13
    Android Retrofit Android Retrofit原理
  • Java深入探索单例模式的应用
    目录1.单例2.单例设计模式的应用实例1.步骤2.单例模式-饿汉式3.单例模式-懒汉式1.单例 1.所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一...
    99+
    2022-11-13
  • 深入浅出探索Java分布式锁原理
    目录什么是分布式锁?它能干什么?分布式锁实现方案基于数据库的分布式锁实现方案实现原理方案分析基于Redis的分布式锁实现方案基于sentnx命令的实现原理方案分析基于Redisson...
    99+
    2022-11-13
  • C++深入浅出探索模板
    目录非类型模板参数模板特化函数模板特化类模板特化全特化偏特化模板分离编译模板的分离编译解决方法总结非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参:出现在模板参数列表中,...
    99+
    2022-11-13
  • ABP基础架构深入探索
    目录前言一、了解模块化Startup 类模块定义模块依赖和启动模块模块生命周期二、使用依赖注入系统.NET 原生依赖注入ABP的依赖注入1.约定式注册2.接口注册3.属性注册4.接口...
    99+
    2022-11-13
  • Java设计模式之单例模式深入探索
    目录什么是设计模式?单例模式是什么?单例模式设计的原则是什么?Java实现单例模式的5种方式?懒汉饿汉静态内部类双重校验锁DCL(Double Check Lock)枚举(num)小...
    99+
    2022-11-12
  • 深入探索Python中的os.listdir函数
    深入探索Python中的os.listdir函数 1. 引言 在Python中,文件和目录操作是常见的任务之一。而os.listdir()函数是Python中用于获取指定目录下所有文件和子目录的函数之...
    99+
    2023-10-04
    python 开发语言
  • Spring深入探索AOP切面编程
    目录AOP概念的引入AOP相关的概念1、AOP的概述2、AOP的优势3、AOP的底层原理Spring的AOP技术-配置文件方式1、AOP相关的术语2、基本准备工作2.1、aop的使用...
    99+
    2022-11-13
  • Java数组与字符串深入探索使用方法
    目录一、数组1.数组的定义和内存分配2.数组的初始化3.数组的引用4.二维数组5.几点说明二、字符串(String)1.字符串的定义方法2.字符串操作lenth()方法charAt(...
    99+
    2022-11-13
  • 深入探讨JAVA中的异常与错误处理
    异常与错误:  异常:  在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让...
    99+
    2022-11-15
    JAVA 异常 错误处理
  • 如何深入探索Groovy的ClassLoader体系
    如何深入探索Groovy的ClassLoader体系,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Groovy中定义了不少ClassLoader,介绍其中绝大多...
    99+
    2023-06-17
  • 深入探索Golang中的数据类型与变量初始化
    深入探索Golang中的数据类型与变量初始化在Go语言中,数据类型和变量的初始化是我们常常需要面对的问题。正确的数据类型和变量的初始化可以确保程序的健壮性和正确性。在本文中,我们将深入探索Golang中的数据类型和变量初始化的相关知识,并给...
    99+
    2023-12-23
    数据类型 Golang 变量初始化
  • Java synchronized与死锁深入探究
    目录1.synchronized的特性2.synchronized使用示例:3.Java标准库中的线程安全类4.死锁是什么5.如果避免死锁1.synchronized的特性 1). ...
    99+
    2023-01-30
    Java synchronized Java 死锁
  • Java常量池详解
    目录(1)class常量池(2)运行时常量池 (3)基本类型包装类常量池(4)字符串常量池总结java中有几种不同的常量池,以下的内容是对java中几种常量池的介绍,其中最常见的就是...
    99+
    2022-11-12
  • C语言深入探索递归的特点
    目录递归的认识main函数可以递归吗递归核心思想讲解递归的缺点递归的认识 基本认识: 1.首先递归的本质还是函数调用,也要形成和释放栈帧。 2.函数的调用是有成本的,这个成本在时间和...
    99+
    2022-11-13
  • C++深入细致探究二叉搜索树
    目录1、二叉搜索树的概念2、二叉搜索树的操作二叉搜索树的查找二叉搜索树的插入二叉搜索树的删除3、二叉搜索树的实现4、二叉搜索树的性能分析1、二叉搜索树的概念  二叉搜索树又...
    99+
    2022-11-13
  • Android图片框架Glide原理深入探索
    目录withloadinto原理总结缓存LruCache首先引入依赖     implementation 'com.github.bumptech.gl...
    99+
    2022-11-13
    Android Glide原理 Android Glide
  • Java深入探索线程安全和线程通信的特性
    目录一、线程安全(重点)1、线程安全概念2、产生线程不安全的情况3、线程不安全的原因4、如何解决线程不安全问题二、synchronized关键字1、使用2、特性三、volatile关...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作