一:静态函数:用于变量前,表示每次重新使用该变量所在的方法,类,变量的值为程序这次运行最后一次为变量赋值时的值。 1.:首先在java中被申明为静态的。JVM会把这个属性或者是方法的内存开辟在静态常量池,而不是存放在所申明类中的堆中。所以不能通过对象名来访问。 二:静态方法:在方法(函数)前用sta ...
分类:
其他好文 时间:
2017-08-03 01:01:02
阅读次数:
119
jvm内存区域与溢出 为什么学习jvm 木板原理,最短的一块板决定一个水的深度,当一个系统垃圾收集成为瓶颈的时候,那么就需要你对jvm的了解掌握。 当一个系统出现内存溢出,内存泄露的时候,因为你懂jvm知识,可以更加快速定位错误,可以通过参数去合理设置各内存区域的内存容量。 因为你对jvm的认识,写 ...
分类:
其他好文 时间:
2017-08-02 21:02:17
阅读次数:
108
运行时常量池是方法区的一部分。class中除了有类的版本,字段,方法,接口等描述信息外,还有一项信息是常量池,用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存放在方法区的运行时常量池中。 Java虚拟机对class文件的每一部分(自然也包括常量池)的格式都有严重的规定,每一个字节用 ...
分类:
编程语言 时间:
2017-07-30 18:10:15
阅读次数:
101
1.加载 虚拟机需要干三件事: ①、通过一个类的的全限定名来获取定义此类的二进制字节流(没有规定二进制字节流从那里获取,怎样获取,许多java技术也都建立在这基础上) ②将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构(将常量池转变成运行时常量池) ③在内存中生成一个代表这个类的java ...
分类:
其他好文 时间:
2017-07-29 12:57:36
阅读次数:
110
1. java内存区域(堆区、栈区、常量池) 2. String 3. StringBuffer和StringBuilder 区别 执行速度,StringBuilder > StringBuffer StringBuilder 线程不安全,StringBuffer 线程安全 (在单线程程序中用Str ...
分类:
编程语言 时间:
2017-07-29 12:55:03
阅读次数:
144
分为以下几个运行时数据区: 程序计数器,java虚拟机栈,本地方法栈,java堆,方法区 程序计数器: 线程私有,记录正在执行的虚拟机字节码指令地址,执行本地方法则为空,是唯一一个java虚拟机内存中没有PutOfMemoryError情况 java虚拟机栈: 线程私有,生命周期也与线程相同,用于支 ...
分类:
编程语言 时间:
2017-07-27 18:20:59
阅读次数:
151
java运行时内存分五部分: 线程共享:堆内存、方法区(包括常量池) 线程私有:栈内存、本地方法栈、程序计数器 string不是基本数据类型,那么一个string的内存位置是什么呢?一共有两种情况: 1、string直接赋值: String s = "haha"; s的引用存在栈内存中,引用指向的h ...
分类:
编程语言 时间:
2017-07-26 12:42:05
阅读次数:
124
1.什么是包装类? java是一种面向对象的编程语言,基本数据类型数据不能当做对象处理,为此java为每一种基本数据类型提供了一种以面向对象思想操作的载体,该载体即包装类。 2.转化 当包装类与对应的基本数据类型运算时,包装类自动转化为基本数据类型。 3.Integer常量池 Integer类型变量 ...
分类:
其他好文 时间:
2017-07-26 01:50:34
阅读次数:
138
最近做到一个题目: 问题:String str = new String(“abc”),“abc”在内存中是怎么分配的? 答案是:堆,字符串常量区。 题目考查的为Java中的字符串常量池和JVM运行时数据区的相关概念。"abc"为字面量对象,其存储在堆内存中。而字符串常量池则存储的是字符串对象的一个 ...
分类:
编程语言 时间:
2017-07-25 22:44:01
阅读次数:
266
转:http://www.cnblogs.com/dreamroute/p/5946272.html java常量池是一个经久不衰的话题,也是面试官的最爱,题目花样百出,小菜早就对常量池有所耳闻,这次好好总结一下。 理论 小菜先拙劣的表达一下jvm虚拟内存分布: 程序计数器是jvm执行程序的流水线, ...
分类:
编程语言 时间:
2017-07-24 23:41:22
阅读次数:
217