JAVA对象创建过程内存图解
JAVA对象创建过程内存图解
1、类与对象
类是现实事物的抽象,将现实事物描述成对应的类,类中封装了成员变量、构造方法、成员方法、set/get方法。
比如说人,人都有哪些属性?姓名,年龄,性别...等等这些都属于人的属性,可以将其封装为类的成员变量。人都有哪些行为?吃
饭,睡觉...等等都属于人的行为,可以将其封装为类的成员方法。那么就可以定义一个Person类来描述人这一类事物!
public class Person {
//成员属性 private String name;//姓名 private int age;//年龄 //成员方法 //吃饭 public void eat(){ System.out.println("中午吃饭"); } //睡觉 public void sleep(){ System.out.println("需要休息"); } //空参构造 public Person() { } //带参构造 public Person(String name, int age) { this.name = name; this.age = age; } //getter/setter public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }
}
2、对象的内存解释
对象在内存中的位置:对象由new关键字创建,如同数组,实体存在于堆内存中.任何事物均可以定义成类,创建对象,属于引用类型.而对象的引用变量是一个普通变量。存储的值是该对象堆内存中的地址.
创建对象:
public class Test {
public static void main(String[] args) { //创建对象 Person p = new Person(); //给成员属性赋值 p.setName("CXK"); p.setAge(18); //调用成员方法 p.eat(); p.sleep(); }
}
引用类型赋值代码解释:
引用类型赋值对应内存图 :
作者:ajax_JK
来源:CSDN
原文:https://blog.csdn.net/lwfr_jqw/article/details/91351357
版权声明:本文为博主原创文章,转载请附上博文链接!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
java后台生成二维码,并在前端网页上显示
java后台生成二维码,并在前端网页上显示我做的是在网站内容详情页下点击微信分享,需要弹出二维码,话不多说,直接看效果:1 首先在前端页面定义二维码容器,用来存放后台生成的二维码(下面是对应上图中的三个logo图标,放在这里是为了让大家看得更清楚!) <ul> <li><img src="/static/Images/HitArea/logo-sina.png" alt="" onclick="shareToWeiBo()"></li> <li><img src="/static/Images/HitArea/logo-friendCircle.png" alt="" onclick="WeiXin()"></li> <li><img src="/static/Images/HitArea/logo-QQzone.png" alt="" onclick="qqZoneShare()"></li> </ul> 12345 `<!-- 存放二维码的容器 ...
- 下一篇
Python实现MAC地址转换
公司需求通过MAC地址进行Vlan划分,统计的MAC地址为 交换机命令行中需要输入的MAC地址为 需要将MAC地址进行转换,思路为将MAC地址分成数组,取出其中的 2,8,14 下标位的值即可。直接干货吧。 def cw_mac_add(mac_add): #mac_add='02:00:00:00:00:0c' result = re.findall('\S',mac_add) print(result) rmkey = [2,8,14] a_index = [i for i in range(len(result))] a_index = set(a_index) b_index = set(rmkey) index = list(a_index-b_index) result = [result[i] for i in index] print(result) str_result = "".join(result) print(str_result) def read_csv(): csvFile = open("netexcel.CSV","r") reader = csv....
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 设置Eclipse缩进为4个空格,增强代码规范
- Mario游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Redis,开启缓存,提高访问速度