1、实例化对象的过程可以分为两部分,例如下面代码:

Person per = new Person();

该代码分为两部分:

第一,声明对象:Person

per,这部分是在栈内存中声明的,与数组一样,数组名称及时保存在占内存之中,只是开闭了真内存,对象是无法使用的,必须有其堆内存的引用才可以使用。例如,如果只声明Person

per;那么这时候如果使用per来调用Person类的方法的话就会出错,提示per对象没有实例化,也就是这个道理,因为它还没有完成整个实例化过程,只是在栈内存中开辟了空间,没有与之对应的堆内存的实际数据,所以还不能使用。

第二,实例化对象:new Person(),在堆内存中开辟空间,所有的内容都是默认值。

栈内存和对内存以及属性存储方式如下图所示

2、开发中,声明数据的时候最好给一个初始值,这样错做会比较方便。

3、对象是保存在栈内存之中,属性是保存在堆内存之中,那么方法保存在哪儿呢?

其实方法是保存在全局代码区域之中的,此区域的内容是所有对象共享的。一个栈内存只能指向一个堆内存。

4、使用对象的时候,对象必须被实例化之后才能使用。(实例化对象,并不单单是指直接通过new关键字来实现的,只要其有堆内存的空间指向,则就表示实例化成功。例如:Perslon

per1=null;Person per2 = null;per1 = new Person();per2 =

per1;上面代码中per2虽然没有通过new实例化,但是它在堆内存空间也有指向,所以也已经实例化成功。)

5、总结:对象保存在栈内存之中,而其具体内容(属性值)保存在堆内存之中。

对象间的引用传递,实际上传递的是堆内存空间的使用权。

实例化Java对象_Java面向对象基础之对象实例化相关推荐

  1. java final对象_java面向对象基础_final详细介绍

    一.final关键字 1.final修饰的成员变量,其实就是常量 public class Example01 { public final String userName="小李" ...

  2. java中的面向对象基础

    java中的面向对象基础 1.对象 #一切客观存在的事物都是对象,万物皆对象. #任何对象,一定具有自己的特征和行为. 2.类 (1)类的定义 (2)对象的创建 (3) 类与对象的关系 类:定义了对象 ...

  3. 允许使用抽象类类型 isearchboxinfo 的对象_Java面向对象编程三大特征 - 多态

    Java面向对象编程三大特征 - 多态 本文关键字:Java.面向对象.三大特征.多态 多态是面向对象编程的三大特征之一,是面向对象思想的终极体现之一.在理解多态之前需要先掌握继承.重写.父类引用指向 ...

  4. 03-面向对象之面向对象基础

    面向对象之面向对象基础 面向对象基本概念 Java 创建类和对象 匿名对象 类的成员 属性 方法 基本使用方式 方法重载 可变个数的形参 方法参数的值传递机制 递归方法 构造器 代码块 内部类 面向对 ...

  5. java 9对象_java(9)类和对象

    一.理解什么是类和对象 万事万物皆对象 1.1.属性--对象具有的特征(特点) 1.2.方法--对象可执行的操作(能干什么事) 1.3.对象的定义: 是一个客观存在的,看的见或摸得着的实体,由属性和方 ...

  6. java如果把字符串转成对象_Java中的重复对象:不仅仅是字符串

    当Java应用程序消耗大量内存时,它本身就会出现问题,并可能导致GC压力增加和GC暂停时间过长.在我之前的一篇文章中,我讨论了Java中常见的内存浪费源:重复字符串.两个 java.lang.Stri ...

  7. java vo对象转bo对象_java的几种对象(PO,VO,DAO,BO,POJO)解释(转)

    PO:persistant object持久对象,可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合. PO中应该不包含任何对数据库 ...

  8. java比较两个对象_java判断两个对象是否相等的方法

    java判断两个对象是否相等的方法 发布时间:2020-06-25 13:48:38 来源:亿速云 阅读:197 作者:Leah 这期内容当中小编将会给大家带来有关java判断两个对象是否相等的方法, ...

  9. java 考试题_JAVA语言基础内部测试题(50道选择题)

    JAVA语言基础内部测试题 选择题(针对以下题目,请选择最符合题目要求的答案,针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分.)(每题2分) 没有注明选择几项 ...

最新文章

  1. 再见了,收费的 Navicat!
  2. [Swift]LeetCode2. 两数相加 | Add Two Numbers
  3. python3.6.2安装教程-CentOS 6.5中安装Python 3.6.2的方法步骤
  4. PAT甲级1078 Hashing:[C++题解]哈希表、哈希表开放寻址法、二次探测法
  5. 如何备份被独占文件?
  6. matlab loopcount,求助一个数值积分问题,用matlab的quadgk函数来计算,谢谢!
  7. 不用 H5,闲鱼 Flutter 如何玩转小游戏?
  8. 9行代码AC——1011 A+B 和 C (15分)
  9. 【转】数据库设计:物理结构设计
  10. oracle如何添加undo,ORACLE RAC 11G 添加以及删除UNDO表空间
  11. 路由器的工作原理_VRRP(虚拟路由器冗余协议)知识点梳理
  12. 论耐力,哺乳动物中人类可能是第一
  13. DIV+CSS图片和文字如何显示同一行
  14. 几何学五大公理_高中数学几何公理,定理。全部
  15. 初学vue,模仿个静态网站
  16. java之excel模板下载
  17. 【Windows】win7虚拟机安装VMware Tools
  18. OpenCV学习篇2:viz模块简单用法
  19. 区块链在中国(3):区块链场景漫谈
  20. (初学者视角)二极管和三极管的工作原理

热门文章

  1. Axure在SVN共享项目如何获取历史文件
  2. 中文版php.ini
  3. java hanoi塔问题_java 解决汉诺塔问题
  4. eclipse 安装git
  5. python的with关键字
  6. 计算机硬盘到内存不足,内存不够硬盘来凑,怪不得电脑卡!
  7. Storm的BaseBasicBolt源码解析ack机制
  8. python获取当前时间和前一天时间
  9. 关注:Eclipse,转贴eclipse CDT的开发文章
  10. BZOJ 1827: [Usaco2010 Mar]gather 奶牛大集会 树形DP + 带权重心