String内存结构的分配位置

news2024/12/26 22:43:18
  • 在Java语言中有8种基本数据类型和一种比较特殊的类型String。这些类型为了使它们在运行过程中速度更快、更节省内存,都提供了一种常量池的概念。
  • 常量池就类似一个Java系统级别提供的缓存。8种基本数据类型的常量池都是系统协调额,String类型的常量池比较特殊。它的主要使用方法有两种
  1. 直接使用双引号出来的String对象会直接存储在常量池中。比如:String info=”坚持“;
  2. 如果不是用双引号声明出来的String对象,可以使用String提供的intern()方法。
  • Java 6及之前,字符串常量存放在永久代。
  • Java  7中Oracle的工程师对字符串池的逻辑做了很大的改变,即将字符串常量池的位置调整到Java堆内。
  • 所有的字符串都保存在堆(Heap)中,和其他普通对象一样,这样可以让你在进行调优应用时仅需要调整堆大小就可以了。
  • 字符串常量池概念原本使用的比较多,但是这个改动使得我们有足够的理由让我们重新考虑在Java 7中使用String.intern()。
  • Java8元空间,字符串常量在堆 

1、jdk 6 内存图 

2、jdk 7 内存图 

3、StringTable为什么要调整? 

  1. permSize默认比较小
  2. 永久代垃圾回收频率低

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/891312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hive底层数据存储格式

前言 在大数据领域,Hive是一种常用的数据仓库工具,用于管理和处理大规模数据集。Hive底层支持多种数据存储格式,这些格式对于数据存储、查询性能和压缩效率等方面有不同的优缺点。本文将介绍Hive底层的三种主要数据存储格式:文本文件格式、Parquet格式和ORC格式。 一、三…

2023.8.8巨人网络数据开发工程师面试复盘

1 概述 问题一览 总体感觉良好,通过面试官的介绍可知这个岗位偏向离线数仓。 1.自我介绍 2.询问了其中一段实习经历 3.讲下你说用过的Linux命令 4.讲下HIVE的内部表和外部表有什么不同 *5.讲下你使用过的Hive函数(好好在复习下多准备几个吧&#xff09…

魔棒:手机智能无人直播软件多少钱?

无人直播因为直播门槛低,不需要真人出镜,不需要请主播,加上可以24小时直播卖券,效果出奇的好,一时很受广大商家的欢迎,那么,这种ai智能无人直播软件究竟多少钱呢? 当然&#xff0c…

nginx反向代理后实现nginx和apache两种web服务器能够记录客户端的真实IP地址

一.构建环境 二.配置反向代理 1.基于源码安装的nginx环境下修改nginx.conf(设备1) 2.通过windows powershell进行修改hosts文件并测试 3.设备2和设备3上查看日志,可以看到访问来源都是代理服务器(2.190)而不是真实…

渗透测试-SQL注入原理

文章目录 sql注入原理sql注入基本流程判断是否存在注入,是否会将用户输入拼接到sql语句,并当做代码执行判断字段数判断显错位判断库名判断表名判断列名判断具体数据 sql注入原理 sql注入基本流程 判断是否存在注入,是否会将用户输入拼接到sql…

leetcode 322. 零钱兑换

本题属于完全背包问题,但要求最少的硬币个数。于是设定dp数组的含义dp[i]:总金额为i时,能凑成i的最少硬币个数。 需要注意初始化dp数组时,除0以外的其他地方需要初始化为INT_MAX以保证在递推过程中能被正确的覆盖。 代码如下: …

shell的两种属性: 交互(interactive)与登录(login)

1. 背景 在看shell变量的时候引起了兴趣: 局部变量,全局变量,环境变量,shell的配置文件,参考博客: http://c.biancheng.net/view/773.html 2. 交互式与非交互式 参考博客: shell的两个属性:是否交互式(interactive), 是否登录…

Android---- 一个完整的小项目(消防app)

前言: 针对不同群体的需求,想着应该拓展写方向。医疗app很受大家喜欢,就打算顺手写个消防app,里面基础框架还是挺简洁 规整的。登陆注册和本地数据库写的便于大家理解。是广大学子的毕设首选啊! 此app主要为了传递 消防…

vue3中将表格导出excel的方法(极简且有效)

🥰博主:小猫娃来啦 🥰文章核心:vue2或vue3中将表格导出excel的通用方法 文章目录 安装依赖,导入模块需要注意的完整导出代码原理效果 安装依赖,导入模块 安装 npm i xlsx 或者 pnpm i xlsx导入 import *…

图片转换pdf怎么转换?这几种方法很好用

图片转换pdf怎么转换?将图片转换为pdf可以使你更方便地分享和存储文件。相比于图片格式,pdf格式更加通用,可以在不同的设备和操作系统上打开和查看。此外,pdf格式还可以更好地保护你的文件,可以设置密码保护和防止复制…

vue3 基础知识(webpack) 02

你好,今天过的怎么样呀,嘿嘿,加油夏 💕 文章目录 一、组件二、如何支持SFC三、webpack 打包工具 一、组件 使用组件中我们可以获得非常多的特性: 代码的高亮;ES6、CommonJS的模块化能力;组件作…

WPF的CheckBox中的三个状态

WPF的CheckBox中的三个状态 CheckBox控件和RadioButton控件是继承自ToggleButton类,这意味着用户可切换他们的开关状态,其中IsChecked属性是可空的Boolean类型,这意味着该属性可以设置为true,false或null。 null值表示不确定状态…

分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测

分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测 目录 分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测分类效果基本描述模型描述程序设计参考资料 分类效果 基本描述 1.Matlab实现WOA-CNN-BiGRU-Attention多特征分类预测,多特征输入模型&…

看完尤雨溪知乎343条回答,我学到了这些!

最近看完了尤雨溪的知乎 343 条回答和 25 篇文章,记录下一些内容(每条仅摘录部分内容),分享给大家! 怎么才能有尤雨溪一半强,该怎么学习? 我更愿意把 “强” 理解为 “制造 impact 的能力”&a…

如何在vue3中封装并使用echarts组件

一. 安装echarts npm install echarts --save 二. 按需加载创建一个echarts文件夹,并创建配置文件 //引入echarts import * as echarts from echarts/core//引入柱状图,折线图 import { BarChart, LineChart } from echarts/charts// 引入提示框&#x…

论文及代码详解——可变形卷积(DCNv1)

文章目录 论文详解Deformable ConvolutionDeformable RoI PoolingDeformable ConvNetsUnderstanding Deformable ConvNets 代码详解 论文:《Deformable Convolutional Networks》 论文详解 Deformable Convolution 普通卷积的数学表达 普通的二维卷积包括两个步骤:…

小知识积累

1、使用JSON.parse(JSON.stringify()) 深拷贝时会出现的问题 var obj {a: "zs",b: undefined,c: Symbol("score"),d: null,e: function () {console.log("show");},};console.log(JSON.parse(JSON.stringify(obj)));很明显undefined、函数、sym…

Netty+springboot开发即时通讯系统笔记(三)

实现长连接负载均衡策略 登录成功返回登陆的im地址。 1.在公共模块里写个RouteHandle接口,然后他的实现类去实现不同的均衡策略。 2.在业务模块的config文件下的beanConfig中定义一个Bean routeHandle,从配置文件中获取不同的负载均衡策略来初始化Rou…

苹果电脑会自动清理垃圾吗 苹果电脑系统垃圾怎么清除

苹果电脑是很多人喜欢使用的一种电脑,它有着优美的外观,流畅的操作系统,丰富的应用程序和高效的性能。但是,随着时间的推移,苹果电脑也会产生一些不必要的文件和数据,这些文件和数据就是我们常说的垃圾。那…

半导体退火那些事(2)

2.半导体退火的作用 2.1改善半导体的电学性能 退火过程中,材料中的缺陷得到修理,杂质原子和材料内的杙错得到排列,位于能带中动力学的载流子少,能级也就相对于更加密集。因而在退火之后,半导体材料中的电子、空穴浓度…