深入理解Java虚拟机/classloader,类的加载机制;new过程;父亲委托机制;内存区域:堆栈方法区、程序计数器线程、常量池、运行时常量池、new string、内存溢出Java编程思想/2015.03.26_不确定对象的个数,如何存储多个对象;arraylist的add、size、get方...
分类:
其他好文 时间:
2015-03-28 01:08:11
阅读次数:
187
JAVA类的生命周期,java类通过编译为.class文件,是字节码文件,然后放入虚拟机里面。
只有这种字节码文件才能够在java虚拟机中运行,java类的生命周期就是指一个class文件从加载到卸载的全过程。
(1)、关于JVM(java虚拟机):
· 方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息、常量、静态变量以及方法代码的内存区域,叫做方法区。
· 常量池:常量...
分类:
其他好文 时间:
2015-03-21 14:08:00
阅读次数:
95
一.基本概念①JAVA中的基本数据类型(简单类型,内置类型): 字节型(byte),短整型(short),整型(int),长整型(long),字符型(char),浮点型(float),双精度型(double),布尔型(boolean);注意都是小写的,没有String类型,String类型不是Ja....
分类:
编程语言 时间:
2015-03-18 01:01:35
阅读次数:
179
Java字节码文件的主体结构分为一下几个部分:Class文件头部、常量池区域、当前类的描述信息、字段列表、方法列表、属性列表。Class文件头部 任何的class文件的前四个字节的内容就是CA FE BA BE 。Java是一种咖啡,故称之为coffee baby。这四个字节作为该文件的校验码。-....
分类:
编程语言 时间:
2015-03-14 15:11:12
阅读次数:
127
结构如下:magic: class:文件的特定前缀,值为CAFEBABEminor_version:小版本号major_version:大版本号constant_pool_count:常量池数量constant_pool:常量池中的各种值access_flags:class:访问标志 如 privi...
分类:
其他好文 时间:
2015-03-09 18:51:29
阅读次数:
165
Java中String是一个特殊的包装类数据有两种创建形式:String s = "abc";String s = new String("abc"); 第一种先在栈中创建一个对String类的对象引用变量s,然后去查找"abc"是否被保存在字符串常量池中,如果没有则在栈中创建三个char型的值'a...
分类:
编程语言 时间:
2015-03-08 17:10:35
阅读次数:
173
常量池:专门用于管理在编译时被确定并被保存在已编译的.class文件中的一些数据,包括:关于类、方法、接口中的常量,还包括字符串常量。String s1="疯狂java";//s1直接引用常量池中的“疯狂java”String s2="疯狂";String s3=“java”;//s4后面的字符串在...
分类:
编程语言 时间:
2015-03-06 01:00:18
阅读次数:
269
/** * String s1 = "a"; * 编译器会先检查常量池中是否已经有"a": * 如果没有,则在常量池先创建,后引用. * 如果有,则直接引用; * 所以执行该语句,会产生0个或1个对象. * 这里,会创建1个对象. */ String s1 = "a"...
分类:
编程语言 时间:
2015-03-02 13:04:11
阅读次数:
143
深入理解String类的immutable特性。从字节码指令层面了解字符串连接符号+的本质,以及如何避免低效率使用+号。了解String中==与equals方法判断的异同及常见面试题解答。最后,附上常量池说明及通过反射改变方法区中的运行时常量池代码...
分类:
编程语言 时间:
2015-02-28 11:27:20
阅读次数:
177
1、使用new关键字Strings1=newString(“ab”);//2、使用字符串常量直接赋值Strings2=“abc”;3、使用”+”运算符进行字符串连接Strings3=“abc”+“d”;Strings4=s3+5;//abcd5常量池概念:Java运行时会维护一个StringPool(String池),也叫“字符串缓冲区”。String池用来存放..
分类:
编程语言 时间:
2015-02-28 00:23:40
阅读次数:
190