java内存管理
来源:互联网 发布:淘宝美工外包 编辑:程序博客网 时间:2024/06/05 20:37
今天看了一些关于java内存管理的书。
1、内存管理分为内存分配和内存回收,java虚拟机有自动回收机制,但并不意味着我们在程序中可以肆无忌惮的创建对象,1:是内存减少,降低程序性能;2:大量已分配内存进行垃圾回收,家中垃圾回收负担,降低程序运行性能。
2、类变量和实例变量
类变量属于类,jvm在初始化类时对类变量进行初始化,只运行一次。class Test{static int seg=100; //1、定义变量时初始化 static{name="nihao"; //2、在静态代码中初始化}
}
类变量初始化分为两步:1、先为类中所有类变量分配内存空间(赋为默认值:int(0),对象(null))2、再依次对类变量进行初始化。
实例变量属于对象,
class Test{int seg=100; //1、定义变量时初始化 {name="nihao"; //2、在非静态代码块中初始化}
public Test(){
int age=12; //3、构造函数中初始化
}}在编译时,首先是定义变量,赋值初始化是由构造函数完成的。
3、java的继承:
class Base{
int count=1;
Dispaly(){
}
}
class Derived extends Base{
int count=3;
Dispaly(){
}
}
当 Base base= new Base();
Derived derived =new Derived();
Base bd=new Derived();//此时bd.count=1; dbd.Display() -->调用子类的方法。
Derived db1=base; //db1.count=1; db1.Display()-->调用父类的方法。
Base bd1=derived; //XXX汇报异常,父类不能转换成子类,
总结:子类重写父类的方法,再由子类引用指向父类实例;
父类引用不能引用子类的实例,因为子类的很多方法可能父类并不存在,这种类型转换是不存在的。
当变量的编译类型和运行类型不同时,当调用实例变量时,为引用变量的类型;当调用实例方法时,为所引用的实例对象对的方法。(两者处理不同)
java内存管理真是一门学问,以后要慢慢学习~~~~
- 【Java】Java内存管理
- java内存管理-堆栈内存
- java内存管理-内存回收
- JAVA内存管理
- java内存管理
- JAVA 内存管理
- JAVA 内存管理
- java得内存管理
- Java内存管理思想
- Java内存管理思想
- Java内存管理思想
- java内存管理
- Java内存管理
- Java内存管理概述
- Java内存管理
- Java内存管理
- Java内存管理
- Java内存管理
- 当启动tomcat时候出现 Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds.
- Netty概述
- 关于PHP动态转静态减轻压力的方法
- iOS创建.pch文件
- yum安装lnmp
- java内存管理
- 通过InitBinder注解,做到全局的格式化转换
- kendo grid序号显示
- Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
- 《树状数组求逆序对数》
- windows 平台下生成 hash 值的几款软件,支持的算法有 md5 、sha1 等,可以校验下载文件的完整性
- php中heredoc的使用方法
- 系统目录介绍
- Java NIO框架Netty教程(一) – Hello Netty