600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 详细比较Java中的基本类型变量和引用类型变量

详细比较Java中的基本类型变量和引用类型变量

时间:2021-10-21 07:36:38

相关推荐

详细比较Java中的基本类型变量和引用类型变量

Java|java教程

Java,基本类型,引用类型

Java-java教程

基本类型:

易语言进程防杀 源码,vscode跨文件智能感知,burg ubuntu,tomcat配置后无法使用,sqlite更改TXT,单页面网页设计,高防 服务器,.net 图片上传 插件,web前端框架 动画,沙子里爬虫,反编译php,诸城seo优化,springboot 练习题,免费下载素材网站,网页计数器源代码,discuz 模板 目录,phpweb后台登录没反应,asp页面 修改字体颜色 li,php旅游管理系统,网页模板带运行程序吗lzw

基本类型自然不用说了,它的值就是一个数字,一个字符或一个布尔值。

java手游源码,vscode中c的工程怎么运行,ubuntu 5 下载,tomcat启动查看实时日志,sqlite查询超时,网页设计网站大全,服务器的维护,显示手机拍照时间的插件,前端react 表格框架,走起爬虫点赞,php8.0,SEO优化软件有哪些,复制网站源码,手机适配网页模板,dede织梦模板,前端页面模板包,党建开源信息管理系统,经典svm算法matlab程序lzw

引用类型:

android开源论坛源码,ubuntu系统繁忙,tomcat停止报内存泄漏,爬虫 保存本地,php企业留言板源码,金门海航seo优化售后服务lzw

是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。

举例说明:

int a;

a=250; //声明变量a的同时,系统给a分配了空间。

引用类型就不是了,只给变量分配了引用空间,数据空间没有分配,因为谁都不知道数据是什么,整数,字符?我们看一个错误的例子:

MyDate today;

today.day = 4; //发生错误,因为today对象的数据空间未分配。

那我们怎么给它赋值?引用类型变量在声明后必须通过实例化开辟数据空间,才能对变量所指向的对象进行访问。举个例子:

MyDate today; //将变量分配一个保存引用的空间

today = new MyDate;//这句话是2步,首先执行new MyDate,给today变量开辟数据空间,然后再执行赋值操作

//引用变量赋值

MyDate a,b; //在内存开辟两个引用空间

a = new MyDate;//开辟MyDate对象的数据空间,并把该空间的首地址赋给a

b = a;//将a存储空间中的地址写到b的存储空间中

如下图示

引用传递 和 值传递

引用类型:除了在函数传值的时候是”引用传递”,在任何用”=”向对象变量赋值的时候都是”引用传递”。

值传递:基本类型的传递都属于值传递,和C语言一样,当把Java的基本数据类型(如

int,char,double等)作为入口参数传给函数体的时候,传入的参数在函数体内部变成了局部变量,这个局部变量是输入参数的一个拷贝,所有的函

数体内部的操作都是针对这个拷贝的操作,函数执行结束后,这个局部变量也就完成了它的使命,它影响不到作为输入参数的变量。这种方式的参数传递被称为”值

传递”。

/*define a class*/class MyDate{ String Year; String Month; String Day; String Date; public MyDate(){ Year = "1900"; Month ="01"; Day = "01"; Date = Year + "." + Month + "."+ Day; }public String toString(){ return Date; } }public class ObjRef{MyDate mydate1 = new MyDate(); MyDate mydate2 = mydate1;// = 使 mydate1和 mydate2将指向同一内存空间 //MyDate mydate2 = new MyDate();//从新new一个对象,则mydate1和mydate2是指向不同的内存空间的: //引用空/间和数据空间都不一样 public void changeObj(MyDate inObj){ inObj.Date = ".09.26"; }public static void main(String[] args) { ObjRef oRef = new ObjRef(); System.out.println("Before call changeObj() method: " + oRef.mydate1); oRef.changeObj(oRef.mydate1); System.out.println("After call changeObj() method: " + oRef.mydate1); System.out.println("After call changeObj() method: " + oRef.mydate2);//验证“= mydate1和 mydate2将指向同一内存空间“这一结论}}

相关文章:

Java四种引用类型的具体介绍

解析java中的引用类型的概念

JavaScript 基本数据类型和引用类型的区别详解

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。