首页 > 其他分享 >值类型和引用类型的区别

值类型和引用类型的区别

时间:2024-05-04 11:22:06浏览次数:25  
标签:存储 区别 多态 内存 类型 拷贝 引用

值类型 --- 简单类型 基本类型  比如 数字,字符串 布尔 等 

引用类型  - 复杂类型 对象类型 比如 对象 函数 委托 等

 

区别:

1. 内存层面:值类型内存的分配和释放有编辑器管理,引用类型内存的分配和释放由垃圾回收期(GC)管理

2. 存储位层面:

  存储位置:值类型存储栈内存,只有数据 ;引用类型存储堆内存,地址和数据;

     赋值方式:值类型直接拷贝副本数据,操作另一个值不会影响另一个值;引用类型,赋值的是地址(指针)修改地址会影响另一个值;(深拷贝和浅拷贝);

3. 用途层面:值类型常用于存储数据 比如属性,引用类型描述行为 比如 类,方法;

4. 多态层面:值类型不支持多态,引用类型支持多态、

 

对象多态的实现依靠3个:接口 interface,抽象方法abstrac,虚方法 virual

 

标签:存储,区别,多态,内存,类型,拷贝,引用
From: https://www.cnblogs.com/zhulongxu/p/18172123

相关文章

  • @EnableHystrix注解与@EnableCircuitBreaker的区别
    在学习服务降级中,发现了@EnableHystrix和@EnableCircuitBreaker的功能类似,研究后特此记录一下。查看@EnableHystrix的源码可以发现,它引用了@EnableCircuitBreaker,并对它进行了在封装。@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Document......
  • SpringMVC(3)-request域和session域的作用和区别
    最近看到项目中用到request域和session域,脑子里一直没有一个明确的区分,结合GPT整理了一份总结。为了理解request和session的作用和区别,可以想象我们正在参加一个大型的科技会议。会议中,每位与会者(用户)都会与会议工作人员(服务器)进行交流。在这个比喻中,request域和session域是用于......
  • 如何快速提取出一个文件里面全部指定类型的文件的全部路径
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z打开工具,切换到第五个模块,文件批量复制模块(快捷键:Ctrl+5)点击右边的“搜索添加”按钮,我这里就从我的PS文件夹里面找出全部的jpg图片叭,勾选两项,搜文件,并且搜全部子文件,然后点开始搜索按钮搜索完之后关闭窗口,就......
  • Spark中的闭包引用和广播变量
    闭包引用概念所有编程语言都有闭包的概念,闭包就是在一个函数中引用了函数外的变量。Spark中,普通的变量是在Driver程序中创建的,RDD的计算是在分布式集群中的task程序上进行的。因此,当分布式算子的函数引用了外部的变量时,Driver会把该变量序列化后通过网络发送给每一个task(只......
  • python教程3.1:数据类型:字符串+列表list
    一、字符串字符串是⼀个有序的字符的集合,⽤于在计算机⾥存储和表示⽂本信息 常用操作二、列表list[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表⼀个元素特征 1、增加操作   追加,数据会追加到尾部 2、删除操作3、修改操作 4、查找操作 如果......
  • python教程2:变量+数据类型+运算符
    一、变量程序是从上到下依次逐⾏执⾏的,所以变量必须先定义,后调⽤,否则会报错变量定义规范 二、数据类型1、数字类型可⽤type()⽅法来查看数据类型 2、字符串多引号多引号什么作⽤呢?作⽤就是多⾏字符串必须⽤多引号字符串拼接3、布尔类型布尔类型很简单,就两个......
  • typescript仅仅是为了给javascript增加类型而对java的一个仿制吗
    如果是这样,我不直接学习java或者c#就好了吗?(不考虑前端编程这个因素)或者换句话说,typescript跟java在语法语义有什么不同吗?能给编程带来什么帮助吗?带着这个疑问,翻了一下现有的资料,找到typescript官网的一段解释,觉得有点意思,翻出来,供大家参考。https://www.typescriptlang.org/doc......
  • 对于Windows防火墙的入站连接(I)设置,有三个选项:阻止、阻止所有连接和允许。下面是它们之
    使用组策略配置防火墙规则-WindowsSecurity|MicrosoftLearn对于Windows防火墙的入站连接(I)设置,有三个选项:阻止、阻止所有连接和允许。下面是它们之间的区别和影响:阻止:区别:阻止选项表示只有特定的入站连接被允许,其他所有入站连接都将被阻止。这意味着需要手动配置允许的......
  • 在Windows防火墙设置中,允许单播响应(Unicast Response)是一个控制选项,用于允许或禁止系
    在Windows防火墙设置中,允许单播响应(UnicastResponse)是一个控制选项,用于允许或禁止系统对多播或广播网络流量的单播响应。让我详细解释一下允许和禁止单播响应的区别:允许单播响应(是):当设置为“是”时(默认值),Windows系统会允许对多播或广播网络流量的单播响应。这意味着当系......
  • 类模板的简单应用(用于存储不同类型数据的类容器)
    类模板应用explicitexplicit是一个关键字,用于指定该构造函数是显式构造函数。在C++中,当一个类的构造函数只有一个参数时,它可以被用于隐式类型转换,这可能会导致意想不到的行为和潜在的错误。为了避免这种情况,可以使用explicit关键字来声明该构造函数,表示禁止隐式类型转换,只能......