1.定义        super:当前对象的父类对象        this   :当前对象,谁调用this所在的方法,this就是哪一个对象。 2.内存分析 另一个例子:public static void main(String[] args) { A test = new
转载 2023-11-26 14:39:01
46阅读
面向对象三大特性:封装,继承、多态。继承用一句话总结就是:父亲可以有很多儿子,但儿子只能有一个亲爹。继承描述的是事物之间的所属关系。看下图:动物是一个类,食草动物、食肉动物也是一个类。其中羊属于食草动物,食草动物又属性动物。所以动物是一个类;食草动物、食肉动物都是动物的子类;羊类、兔类是食草动物的子类;狼类、虎类是食肉动物的子类。那这些包含与被包含的关系在程序里又是怎么处理的呢?这就要提到继承了。
今天,复习的是继承内存分配。我们知道,Java内存可以初略分为堆、栈、方法区。1. package sort; 2. class Person{ 3. public int age; 4. public String name; 5. public Person(){ 6. "父类"); 7. say(); 8. } 9. public
继承主要是为了解决菱形继承的问题。针对多继承的二义性本文不ua...
原创 2022-11-07 13:04:05
109阅读
今天,复习的是继承内存分配。我们知道,Java内存可以初略分为堆、栈、方法区。package sort; class Person{ public int age; public String name; public Person(){ System.out.println("父类"); say(); } public void say(){ System.out.pr
转载 2024-06-21 11:03:59
50阅读
本次说说继承,方法的重载,方法的重写,this关键字,static关键字,super关键字,子类中的构造方法与内存分析。 继承:       java与C++不同,java是单继承机制,一个子类只能继承一个父类,这样减少了很多不必要的麻烦,试想如果继承多个父类的话,每个父类有相同的方法,或者属性,情况就复杂了。所以java规定单
转载 2024-10-18 00:51:28
9阅读
为了让大家对于面向对象编程有更深入的了解,我们要对程序的执行过程中,内存到底发生了什么变化进行剖析,让大家做到“心中有数”,通过更加形象方式理解程序的执行方式。建议:1. 本节课是为了让初学者更深入了解程序底层执行情况,为了完整的体现内存分析流程,会有些新的名词,比如:线程、Class对象。大家暂时可以不求甚解的了解,后期学了这两个概念再回头来看我们这篇内存分析,肯定收获会更大。Java虚拟机的内
Java中的继承是一种机制,表示为一个对象获取父对象的所有属性和行为。在Java继承是:可以创建基于现有类构建新的类。 当从现有类继承时,就可以重复使用父类的方法和字段,也可以在继承的新类中添加新的方法和字段。继承表示IS-A关系,也称为父子关系。为什么在Java中使用继承对于方法覆盖(因此可以实现运行时的多态性),提高代码可重用性。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方
转载 2023-06-05 22:36:02
152阅读
Java程序运行在JVM(Java Virtual Machine,Java 虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在学习Java内存分配原理的时候一定要牢记这一切都是在JVM中进行的,JVM是内存分配原理的基础与前提。简单通俗的讲,一个完整的Java程序运行过程会涉及以下内存区域:1.寄存器 JVM内部虚拟
转载 2024-05-29 00:11:34
36阅读
图解Java继承内存分配继承的基本概念:(1)Java不支持多继承,也就是说子类至多只能有一个父类。(2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法。(3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承。(
转载 2013-05-04 10:20:00
477阅读
2评论
堆是一个运行时数据区,通过new等指令创建,不需要程序代码显式释放<1>优点:可动态分配内存大小,生存周期不必事先告诉编译器,Java垃圾回收自动回收不需要的数据;<2>缺点:运行时需动态分配内存,数据存取速度较慢。如:String str = new String(“abc”); String str2 = new String(“abc”);它们代表的含义如下图所示:
转载 2023-08-21 18:06:05
76阅读
一、java程序运行时,有时会产生JavaCore及HeapDump文件,它一般发生于Java程序遇到致命问题的情况下. 二、JavaCore是关于CPU的,而HeapDump文件是关于内存的。 JavaCore文件主要保存的是Java应用各线程在某一时刻的运行的位置,即JVM执行到哪一个类、哪一个方法、哪一个行上。它是一个文本文件,打开后可以看到每
转载 2023-05-18 15:57:02
386阅读
                                         Java内存模型的基础            &
练习 一、选择1、在Java中,以下程序的输出结果是AA. Super–>print B. Test–>print C. Super–>print Test–>print D. 编译错误 2、在Java中,以下关于方法重载和方法重写描述正确的是D A. 方法重载和方法重写实现的功能相同 B. 方法重载出现在父子关系中,方法重写是在同一类中 C. 方法重载的返回类型必须一致,
转载 2023-07-06 20:03:01
435阅读
htop:查进程的内存占用$ htop相关名词:VIRT:virtual memory usage 虚拟内存进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量RES:resident memory usage 常驻内存进程当前使用的内存大小,但不包括swap out包含其他进程的共享如果申请100m的
转载 2023-05-24 12:53:11
309阅读
Java内存溢出分析案例Java常见内存溢出类型:堆内存溢出现象内存溢出分析下载安装分析软件下载 hprof 文件MAT 分析定位问题Shortest Paths To the Accumulation Point内存溢出分析参考文档: Java常见内存溢出类型:常见的内存溢出主要有以下几种: 1、堆内存溢出(OutOfMemoryError:java heap space) 2、栈内存溢出(S
在工作中可能会遇到内存溢出这种灾难性的问题,那么程序肯定是存在问题,找出问题至关重要,上一篇文章讲了jmap命令的使用方法,当然用jmap导出的文件我们也看不懂啊,那就交给memory analyzer(mat)这个工具,让他帮助我们来观察程序的内存分布情况吧。造成OutOfMemoryError原因一般有2种:1、内存泄露,对象已经死了,无法通过垃圾收集器进行自动回收,通过找出泄露的代码位置和
IDEA是个好东西,可以说是地球上最好的Java开发工具,但是偶尔也会卡顿,仔细想想IDEA也是Java开发的,会不会和GC有关,于是就有了接下来对IDEA的GC进行调优IDEA默认JVM参数:-Xms128m -Xmx750m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftR
转载 2024-03-11 14:44:43
68阅读
一个对象实例占用了多少字节,消耗了多少内存?这样的问题在c或c++里使用sizeof()方法就可以得到明确答案,在java里好像没有这样的方法(java一样可以实现),不过通过jmap工具倒是可以查看出一个对象的占用内存的大小,这里介绍一种通过分析java代码计算内存使用情况的方法。
转载 2023-06-05 16:00:45
188阅读
分析内存是深入了解编程的第一步,以下来演示一下编程中常见的内存分析,文章脉络:数据类型    数据类型不同,内存分配位置和大小也不同,用一张图表示Java中的数据类型。除了基本数据类型,其它全部是引用类型    局部变量:方法体内声明的变量,包括形参都是局部变量方法体外。    成员变量:类内声明的变量为成员变量。布局  &nb
  • 1
  • 2
  • 3
  • 4
  • 5