1、Integer是int的包装类,int则是java的一种基本数据类型 2、Integer变量必须实例化后才能使用,而int变量不需要 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 4、Integer的默认值是null ...
分类:
其他好文 时间:
2018-01-20 16:59:38
阅读次数:
124
1、概述 简单值(基本类型)通过值复制的方式来赋值/传递。 复合值(对象)通过引用复制的方式来赋值/传递。 结合内存示意图,理解会更深刻。 简单类型的值在常量池只有一份,变量a和变量b都是常量池中2的一个副本。 变量c和变量d都是指向堆中的一个住数组。 ...
分类:
Web程序 时间:
2018-01-17 01:26:15
阅读次数:
247
一、对于java变量 的存放 一般的变量存放在栈、堆、和内存池里面。用new声明出来的,一般放在堆内存中。而一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。对于常量池,像我们通常的String s1="abc";这样声明的字符串对象就是存储在常量池中。 这样输出的结果是true和fals ...
分类:
编程语言 时间:
2018-01-07 19:55:02
阅读次数:
118
一.String类的常用方法 二.String类的特性 在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。8种基本类型的常量池都是系统协调的,String类型的 ...
分类:
编程语言 时间:
2018-01-02 16:46:20
阅读次数:
151
在此简单的记录一下《深入理解Java虚拟机》第2章的2.3节内容。 对象的创建 这里的对象的创建是指普通的对象(不包括数组和Class对象)。对象的创建简单来说就是执行new的时候,虚拟机做出对应的响应。让我们看看一下虚拟机创建对象的过程: 1.虚拟机遇到new指令时,首先尝试在常量池中定位到对应类 ...
分类:
其他好文 时间:
2017-12-31 23:36:09
阅读次数:
291
尽管Java对象的内存分配可以选择在堆外进行,但是不可否认这仅仅只是为了降低GC回收频率以及提升GC回收效率的一种辅助手段,所以Java堆仍然是分配/存储对象实例的主要区域。JVM中包含三种引用类型: 1、类类型; 2、数组类型; 3、接口类型; 这些引用类型的值分别由类实例、数组实例、和接口的派生 ...
分类:
其他好文 时间:
2017-12-31 16:05:02
阅读次数:
125
方法区和Java堆区一样,同样也是允许被所有的线程共享访问的。方法区中存储了每一个Java类的结构信息,比如:运行时常量池、字段和方法数据、构造函数和普通方法的字节码内容以及类、实例、接口初始化时需要用到的特殊方法等数据。在HotSpot中,方法区仅仅只是逻辑上独立,实际上还是包含在Java堆区的, ...
分类:
其他好文 时间:
2017-12-31 00:40:35
阅读次数:
154
运行时常量池属于方法区的一部分,一个有效的字节码文件中除了包含类的版本信息、字段、方法以及接口等描述信息之外,还包含了一项信息,那就是常量池表。那么运行时常量池就是字节码文件中常量池表的运行时表示形式。运行时常量池中包含了多种不同的常量,比如编译期就已经明确的数值字面量到运行期后才能够获得的方法或者 ...
分类:
其他好文 时间:
2017-12-31 00:37:56
阅读次数:
179
什么是注解? 对于很多初次接触的开发者来说应该都有这个疑问?Annontation是Java5开始引入的新特征,中文名称叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等 ...
分类:
其他好文 时间:
2017-12-27 17:47:29
阅读次数:
123
一. 对于字符串内存进行一个剖析。 现在介绍一个方法,一会儿要用到,但是实际开发并不多见。 intern()可以对常量池进行操作, s1是个对象,接着用s1对象去调用操作常量池中的方法,调用这个方法返回了池子中的对象。 接着进行对比,s1==s2么?结果是false,跟下图中的写法是一回事。 这里的 ...
分类:
编程语言 时间:
2017-12-27 11:52:04
阅读次数:
129