java对象及内存管理

翻译 2015年04月23日 22:03:44

1. 静态变量的初始化
这里写图片描述
输出结果为-2.8和17.2
这里写图片描述
这里写图片描述

2. 访问子类对象

public class Base {
    private int i = 2;
    public Base() {
        System.out.println(this.i);// 2
        this.display();// 0
        System.out.println(this.getClass());// Derived
        // this的编译类型是Base,无法调用子类的sub()方法
        // this.sub();
    }
    public void display() {
        System.out.println(i);
    }
}

这里写图片描述
Java对象是由构造器构造的吗?实际上,构造器只是负责对Java对象实例变量执行赋值,在执行构造器之前,该对象所占的内存已经被分配出来了。
这里写图片描述
由于实例变量经过编译后会被提取到构造器中,故Base的构造器的第一行代码其实为 i=2;
这里写图片描述
(在下面第4点里面有解释)

3. 调用被子类重写的方法
这里写图片描述
这里写图片描述
这里写图片描述

4. 继承成员变量与继承方法的区别
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

5. final “宏变量”
在上面第1点中,若将staitc double initPrice用final修饰,两处都会输出17.2:
这里写图片描述
再看一个例子
这里写图片描述
将str1、str2用final修饰即可
这里写图片描述
注:以上内容摘自《疯狂java程序员的基本修养-李刚》

Java自动内存管理机制(三) 对象、引用

垃圾收集器与内存分配策略 哪些内存需要回收? 什么时候回收? 如何回收?...

解析Java对象引用与JVM自动内存管理

象引用应用程序设计接口是JDKTM1.2中新定义的。该应用程序设计接口允许应用程序以对象引用的方式与JVM的内存管理器进行交互。当应用程序需管理大量内存对象或者在新的Java对象创建之前需删除原有对象...

【JAVA优化编程】内存管理之——(6)对象重用与GC

6  对象重用与GC     有时候我们为了提高系统的性能,避免重复耗时的操作,希望能够重用某些创建完成的对象,但是既然是重用(reuse)就涉及对象保存的问题,通常将用来缓存对象的应用称为对象池(...

Java对象及内存管理

在同一个JVM内,每个类只对应一个Class对象,但每个类可以创建多个Java对象。      类中变量分为:实例变量和类变量。    类变量在分配内存时会在使用类时就开始分配内存,一个类的类变量只...

【JAVA优化编程】内存管理之——(2)JVM中对象的生命周期

2  JVM中对象的生命周期    在JVM运行空间中,对象的整个生命周期大致可以分为7个阶段:创建阶段(Creation)、应用阶段(Using)、不可视阶段 (Invisible)、不可到达阶段...

java对象内存管理的简单认识!

java里面有句名言:Everything is object!但是java还算不上是纯面向对象的语言。它的数据类型包括基本数据类型(byte,short,int,char,long ,float,d...

Java对象及其内存管理

一 实例变量和类变量   Java中的变量大体可分为成员变量和局部变量。其中局部变量可分为如下三类:     形参;     方法内的局部变量;     代码块内的局部...

深入java面向对象五:Java的内存管理

Java的内存控制和管理技巧;

Java的内存管理实际上就是对象的管理

一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率 ,才能提高整个应...

Java的内存管理实际上就是对象的管理

Java的内存管理实际上就是对象的管理,其中包括对象的分配和释放。   对于程序员来说,分配对象使用new关键字;释放对象时,只要将对象所有引用赋值为null,让程序不能够再访问到这个对象,我们称该...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java对象及内存管理
举报原因:
原因补充:

(最多只允许输入30个字)