首页 / JAVA / Java内存划分、类与对象
Java内存划分、类与对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java内存划分、类与对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2197字,纯文字阅读大概需要4分钟。
内容图文
![Java内存划分、类与对象](/upload/InfoBanner/zyjiaocheng/927/9e93c8d90166432b8c82bb9544c0a2c5.jpg)
====================================================
方法区主要存储.class的方法信息(比如名字、返回值、参数等等)
比如此图,将main在栈中开辟一处空间,这就是进栈
这个array数组名称是一个局部变量
因为new int[3]是new出来的,所以存放在堆(heap)中,在堆中开辟一个空间,有了一个地址后赋值给栈中的数组名称,数组名称其实就是存放地址的
array[1] 中的array就可以知道地址,那么是地址的第一号元素,也就可以在堆中找到了。(这里有点C语言中指针的味道…)
====================================================
====================================================
arrayC仅仅是数组名字,new int[3]和new int[5]才是数组
====================================================
面向过程:强调步骤。
面向对象:强调对象。
面向对象的语言中,包含了三大基本特征,即封装、继承和多态
类
类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该
类事物。
现实中,描述一类事物:
属性:就是该事物的状态信息。
行为:就是该事物能够做什么。
举例:小猫。
属性:名字、体重、年龄、颜色。 行为:走、跑、叫。
对象:是一类事物的具体体现。对象是类的一个实例,必然具备该类事物的属性和行为。
类是对一类事物的描述,是抽象的。
对象是一类事物的实例,是具体的。
类是对象的模板,对象是类的实体。
定义类:就是定义类的成员,包括成员变量和成员方法
成员变量:定义在类中,方法外
成员方法:不加关键字static
对象的创建及其使用
1.导包
2.创建
格式: 类名称 对象名=new 类名称();
3.使用成员变量
格式: 对象名.成员变量名
4.使用对象成员方法
格式: 对象名.成员方法名(参数)
====================================================
一个对象调用一个方法 内存图
通过上图,我们可以理解,在栈内存中运行的方法,遵循"先进后出,后进先出"的原则。变量p指向堆内存中
的空间,寻找方法信息,去执行该方法。
但是,这里依然有问题存在。创建多个对象时,如果每个对象内部都保存一份方法信息,这就非常浪费内存
了,因为所有对象的方法信息都是一样的。那么如何解决这个问题呢?请看如下图解。
====================================================
两个对象调用同一个方法
对象调用方法时,根据对象中方法标记(地址值),去类中寻找方法信息。这样哪怕是多个对象,方法信息
只保存一份,节约内存空间。
====================================================
一个引用,作为参数传递到方法中内存图
引用类型作为参数,传递的是地址值
====================================================
内容总结
以上是互联网集市为您收集整理的Java内存划分、类与对象全部内容,希望文章能够帮你解决Java内存划分、类与对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。