所有人都知道面向对象思想,Java中的对象的创建在内存中是如何创建的,传智播客的视频看了一遍,把一些讲解的比较清晰的内容记录下来,方便记忆的更加深刻,Java中创建对象的过程,首先要理解JVM中栈、堆、方法区的空间,以及在这三个空间内,虚拟机都进行什么操作,这样就会理解起来容易一些,其实Java是在C语言的基础上发展起来的,很多的内容是借鉴C语言的。

以下分别是创建一个对象、两个对象、以及三个对象的内存图解,讲的比较详细,而且比较生动,很好理解:

(方法调用是在栈中进行的,当方法调用完成之后,会立即销毁的,栈中存放是有先进后出的原则的,应该是从下往上进行存储的,栈中存放方法名,以及堆中创建对象的内存地址,通过内存地址,进行对象属性的调用以及赋值,对象方法是存放在方法区的,同样是通过内存地址进行调用的,而且同一类对象共用一个方法区)

一、一个对象的创建在内存中的图解

二、两个对象的创建在内存中的图解

三、三个对象的创建在内存中的图解

(一个对象赋值给另一个对象,其实在内存中的表现就是指向对象在堆中位置)

最新文章

  1. C#测试运行时间
  2. java 调用axis2 webservice
  3. Openstack Neutron OVS ARP Responder
  4. [CareerCup] 9.7 Paint Fill 填充
  5. object_c函数多个返回值
  6. Android activity属性
  7. Codeforces Gym 100610 Problem H. Horrible Truth 瞎搞
  8. easy ui datagrid 数据绑定
  9. dom操作之开关灯
  10. Android 两个Activity进行数据传送 发送
  11. android 中如何限制 EditText 最大输入字符数
  12. spring读取properties文件
  13. Qt-4.6动画Animation快速入门三字决
  14. android 环境使用smack 必须注冊的组件
  15. shell 编程之 for while until 循环
  16. 程序设计中的数学思维函数总结(代码以C#为例)
  17. SpringMVC总结
  18. 一致性哈希(附带C++实现)
  19. [android] activity横竖屏切换的生命周期
  20. go语言的安装与开发环境

热门文章

  1. Linux网络协议栈(四)——链路层(1)
  2. MQTT、CoAP
  3. win7上安装macaca的报错问题
  4. 《The Unreasonable Effectiveness of Recurrent Neural Networks》阅读笔记
  5. 使用Jquery动态加入对象的集合属性,提交集合属性到表单
  6. MD5加密 和Sha256加密
  7. bzoj 1556: 墓地秘密【状压dp+spfa】
  8. 创建swagger的springboot-stater,并在spring cloud zuul网关中引入
  9. 关于浮动与清浮动 float
  10. Ubuntu 必装软件及安装教程