Java内存分配
来源:互联网 发布:mac上玩梦幻西游手游 编辑:程序博客网 时间:2024/06/15 20:18
public class A{
private B b;//引用类型变量
}
public class B{
}
new A();//对象
1、引用类型变量和对象的区别
声明的对象是在堆内存中初始化的, 真正用来存储数据的。不能直接访问。
引用类型变量是保存在栈当中的,一个用来引用堆中对象的符号而已(指针)
2、成员变量与局部变量的区别
局部变量,在方法内部声明,当该方法运行完时,内存即被释放。
成员变量,只要该对象还在,哪怕某一个方法运行完了,还是存在
在装载类的时候,加入方法区中的所有信息,最后都会形成Class类的实例,代表这个被装载的类。方法区中的所有的信息,都是可以通过这个Class类对象反射得到。我们知道对象是类的实例,类是相同结构的对象的一种抽象。同类的各个对象之间,其实是拥有相同的结构(属性),拥有相同的功能(方法),各个对象的区别只在于属性值的不同。
同样的,我们所有的类,其实都是Class类的实例,他们都拥有相同的结构-----Field数组、Method数组。而各个类中的属性都是Field属性的一个具体属性值,方法都是Method属性的一个具体属性值。
4、方法什么时候设计为静态,什么时候为非静态
对象是类的一个实例,各个对象结构相同,只是属性不同。
而静态方法是对象无法调用的。
所以,静态方法适合那些工具类中的工具方法,这些类只是用来实现一些功能,也不需要产生对象,通过设置对象的属性来得到各个不同的个体。
方法区:类的基本信息(每个类的全限定名,每个类的直接超类的全限定名(可约束类型转换),该类是类还是接口,该类型的访问修饰符,直接超接口的全限定名的有序列表),运行时常量池(如文字字符串、final变量值、类名和方法名常量),字段信息(字段的名、类型、修饰符),方法信息(方法名、返回值类型、参数类型、修饰符、异常、方法的字节码),静态变量(即类变量,静态变量和静态块)
Java栈:以帧的形式存放本地方法的调用状态,包括方法调用的参数、局部变量、中间结果(局部变量区为一个以字为单位的数组,每个数组元素对应一个局部变量的值。调用方法时,将方法的局部变量组成一个数组,通过索引来访问。若为非静态方法,则加入一个隐含的引用参数this,该参数指向调用这个方法的对象。而静态方法则没有this参数。因此,对象无法调用静态方法。)
- C++ 内存分配 vs java内存分配
- JAVA中的内存分配
- java内存分配初探
- JAVA中的内存分配
- java内存分配
- 初探java内存分配
- java内存分配
- java内存分配研究
- java内存分配初探
- java中的内存分配
- java中内存分配
- java的内存分配
- Java 内存分配
- java内存分配图
- Java内存分配
- java中的内存分配
- java 内存分配
- Java中的内存分配
- 真是一个好的什么吧
- Flex4 布局之TileLayout布局
- Java多线程
- 的哇哈的哇何方人士的
- 怎样协调好MFC中ondraw与ontimer的关系
- Java内存分配
- mysql用户管理
- 移动开发入门
- android:ellipsize属性的含义
- Qt中文乱码问题解决办法
- 为apt-get添加http代理
- 新站如何快速渡过百度考核期
- 读书计划
- 身边的逻辑学——名犬诈骗