1、java中的变量先声明、再赋值、再使用。(局部变量必须初始化,成员变量默认初始化)

2、基本类型之外的所有类型都是引用类型。基本类型占一块内存,引用类型占两块(所有new出来的东西装在堆内存,因为是堆是在运行时动态分配内存)。

方法只有在调用的时候才占用内存。

四块:(待完善)

code seg代码区:存放类(类的方法)

data seg数据区:存放静态变量和字符串常量

stack栈内存:存放基本类型变量和局部变量(方法参数和方法内生成的变量)(局部变量都分配在这)

heap堆内存:存放new出来的对象

3、关于构造方法:如果自己没有定义,则编译器自动添加默认构造方法;如果自己已经定义了,则编译器不再生成默认构造方法,构造方法没有返回值(不能写void)

4、

5、重载(方法名相同):参数个数或参数类型不同才构成重载(编译器可以区分开),只有返回值类型不同不构成重载(编译器无法区分开)。

6、例题:注意基本类型和引用类型都是通过“值传递”的。

可见,运行完毕后,只有change3()方法可以改变d2的值,而change1()和change2()不能达到预期效果,不能改变值data和d1的值。

红点处执行完毕后,change2()方法中的局部变量b马上消失(因为是栈中的局部变量,随着方法的结束而消失),但b所指向的堆内存不是马上消失,而是等待垃圾回收。

7、内存分析大题(方法的返回值存储在一个临时区域内,打印完成后自动消失。)

JAVA笔记2-面向对象与内存解析的更多相关文章

  1. JAVA中的面向对象与内存解析_2

    构造方法(构造函数)   • 使用new +构造方法创建一个新的对象. • 构造函数是定义在Java类中的一个用来初始化对象的函数. • 构造函数与类同名且没有返回值. • 例如:Person类的构造 ...

  2. JAVA中的面向对象与内存解析_1

    对象的创建和引用   必须使用new关键字创建对象. 使用对象(引用成员变量或来引用对象的成员变量. 使用对象(引用)方法(参数列表)来调用对象的方法. 同一类的每个对象有不同的成员变量存储空间. 同 ...

  3. 03_2_JAVA中的面向对象与内存解析

    03_2_JAVA中的面向对象与内存解析 1. 成员变量 成员变量可以是Java语言中任何一种数据类型(包括基本数据类型和引用数据类型) 在定义成员变量时可以对其初始化,如果不对其初始化,Java使用 ...

  4. Java笔记(九)……面向对象I

    面向对象概念 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程 强调的是功能行为 面向对象 将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向 ...

  5. Java笔记(十三)……面向对象III继承(inheritance)

    继承概述 继承概述 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继那个类即可. 多个类可以称为子类,单独这个类称为父类或者超类. 子类可以直接访 ...

  6. java笔记之面向对象

    一.面向过程与面向对象的区别 1 面向过程:主要关注点是:实现的具体过程,因果关系[集成显卡的开发思路] * 优点:对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低. * 缺点:采用面向 ...

  7. Java笔记(十)……面向对象II封装(Encapsulation)

    封装概念 封装: 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处: 将变化隔离. 便于使用. 提高重用性. 提高安全性. 封装原则: 将不需要对外提供的内容都隐藏起来. 把属性都隐藏,提 ...

  8. java 笔记(1)-—— JVM基础,内存数据,内存释放,垃圾回收,即时编译技术JIT,高精度类型

    1.java中5个存放数据的地方: (1).寄存器(Registers):位于CPU内部,是速度最快的存储区,但是数量和容量有限.在java中不能直接操作寄存器. (2).栈(Stack):栈位于通用 ...

  9. [java学习笔记]java语言核心----面向对象之this关键字

    一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数 ...

  10. 转 Java笔记:Java内存模型

    Java笔记:Java内存模型 2014.04.09 | Comments 1. 基本概念 <深入理解Java内存模型>详细讲解了java的内存模型,这里对其中的一些基本概念做个简单的笔记 ...

随机推荐

  1. 【DSP开发】TI第二代KeyStone SoC诠释德仪的“云”态度

    11月14日,期盼已久的德州仪器基于ARM Cortex-A15的产品终于新鲜出炉.伴随着TIKeyStone II多核 SoC系列产品的发布,结合了ARM Cortex-A15 处理器.C66x D ...

  2. 3 基于梯度的攻击——MIM

    MIM攻击原论文地址——https://arxiv.org/pdf/1710.06081.pdf 1.MIM攻击的原理 MIM攻击全称是 Momentum Iterative Method,其实这也是 ...

  3. Durable NAND flash memory management

    词条积累 1.NAND flash memory http://www.searchstorage.com.cn/whatis/word_6052.htm http://baike.baidu.com ...

  4. php 二维数据排序 排行榜

    php 二维数据排序 排行榜 $rateCount = array(); foreach($groupUsers as $user){ $rateCount[] = $user['rate']; } ...

  5. Diameter of Binary Tree

    Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a b ...

  6. 不同浏览器之间的javascript和css兼容性问题

    po主手头维护的网站是上世纪的作品.当时约摸ie所占的市场份额相当大,以至于开发人员都没有考虑到浏览器兼容性问题(这不科学!).怎奈po主是个强迫症阿.最近在修改的时候,还是没忍住,把兼容性问题解决了 ...

  7. POJ - 1815 Friendship (最小点割集)

    (点击此处查看原题) 题目分析 题意:有n个人,编号记为1~n,n个人之间可能有人可以互相联系,如果A能和B联系,那么至少满足这两种情况之一:(1)A知道B的电话(2)A可以和C联系,并且C可以和B联 ...

  8. 错误:编码GBK的不可映射字符解决办法

    今天在cmd测试java代码的时候遇到了一个错误 解决办法: 输入javac  -encoding utf-8  文件名.java  原因: 由于JDK是国际版的,我们在用javac编译时,编译程序首 ...

  9. spark教程(二)-shell操作

    spark 支持 shell 操作 shell 主要用于调试,所以简单介绍用法即可 支持多种语言的 shell 包括 scala shell.python shell.R shell.SQL shel ...

  10. SpringMVC实现全局异常处理器 (转)

    出处:  SpringMVC实现全局异常处理器 我们知道,系统中异常包括:编译时异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手 ...