Java的引用(包括基本类型,对象引用类型)在声明、方法调用等时候都会产生新的引用,复制等号右侧的引用。分为下面3种情况:

基本类型代表的值存储在引用里面,引用中专门有个区域存储这个值,所以在复制的时候,值也同时被复制了。

引用类型这个区域存储的是对象在堆内存中的内存地址,引用复制的时候,指向的内存地址却是同一份,所以不会涉及值(也就是对象)的复制

数组里面都是存储的引用(包括基本类型,对象引用类型)

要弄清楚这个问题,首先要清楚,在JAVA中有四类八种基本类型,除了基本类型,全都是引用类型。比如你写 int i = 1; 那么它在内存里的分配是这样的:内存里分配了一块空间,这块空间的名字是i,里面的内容是1.

当你使用i的时候就可以访问这块空间里的内容。而引用类型不同,引用类型在内存中占两块内存。比如:你写String s;或者String s = null;这时候在内存里分配一块内存。这块内存装的是空值null,也就是什么也没有装。因为还没有进行初始化。上个图:

至于具体这个s分配在哪,要看他被声明的位置。如果s被声明为局部变量,那s就在栈空间。如果不是局部变量,那就不在栈上分配。而当你用s指向一个String类型的对象的时候,就发生了变化。也就是接着写s = new String("zhihu");的时候。上个图:

原来的s里面就会有一个值,根据s这块空间里的这个值就可以找到在堆上找到另一块内存。所有new出来的东西都在堆内存里。堆上的这块内存里对String的属性进行分配。堆内存是动态分配内存的。所以既然是分配在堆上,其实也就说明了new出来的对象占多大内存并不能确定,只能在运行期间才能分配,才能明白这个对象分配多大。 而且占用内存不能确定的原因还有一个就是,方法在执行的时候才分配内存。如果没有调用方法,那方法只是一堆代码而已,并不占用内存。

java 整数 引用传递_关于Java引用传递的一个困惑?相关推荐

  1. java整数的反转_反转Java中的整数

    要在Java中反转整数,请尝试以下代码- 示例import java.lang.*; public class Demo { public static void main(String[] args ...

  2. java整数常量区_在Java中,我可以用二进制格式定义一个整数常量吗?

    所以,随着Java SE 7的发布,二进制表示法是标准的. 如果你对二进制有一个很好的理解,语法是非常简单明了的. byte fourTimesThree = 0b1100; byte data = ...

  3. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  4. java integer 值传递_在java中String,对象,Integer(包装类型的)关于引用传递仍是值传递...

    场景: 你们都知道基本的数据类型,int,float等等这种是按值传递的.可是对于String,对象,Integer是怎样传递呢?java 原理知识: 若是参数类型是原始类型,那么传过来的就是这个参数 ...

  5. java值传递和引用传递_辨析Java方法参数中的值传递和引用传递

    小方法大门道 小瓜瓜作为一个Java初学者,今天跟我说她想通过一个Java方法,将外部变量通过参数传递到方法中去,进行逻辑处理,方法执行完毕之后,再对修改过的变量进行判断处理,代码如下所示. publ ...

  6. java 对象引用 弱引用吗_谈谈Java对象的强引用,软引用,弱引用,虚引用分别是什么...

    整体结构 java提供了4中引用类型,在垃圾回收的时候,都有自己的各自特点. 为什么要区分这么多引用呢,其实这和Java的GC有密切关系. 强引用(默认支持模式) 把一个对象赋给一个引用变量,这个引用 ...

  7. java整数的因式分解_如何在Java中找到整数的质数-因式分解

    java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...

  8. java 整数变负数_一文帮你读懂Java整数的存储原理

    前言 大家应该都知道,整数包括负数,零,和正数.在Java中,基本类型中byte(8位).short(16位).int(32位).long(64位)属于整数,并且没有无符号数,均是有符号的.对于计算机 ...

  9. java 整数变负数_年年有余之java求余的小技巧

    背景 传说里玉皇大帝派龙王马上降雨到共光一带,龙王接到玉皇大帝命令,立马从海上调水,跑去共光施云布雨,但粗心又着急的龙王不小心把海里的鲸鱼随着雨水一起降落在了共光,龙王怕玉皇大帝责怪,灵机一动便声称他 ...

  10. 达内java面试题集_达内java面试题

    JAVA面试题-COREJAVA部分1.在main(String[] args)方法内是否可以调用一个非静态方法?答案:不能2.同一个文件里是否可以有两个public类?答案:不能3.方法名是否可以与 ...

最新文章

  1. 一文详解激光点云的地面分割
  2. 近两年的生物医学突破研究,颠覆你前20年基础所学
  3. opencv(4)图像滤波
  4. 第二十五期:知乎用Go替代Python,说明了啥
  5. Nginx 上传图片500错误 open() /var/lib/nginx/tmp/
  6. 控制系统matlab仿真,控制系统MATLAB仿真作业
  7. php在线编辑器脚本,PHP如何搭建百度Ueditor富文本编辑器
  8. 2021年N2观光车和观光列车司机考试内容及N2观光车和观光列车司机模拟考试题库
  9. qt的cross comple相关
  10. python归一化nan加扰动_标准化和归一化对机器学习经典模型的影响
  11. 题解 CF 1413B A New Technique
  12. win7总是显示加载计算机,win7系统打开“此电脑”很慢总是在加载不显示的具体办法...
  13. LeetCode 91~95
  14. 计算机视觉检测外观,大米外观品质计算机视觉检测的研究
  15. Android 地图标识标签
  16. java oracle 时间查询_Oracle 日期查询
  17. 日本語トレーニング44
  18. 会声会影最新版:会声会影2021中文版它来啦!
  19. Excel如何将引用的sheet名称全部替换。
  20. 360浏览器插件如何导出独立保存?插件文件夹在哪里找?

热门文章

  1. 几种php 删除数组元素方法
  2. JDBC 获取被插入数据的主键ID值
  3. CISCO的GLBP(网关负载均衡协议)
  4. SQL Server 2005 高级程序设计 学习笔记(2)
  5. activiti7流程设计器_变频空调器通信电路
  6. Flume实战监听网络端口
  7. thrift介绍及应用(一)—介绍
  8. Linux目录的可写意味着,Linux权限分析 - osc_h5427nyq的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. Java文件类boolean setLastModified(long set_new_time)方法,包含示例
  10. 数字和数字根的总和_使用8086微处理器查找8位数字的数字总和