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对象及内存管理

在同一个JVM内,每个类只对应一个Class对象,但每个类可以创建多个Java对象。      类中变量分为:实例变量和类变量。    类变量在分配内存时会在使用类时就开始分配内存,一个类的类变量只...
  • wangjinyang_123
  • wangjinyang_123
  • 2015年06月08日 09:36
  • 303

一、基础篇 1.1 JVM 1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收

Java内存模型FAQ(一) 什么是内存模型 原文:http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html 第一章 译者:方腾飞 ...
  • zhaohongjuan
  • zhaohongjuan
  • 2016年01月19日 15:43
  • 664

java内存管理(堆、栈、方法区)

java内存管理简介  首先我们要了解我们为什么要学习java虚拟机的内存管理,不是java的gc垃圾回收机制都帮我们释放了内存了吗?但是在写程序的过程中却也往往因为不懂内存管理而造成了一些不容易察觉...
  • Liveor_Die
  • Liveor_Die
  • 2017年09月08日 15:46
  • 208

JAVA 对象内存管理

在JAVA中,JVM会将申请的内存从逻辑上划分为三个区域:堆、栈、方法区。这三个区域分别用于存储不同的数据。JVM在其内存空间开辟了一个称为“堆”的存储空间,这部分空间用于存储使用new关键字所创建的...
  • shf4715
  • shf4715
  • 2015年07月09日 23:05
  • 1275

JVM内存管理及GC机制

一、概述Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和...
  • suifeng3051
  • suifeng3051
  • 2015年09月08日 16:28
  • 10569

JVM——内存管理和垃圾回收

GC   何为GC? Java与C语言相比的一个优势是,可以通过自己的JVM自动分配和回收内存空间。垃圾回收机制是由垃圾收集器Garbage Collection GC来实现的,GC是后台的守护进程...
  • SEU_Calvin
  • SEU_Calvin
  • 2016年07月12日 21:05
  • 14306

内存管理的基本概念及范围

为什么要内存管理 因为内存有限,要确保应用流畅的运行需要提供合理的空间并且要合理的释放空间 一个app应用当内存达到  20M  系统会向该app发送警告  45M  系统会再次向该app发送...
  • q1989424
  • q1989424
  • 2015年11月08日 21:23
  • 529

二、对象及内存管理

1.什么是内存分配和内存回收?     内存分配:指创建Java对象时JVM为该对象在堆内存中所分配的内存空间;     内存回收:指当Java对象失去引用时,JVM的垃圾回收机制自动清理该对象,并回...
  • qq3399013670
  • qq3399013670
  • 2018年01月03日 08:40
  • 8

Python对象及内存管理

对象类型标准类型 Integer、Boolean、Long integer、Floating point real number、Complex number、String、List、Tuple、D...
  • u010171964
  • u010171964
  • 2015年09月09日 14:24
  • 6362

java多线程内存管理以及可见性

JMM(java内存模型) 描述Java程序中各种内存(线程共享变量)的访问规则。所有变量都存在于主内存中,每个线程都有自己独立的工作内存,线程间不可以直接互相操作其工作内存中的变量,以及主内存的变量...
  • u013986179
  • u013986179
  • 2016年09月08日 21:42
  • 300
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java对象及内存管理
举报原因:
原因补充:

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