java常量池存放在哪里
运行以下方法:
public class Test { public static void main(String[] args) { String str = "abc"; char[] array = {'a', 'b', 'c'}; String str2 = new String(array); //使用intern()将str2字符串内容放入常量池 str2 = str2.intern(); //这个比较用来说明字符串字面常量和我们使用intern处理后的字符串是在同一个地方 System.out.println(str == str2); //那好,下面我们就拼命的intern吧 ArrayList<String> list = new ArrayList<String>(); for (int i = 0; i < 50000000; i++) { String temp = String.valueOf(i).intern(); list.add(temp); } }} 结果:true Exception in thread "main" java.lang.OutOfMemoryError: PermGen space at java.lang.String.intern(Native Method) at Test.main(Test.java:16) 异常信息告诉我们PermGen 满了。奥,我知道字符串常量池在哪了。PermGen就是jvm规范中所谓的方法区。 以上摘自
小例子:如何说明String常量池的位置 感谢原作者!!!
java常量池存放在哪里的更多相关文章
- Java 常量池存放的是什么
public class Test{ Integer i1 = 127 ; // 常量池本来就有,直接饮用常量池. String s1 = new String("aaaa"); ...
- 触摸java常量池
java常量池是一个经久不衰的话题,也是面试官的最爱,题目花样百出,小菜早就对常量池有所耳闻,这次好好总结一下. 理论 小菜先拙劣的表达一下jvm虚拟内存分布: 程序计数器是jvm执行程序的 ...
- 【转载】Java常量池
本篇随笔为转载,原贴地址:Java常量池理解与总结. (其实Java的常量池有点像C++中的存储字符串常量的常量存储区). 一.相关概念 什么是常量用final修饰的成员变量表示常量,值一旦给定就无法 ...
- java常量池概念
在class文件中,“常量池”是最复杂也最值得关注的内容. Java是一种动态连接的语言,常量池的作用非常重要,常量池中除了包含代码中所定义的各种基本类型(如int.long等等)和对象型(如Stri ...
- java常量池中基本数据类型包装类的小陷阱
想必大部分学过java的人都应该做过这种题目: public class Test { public static void main(String[] args) { //第一个字符串 String ...
- java虚拟机学习-触摸java常量池(13-1)
java虚拟机学习-深入理解JVM(1) java虚拟机学习-慢慢琢磨JVM(2) java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制 java虚拟机学习-JVM内存管理:深 ...
- java常量池概念 (转)
在class文件中,“常量池”是最复杂也最值得关注的内容. Java是一种动态连接的语言,常量池的作用非常重要,常量池中除了包含代码中所定义的各种基本类型(如int.long等等)和对象型(如Stri ...
- 浅析Java常量池
Java常量池 Java常量池其实分为两种:静态常量池和运行时常量池 1.静态常量池 所谓静态常量池,即*.class文件中的常量池,class文件中的常量池不仅仅包含字符串(数字)字面量,还包含类. ...
- java常量池理解
String类两种不同的创建方式 String s1 = "zheng"; //第一种创建方式 String s2 = new String("junxiang" ...
随机推荐
- 数据结构与算法分析 - 最短路(Dijkstra+floyd_Warshall+bellman_ford)
先附上Djikstra的代码:普通版 const int maxn=101; const int INF=0x3f3f3f3f; int edges[maxn][maxn]; int dist[max ...
- Linux命令:简单函数调用
脚本编程之函数: function: 功能 结构化编程,不能独立运行,需要调用时执行,可以被多次调用 1.定义一个函数:function FUNCNAME { command} FUNC ...
- shell 中 &&和||的方法
Shell && 和 || shell 在执行某个命令的时候,会返回一个返回值,该返回值保存在 shell 变量 $? 中.当 $? == 0 时,表示执行成功:当 $? == 1 时 ...
- git如何放弃所有本地修改?
问题描述: 本地做了一些修改,我用git rebase说有冲突.我现在想把本地的请求都干掉,可能有的已经commit过了(没有push过),完全同步成远程版本,应该用什么命令? 使用命令: git r ...
- OC之从键盘输入NSString字符串
方法一: char *a; static char z; a = &z; gets(a); NSString *intput = [NSString stringWithUTF8String: ...
- 转:netflix推荐系统竞赛
原文链接:Netflix recommendations: beyond the 5 stars (Part 1), (Part 2) 原文作者:Xavier Amatriain and Justin ...
- 自然语言14.1_python实现PorterStemmer算法
QQ:231469242 欢迎喜欢nltk朋友交流 #https://tartarus.org/martin/PorterStemmer/python.txt #!/usr/bin/env pytho ...
- ubuntu分区
参考网址:http://jingyan.baidu.com/article/60ccbceb18624464cab197ea.html
- PyCharm光标变粗的解决办法
pycharm中光标变粗,如下: 此时变成了改写模式,只需要按下键盘的insert键即可
- CPU绑定操作
使用virsh vcpuinfp命令查看虚拟机VCPU和物理CPU的对应关系 [root@svn ~]# virsh vcpuinfo 16 VCPU: 0 CPU: 3 状态: running CP ...