`
majm
  • 浏览: 35565 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

对象和内存

    博客分类:
  • Java
阅读更多
JVM的垃圾回收是一条后台线程完成。本身就很消耗性能。
1.不断分配额使得系统的可用内存减少,降低程序性能。
2.大量分配内存回收,使得垃圾回收负担加重。降低程序运行性能。

形参:在方法签名中定义的局部变量。
方法内部的局部变量,早方法内部定义的。随方法结束而消亡。
代码块中的局部变量,代码块中定义的。随代码块结束而消亡。


成员变量(field)
Javap <options> <class>
      -c;        分解方法的代码
      -l;        用于指定显示行号和局部变量
      -public;   显示级别
      -verbose;  更进一步的详细信息

父类的构造器,先静态初始化块,非静态初始化块构造器。

如果即没有super调用,也没有this调用,系统会在执行子类构造器之前,隐式调用父类无参构造器。

当this在构造器中,this代表正在初始化的java对象。

子类会隐式调用父类的构造器。
当父类构造this代表着谁初始类的实例。

Java处理成员变量,与成员方法是有区分的。
成员变量表现的是声明是的值。
成员方法表现的是该对象实际的内存值。如:JavaBean

当通过引用变量来访问它所引用对象实例时,该实例变量的值取决于是声明是所用的类型。

当在父子类关系时,
创建了类时,内存中有类的对象,其中也保存类他所有父类定义的全部实例变量。

父类中有同名的子类变量时,会隐常但不会被覆盖。

final是变量的修饰符。
final修饰的变量,不能对他重新赋值。

final只能在2个地方值定义初始值。
final的变量必须显式指定初始值。
在静态块中为final变量进行初始值。

宏替换,final,就是在编译时被确定下来。
final,初始赋值,在编译时,被当成了直接量。

在内部类中访问局部变量时,局部变量要用final来修饰。
Overried。注释修饰的方法,必须重写父类的方法。

对于普通局部变量而言,他的作用域就是停留在该方法中。当方法执行结束时,该局部变量也就消失了。
但是内部类可能产生隐式“闭包”闭包使得局部变量,脱离它所在的方法,继续存在。
分享到:
评论

相关推荐

    Python-面向对象和内存分析 2.zip

    ================面向对象和内存分析================== 086.面向对象和面向过程的区别_执行者思维_设计者思维 087.对象的进化故事 088.类的定义_类和对象的关系 089.构造函数__init__ 090.实例属性_内存分析 091....

    java语言程序设计 java编程基础入门教程资料 (4)java中的面向对象和内存解析 共74页.pptx

    Java中,内存管理主要包括栈内存和堆内存两部分。 - **栈内存**:主要用于存储局部变量和方法调用时的信息,如方法内的局部变量、方法参数等。栈内存中的数据生命周期与方法的执行周期相同,当方法执行完毕后,栈...

    C++ 内存对象布局

    当子类添加了虚函数时,对象内存中除了父类成员和自身成员外,还会加入虚函数指针。虚函数指针的位置根据编译器的不同而有所不同,但通常是放在最前面或成员变量之后。 ##### 3. **单一继承,有成员变量且有虚函数...

    探讨Java的对象是怎么在内存中产生的?

    ### 探讨Java的对象在内存中产生的机制 #### 一、引言 Java作为一种主流的面向对象编程语言,其对象的创建与管理是程序运行的基础。本文将详细探讨Java对象在JVM中的创建过程以及其内存布局,帮助读者更深入地理解...

    C++对象内存模型.pdf

    本文讨论了 C++ 对象内存模型的基本概念和结构,并通过实验和分析来探索对象内存结构、简单类型相关数据、包含虚函数类的对象内存结构、继承下的多态性等问题。理解 C++ 对象内存模型对于 C++ 编程语言的学习和应用...

    java 对象 内存 大小

    在Java编程语言中,了解对象内存大小是优化内存使用、提高程序性能的关键步骤。当我们谈论“Java对象内存大小”时,我们通常指的是一个Java对象在内存中占据的空间,包括对象头、实例字段以及可能的对齐填充。这个...

    Java零基础-对象的创建和使用-内存分析.md

    对象创建的两个主要步骤包括分配内存和初始化对象。 1. **分配内存**:当使用`new`关键字时,Java虚拟机会为新对象分配内存空间。 2. **初始化对象**:分配完内存后,会根据类的构造函数来初始化对象的状态。 示例...

    类的对象的内存布局

    在C++编程中,类的对象内存布局是一个关键的议题,特别是涉及到多态性、继承和虚函数时。这里我们将深入探讨这些概念,并结合你提供的"类的继承"这个主题进行详细解析。 首先,让我们理解一个类的对象在内存中的...

    C++对象内存布局[归类].pdf

    C++对象内存布局是指在C++编程语言中对象在内存中的存储结构和布局方式。了解C++对象的内存布局对于理解C++编程语言的对象模型和内存管理机制非常重要。 从内存布局的角度来看,C++对象可以分为三部分:对象头、...

    JAVA中的面向对象与内存解析

    在Java中,内存分为堆内存和栈内存。栈内存主要存储基本类型和对象引用,生命周期短,随着方法调用的结束而销毁。堆内存则用于存储所有对象实例,其生命周期较长,由垃圾回收器(Garbage Collector,GC)管理。当一...

    内存映射 C++实例

    需要注意的是,在使用内存映射时,需要确保文件句柄和文件映射对象的关闭,以免出现内存泄露问题。 内存映射是一种高效的文件读写技术,能够解决大文件读写时的内存资源不足问题。但是,在使用内存映射时,需要注意...

    weblogic调优memory内存不足与内存泄漏问题

    对于内存泄漏的定位,可以使用内存分析工具,如MAT(Memory Analyzer Tool),分析heap dump文件,找出占用内存最多的对象和内存泄漏的根源。 总的来说,解决WebLogic的内存不足与内存泄漏问题,需要结合理论知识、...

    测试java对象占用内存大小的例子

    总结来说,这个例子旨在帮助开发者理解Java对象在内存中的表示方式,以及不同类型和结构的对象如何影响内存使用。通过这种方式,开发者可以优化代码,减少不必要的内存开销,提高应用程序的效率。同时,这也提醒我们...

    统计缓存(java对象所占的内存)大小

    4. **Memory Profiler**:如YourKit、Eclipse Memory Analyzer等第三方工具,它们提供了丰富的内存分析功能,可以查看对象的内存占用和内存泄漏。 了解和监控Java对象的内存大小对于优化性能至关重要。当缓存大小...

    JAVA对象所占内存大小计算例子

    首先,我们需要理解Java对象内存占用的基本原理。每个Java对象都由三部分组成:对象头(Object Header)、实例数据(Instance Data)和对齐填充(Padding)。对象头包含对象引用和类型信息,实例数据是对象实际存储...

    Python-函数和内存分析 2.zip

    ================面向对象和内存分析================== 086.面向对象和面向过程的区别_执行者思维_设计者思维 087.对象的进化故事 088.类的定义_类和对象的关系 089.构造函数__init__ 090.实例属性_内存分析 091....

    Java对象内存布局 - 小分析

    理解对象内存布局有助于优化程序性能,例如减少对象创建、理解和使用对象池,或者通过调整JVM参数来改善垃圾回收效率。`SizeOfAgent.java`、`Rule1.java`和`Rule2.java`可能包含了用于分析对象大小的代码,而`rule1....

    java内存对象分配过程研究

    在Java中,对象的创建主要包括定义对象变量和构造对象两个步骤,而构造对象的过程又分为为对象分配内存和初始化对象两个阶段。 ##### 3.1 定义对象变量 定义对象变量实际上就是定义一个指向对象的引用,例如: ```...

    (麻省理工免费课程)C语言内存管理和C++面向对象编程

    ### 麻省理工免费课程:C语言内存管理和C++面向对象编程 #### 一、C语言简介 在《麻省理工免费课程:C语言内存管理和C++面向对象编程》这一课程中,首先对C语言进行了介绍。C语言是一种历史悠久且功能强大的编程语言...

Global site tag (gtag.js) - Google Analytics