1, PC寄存器 每个线程拥有一个PC寄存器 在线程创建时创建 指向下一条指令的地址 执行本地方法时,PC的值为undefined 2,方法区 保存装载的类信息 类型的常量池 字段,方法信息 方法字节码 通常和永久区关联在一起 * JDK 6时,String 等常量信息置于方法区,JDK7时,已经移 ...
分类:
其他好文 时间:
2016-05-04 07:51:28
阅读次数:
163
JVM操作码 加载与存储操作码 load --从局部变量加载值到栈上 ldc --从池中加载常量到栈上 store --把值从栈中移走,存到局部变量中 dup --复制栈顶的值 getField --从栈顶对象常量池中得到指定位置的域 putField --把值放入对象在常量池中指定位置的域上 数学 ...
分类:
其他好文 时间:
2016-04-29 01:43:11
阅读次数:
194
1.方法intern()为java内部方法,如下publicnativeStringintern();native方法为通过jvm进行运行,jdk8中隐藏了该方法的具体处理方法。2.作用:该方法注释为“如果常量池中存在当前字符串,就会直接返回当前字符串.如果常量池中没有此字符串,会将此字符串放入常量池中后,再返回”..
分类:
其他好文 时间:
2016-04-28 18:27:38
阅读次数:
454
java常量池是一个经久不衰的话题,也是面试官的最爱,题目花样百出,小菜早就对常量池有所耳闻,这次好好总结一下。 理论 小菜先拙劣的表达一下jvm虚拟内存分布: 程序计数器是jvm执行程序的流水线,存放一些跳转指令,这个太高深,小菜不懂。 本地方法栈是jvm调用操作系统方法所使用的栈。 虚拟机栈是j ...
分类:
编程语言 时间:
2016-04-24 18:53:00
阅读次数:
149
运行时常量池是方法区的一部分,方法区用于存放Class的相关信息,如类名、访问修饰符、常量池、字段描述、方法描述等。 String.intern()是一个native方法,它的作用是:如果字符串常量池中已经包含了一个等于此String对象的字符串,则返回代表池中这个字符串的String对象;否则,将 ...
分类:
编程语言 时间:
2016-04-24 09:46:21
阅读次数:
198
C#之CLR内存字符串常量池(string) 投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-08-04 我要评论 C#之CLR内存字符串常量池(string) 投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-08-04 我要评论 这篇 ...
当执行Stringa="abc";时候(前提条件是:执行这行代码之前在常量池中没有abc,若有,a直接引用在常量池中abc不在创建一个对象,若无,执行下面的描述)java虚拟机会在栈中创建char型的值‘a‘,‘b‘,‘c‘,然后在堆中创建一个String对象,它的值(value)是刚才在栈中创建的三个char类..
分类:
编程语言 时间:
2016-04-16 19:46:06
阅读次数:
206
抛出样例: Integer a1 = new Integer(123); Integer a2 = new Integer(123); System.out.println(a1 == a2); //false 因为只要遇到new关键词,肯定会在堆里面重新分配空间给实例对象,所以两个地址肯定不同 a ...
分类:
其他好文 时间:
2016-04-15 18:10:34
阅读次数:
264
3.4 java基础总结①常用类String②Stringbuffer③Stringbuilder ①常用类String②正则表达式③Stringbuffer④Stringbuilder 一、String①String内存分析String str0 = "hello";预先放到数据段的常量池Stri ...
分类:
其他好文 时间:
2016-04-14 20:53:47
阅读次数:
160
线程池简介在之前介绍Executor框架的文章中对线程池有一个初步的认识,实际上线程池这种设计思想在Java中很普遍,比如JVM中常量池,以及Web开发使用到的数据库连接池。这些池本质上还是Java中的对象池,因为池中存放的都是Java对象。回到线程池,几乎所有需要异步或者执行并发任务的程序都可以使用到线程池。使用线程池带来的好处主要包括以下几个方面:
一,提高资源利用率。由于线程池中的线程使可...
分类:
编程语言 时间:
2016-04-08 15:19:23
阅读次数:
264