Java中值类型和引用类型的不同?

[定义] 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值,那么调用这个方法是传入的变量的值也将改变.值类型表示复制一个当前变量传给方法,当你在这个方法中改变这个变量的值时,最初生命的变量的值不会变.通俗说法: 值类型就是现金,要用直接用;引用类型是存折,要用还得先去银行取现。

[值类型]也就是基本数据类型 基本数据类型常被称为四类八种四类:   1,整型 2,浮点型 3,字符型4,逻辑型八种:            1,整型3种 byte,short,int,long         2,浮点型2种 float,double         3,字符型1种 char         4,逻辑型1种 boolean[引用类型]除了四类八种基本类型外,所有的类型都称为引用类型(数组,类,接口,字符串)

在弄清楚值类型与引用类型之后,最后一点就是值传递与引用传递,这才是关键[值传递]    基本数据类型赋值都属于值传递,值传递传递的是实实在在的变量值,是传递原参数的拷贝,值传递后,实参传递给形参的值,形参发生改变而不影响实参。

[引用传递]引用类型之间赋值属于引用传递。引用传递传递的是对象的引用地址,也就是它的本身(自己最通俗的理解)。引用传递:传的是地址,就是将实参的地址传递给形参,形参改变了,实参当然被改变了,因为他们指向相同的地址。引用和我们的指针差不多,但是它不又不需要我们去具体的操作

[内存分配]一个具有值类型(value type)的数据存放在栈内的一个变量中。即是在栈中分配内存空间,直接存储所包含的值,其值就代表数据本身。值类型的数据具有较快的存取速度。一个具有引用类型(reference type)的数据并不驻留在栈中,而是存储于堆中。即是在堆中分配内存空间,不直接存储所包含的值,而是指向所要存储的值,其值代表的是所指向的地址。当访问一个具有引用类型的数据时,需要到栈中检查变量的内容,该变量引用堆中的一个实际数据。引用类型的数据比值类型的数据具有更大的存储规模和较低的访问速度。Java中有垃圾回收机制,栈内存中的变量随着方法的结束内存自然销毁了,而用引用类型的时候,当方法结束的时候,这个对象可能被另一个引用类型所应用,不会销毁,只有当一个对象没有任何引用变量引用的时候,垃圾回收机制才会回收2,为什么Java中数据的存放有堆和栈之分?

java 值类型与引用类型_JAVA 关于值类型和引用类型的区别相关推荐

  1. java中date类型如何赋值_Java 中的类型传递问题解惑

    点击上方☝SpringForAll社区 轻松关注!及时获取有趣有料的技术文章 来源: https://blog.biezhi.me/2018/11/java-pass-by-value.html 我之 ...

  2. java中类变量局部量_java入门---变量类型类变量局部变量实例变量静态变量

    在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: typeidentifier[= value][, identifier[= value]...]; 格式说明:type为Jav ...

  3. java boolean几个字节_Java中boolean类型到底占用多少个字节?

    1.时间:2017-07-03 07:37:06YuanMxy 2.问题描述:今天在复习java基础的时候发现一小问题,Java中boolean类型到底占用多少个字节? 3.问题解答: (1)什么是b ...

  4. Java异常的根类似_Java异常(Exception)类型及处理

    Java中的异常全部都是以对象形式存在的,一旦某句代码发生异常,会在该代码处生成一个异常对象,然后以堆栈式抛出,若不对该异常对象进行处理,最终导致程序终止运行. Java语言异常分类 编译时异常(受检 ...

  5. java 枚举参数为对象_Java枚举值

    枚举类型定义了两件事: 枚举常量名称 常量的顺序 以下代码声明了一个名为Level的公共枚举类型,它具有四个枚举常量:LOW,MEDIUM,HIGH 和 URGENT. public enum Lev ...

  6. java中long比较大小_java中Long类型比较大小和long类型的比较大小java中Long类型比较大小和long类型的比较大小...

    今天遇到这样一个问题,我用 "=="来比较两个Long类型的数据,明明数值都相等,可是结果就是false 这要说到==和 equals 的区别了. 1. ==比较的是两个对象在内存 ...

  7. java什么是原生类_Java 基础 - 原生类型

    更详细的说明,请参考: Java 原生类型与包装器类型深度剖析,https://blog.csdn.net/justloveyou_/article/details/52651211 一. 原生类型与 ...

  8. java 调用枚举种方法_Java中枚举类型的一种使用方式

    今天改同事的代码发现同事的代码中有大量的if else语句.很不美观而且可读性太差. 因为需要给前端一个key,value的列表.这个列表写死.然而同事的代码. 放几张图,大家自己感受.我都不知道以后 ...

  9. java date类型大小比较_java中date类型如何比较大小

    java中date类型如何比较大小 时间:2018-01-19     来源:Java data类型讲解 Date类在jdk1.1中就已经出现,算得上一个比较有历史的类了,用来表示日期时间.在实际的工 ...

最新文章

  1. PSVR开发者需要了解的9件事
  2. ssh开发中的DAO和DaoSupport备份
  3. python科学计数法输出_python不以科学计数法输出的实例方法总结
  4. java许愿墙_18.JavaScript实现许愿墙效果
  5. 锦江公司 nginx 转发
  6. 五:Java+SpringBoot集成SwaggerUI
  7. Python应用-[用Python实现一个socket echo程序 tcp socket的几个关闭状态]
  8. Oracle学习笔记之触发器
  9. 进程与线程的区别(网络摘抄)
  10. ElementUI腾讯云开发者开发指南
  11. 删除镜像文件,显示操作无法完成,因为文件已经在system中打开。解决办法
  12. protoc库的卸载与安装
  13. Mat  iplimage
  14. AndroidStudio使用Git,Commit、Push代码到GitLab权限失败问题
  15. 学校计算机ip设置路由器,路由器怎么设置ip 如何设置路由器ip地址【详细步骤】...
  16. html加拼音注释,古诗加拼音注释版.doc
  17. 【技巧分享】【数据分析】数据分析模型
  18. chatty: uid=10549(u0_a549) com.exampleidentical 40 lines
  19. 保险行业的电子签章应用场景:印章统一管、合同在线签
  20. 用 Pandas 读写网页中的 HTML 表格数据

热门文章

  1. clickhouse 航空数据_趣头条基于Flink+ClickHouse的实时数据分析平台
  2. python第一章测试题_第一章 测试【含答案】 Python大数据分析
  3. 启动jar包并生成日志的linux脚本
  4. uniapp android原生,在uni-app项目中集成Android原生工程
  5. echarts 在两点之间画一条线_凭什么?辛辛苦苦画了三个小时,却换来一句“撕了重画”...
  6. MySQL基于时间字段进行分区的方案总结
  7. 和linux关系_Linux内核Page Cache和Buffer Cache关系及演化历史
  8. removelogo使用方法_怎么给视频去水印?这三种方法简单又高效
  9. 轻量级的c语言开发环境搭建,win下轻量级的c语言开发环境配置:vsc + gcc
  10. php7可以做什么开发,php7 图形用户界面GUI 开发怎么做?看完这个代码你就明白了...