当前位置: 首页 > news >正文

java值类型和引用类型

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中有垃圾回收机制,栈内存中的变量随着方法的结束内存自然销毁了,而用引用类型的时候,当方法结束的时候,这个对象可能被另一个引用类型所应用,不会销毁,只有当一个对象没有任何引用变量引用的时候,垃圾回收机制才会回收

posted on 2016-02-29 22:09 那消逝的岁月 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/future-zhenzhen/p/5229126.html

相关文章:

  • 如何查看oracle表空间是否自动扩展
  • UBuntu14.04下安装和卸载Qt5.3.1
  • LeetCode 74 Search a 2D Matrix(搜索2D矩阵)
  • CentOS 6安装配置LDAP
  • 习题6-2 S-Trees(树)
  • centos6.x 抓取ssh登录的用户名和密码
  • Win7域用户实现User权限安装共享打印机
  • 用 gitbook 为项目写本书吧
  • WinCE6.0多国语言软键盘
  • Codeforces Round #344 (Div. 2) E. Product Sum 维护凸壳
  • 20145237《Java程序设计》第一周学习总结
  • ListView之SimpleAdapter
  • HashMap的工作原理及HashMap和Hashtable的区别
  • 多人聊天
  • mysql5.5.48 多实例配置及启动脚本
  • 0基础学习移动端适配
  • docker-consul
  • FastReport在线报表设计器工作原理
  • leetcode388. Longest Absolute File Path
  • oschina
  • Python_OOP
  • Python连接Oracle
  • Spring Cloud Feign的两种使用姿势
  • VUE es6技巧写法(持续更新中~~~)
  • Web标准制定过程
  • 阿里云购买磁盘后挂载
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 回流、重绘及其优化
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 前端性能优化——回流与重绘
  • 浅谈Golang中select的用法
  • 使用SAX解析XML
  • 小程序测试方案初探
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 一道面试题引发的“血案”
  • 用quicker-worker.js轻松跑一个大数据遍历
  • Semaphore
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 说说我为什么看好Spring Cloud Alibaba
  • ​2020 年大前端技术趋势解读
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #1014 : Trie树
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (11)MSP430F5529 定时器B
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (附源码)springboot教学评价 毕业设计 641310
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)h264中avc和flv数据的解析
  • ******之网络***——物理***
  • *2 echo、printf、mkdir命令的应用