当前位置: 首页 > news >正文

怎么建商城网站吗桐梓网站建设

怎么建商城网站吗,桐梓网站建设,上海大型网站设计公司,昆明网站建设流程#x1f4da; Java 运行时常量池笔记#xff08;详细版#xff09; Java 的运行时常量池#xff08;Runtime Constant Pool#xff09;是 JVM 方法区的一部分#xff0c;用于存储编译期生成的字面量和符号引用。它是 Java 类文件常量池的运行时表示#xff0c;具有动态… Java 运行时常量池笔记详细版 Java 的运行时常量池Runtime Constant Pool是 JVM 方法区的一部分用于存储编译期生成的字面量和符号引用。它是 Java 类文件常量池的运行时表示具有动态性和共享性。 运行时常量池的核心概念 1. 什么是运行时常量池 运行时常量池是 JVM 方法区的一部分存储类文件中常量池的内容。它包含 字面量如字符串、整数、浮点数等。符号引用如类名、方法名、字段名等。 在类加载时常量池的内容会被加载到运行时常量池中。 2. 运行时常量池的特点 动态性运行时常量池的内容可以在运行时动态添加。例如String.intern() 方法可以将字符串添加到常量池中。共享性同一个类的运行时常量池可以被多个实例共享。内存分配运行时常量池是方法区的一部分方法区在 JDK 8 之前是永久代PermGen在 JDK 8 之后是元空间Metaspace。 ️ 运行时常量池的工作原理 1. 类加载时的常量池加载 当 JVM 加载一个类时会将类文件中的常量池内容加载到运行时常量池中。 2. 符号引用的解析 符号引用如类名、方法名在类加载时会被解析为直接引用如内存地址。 3. 动态添加内容 通过 String.intern() 方法可以将字符串动态添加到运行时常量池中。 运行时常量池的存储结构 #mermaid-svg-gq6dUJUFABlnmW83 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-gq6dUJUFABlnmW83 .error-icon{fill:#552222;}#mermaid-svg-gq6dUJUFABlnmW83 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-gq6dUJUFABlnmW83 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-gq6dUJUFABlnmW83 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-gq6dUJUFABlnmW83 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-gq6dUJUFABlnmW83 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-gq6dUJUFABlnmW83 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-gq6dUJUFABlnmW83 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-gq6dUJUFABlnmW83 .marker.cross{stroke:#333333;}#mermaid-svg-gq6dUJUFABlnmW83 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-gq6dUJUFABlnmW83 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-gq6dUJUFABlnmW83 .cluster-label text{fill:#333;}#mermaid-svg-gq6dUJUFABlnmW83 .cluster-label span{color:#333;}#mermaid-svg-gq6dUJUFABlnmW83 .label text,#mermaid-svg-gq6dUJUFABlnmW83 span{fill:#333;color:#333;}#mermaid-svg-gq6dUJUFABlnmW83 .node rect,#mermaid-svg-gq6dUJUFABlnmW83 .node circle,#mermaid-svg-gq6dUJUFABlnmW83 .node ellipse,#mermaid-svg-gq6dUJUFABlnmW83 .node polygon,#mermaid-svg-gq6dUJUFABlnmW83 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-gq6dUJUFABlnmW83 .node .label{text-align:center;}#mermaid-svg-gq6dUJUFABlnmW83 .node.clickable{cursor:pointer;}#mermaid-svg-gq6dUJUFABlnmW83 .arrowheadPath{fill:#333333;}#mermaid-svg-gq6dUJUFABlnmW83 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-gq6dUJUFABlnmW83 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-gq6dUJUFABlnmW83 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-gq6dUJUFABlnmW83 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-gq6dUJUFABlnmW83 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-gq6dUJUFABlnmW83 .cluster text{fill:#333;}#mermaid-svg-gq6dUJUFABlnmW83 .cluster span{color:#333;}#mermaid-svg-gq6dUJUFABlnmW83 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-gq6dUJUFABlnmW83 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 运行时常量池 字面量 符号引用 字符串 整数 浮点数 类名 方法名 字段名 Java 示例代码 public class ConstantPoolExample {public static void main(String[] args) {String str1 hello; // 字面量直接放入常量池String str2 hello; // 从常量池中获取String str3 new String(hello).intern(); // 显式放入常量池System.out.println(str1 str2); // true指向常量池中的同一个对象System.out.println(str1 str3); // trueintern() 方法确保 str3 指向常量池} }输出结果 true true️ Go 语言模拟运行时常量池 Go 语言没有直接的运行时常量池但可以通过 map 模拟类似的功能。 1. 实现思路 使用 map 存储字符串常量。提供 intern 方法将字符串放入“常量池”并返回引用。 2. 代码实现 package mainimport (fmt )// 模拟常量池 var constantPool make(map[string]string)// 模拟 intern 方法 func intern(s string) string {if val, ok : constantPool[s]; ok {return val // 如果已存在返回常量池中的引用}constantPool[s] s // 否则放入常量池return s }func main() {str1 : hello // 字符串字面量str2 : hello // 字符串字面量str3 : intern(hello) // 显式放入常量池fmt.Println(str1 str2) // trueGo 会优化为同一个引用fmt.Println(str1 str3) // trueintern 方法返回常量池中的引用 }输出结果 true trueJava 与 Go 的对比 特性Java 运行时常量池Go 模拟常量池存储位置JVM 方法区元空间/永久代自定义 map 数据结构动态性支持动态添加如 String.intern()通过 map 动态管理共享性同一个类的运行时常量池共享通过全局 map 实现共享语言特性JVM 提供原生支持需要手动实现 总结 Java 运行时常量池是 JVM 的重要组成部分提供了动态性和共享性适合在运行时管理常量。Go 语言虽然没有直接的运行时常量池但可以通过 map 等数据结构模拟类似的功能。两者的实现机制不同但核心思想一致通过共享常量减少内存开销提高性能。 通过本文的学习你可以深入理解 Java 运行时常量池的原理并掌握如何在 Go 中模拟类似的功能。希望这篇笔记对你有帮助
http://www.dnsts.com.cn/news/274678.html

相关文章:

  • 动画网站源码网站建设行业报告
  • 电子商务网站开发指南深圳市建设局科技处网站
  • 网站设计要多少钱农村自建房设计图一层平房
  • 晋中建设机械网站wordpress 汉化插件
  • 安溪县住房和城乡规划建设局网站团购网站的发展
  • 网上做翻译兼职网站微信分享网站短链接怎么做的
  • 网站做成app需要多少钱小说百度搜索风云榜
  • 网站维护中是怎么回事巴州移动网站建设
  • 东莞企业网站建设开发福建建设建设厅官方网站
  • 快速 模板 做网站深圳公司网站建设大约多少钱
  • 特价网站建设官网南宁seo推广优化
  • 平顶山有做网站的公司睡不着来个网址2022
  • 怎样建设个自己的网站首页网页设计需要注意的问题
  • 网站维护的要求名片制作app软件
  • 怎么做竞拍网站网站网站开发不存储数据犯法吗
  • 网站后台管理系统phpwordpress 说说碎语
  • 如何建设一个视频网站西安网站建设xazxcy
  • 建企业网站浩森宇特企业网站建设文章
  • 个人做流量大的网站长安网站优化
  • 济南网站建设599怎么给网站做php后台
  • 坪地做网站安徽省建设厅官方网站
  • 17一起做网站广州厦门北京网站建设公司
  • 专业网站建设公司兴田德润在哪里c#做的网站怎么上传图片
  • 成品网站 免费手机首页设计
  • 建站系统主要包括代理商注册个人还是公司
  • 佛山网站建设no.1常州网站建设价格
  • 南平如何做百度的网站网页设计中文本居中用什么代码
  • 国家建设部官方网站赵宏彦给公司做门户网站多少钱
  • 东莞机械建站如何网页游戏手机
  • 建设168网站网站建设公司 优势