句柄与指针的区别

1.句柄与指针,是什么?

  • 指针:

指针 英文代称:pointer

指针也就是内存地址,指针变量是用来存放内存地址的变量,在同一CPU架构下,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,
所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作

  • 句柄:
    在这里插入图片描述

句柄 英文代称:handle

在英文中:有操作、处理、控制之类的意义。作为一个名词时,是指某个中间媒介,通过这个中间媒介可控制、操作某样东西

通俗的比喻:1.句柄就好比手机号码,你不必时时刻刻关心你要联系的人在哪里,你只要有需要的时候根据电话号码打ta电话就能跟ta联系
2.就比如把手:门把手、锅把手、铲把手、刀把;它们并不直接提供功能性而是一种媒介 是你使用上面:门、锅、铲、刀必须要握或拿的。

从计算机领域来讲句柄handle通常是某个数字标记,通过标记操作资源。在计算机领域有不同的叫法,有时叫ID,有时叫描述符(descriptor),在Windows平台就叫各种 handle了

2.为什么必须用句柄?

句柄:是一个long形的整数值,长度为16位。应用程序先调用一个Windows函数来获得一个句柄,之后其他的Windows函数就可以使用该句柄,以引用相应的对象。在Windows编程中会用到大量的句柄

3.句柄,上下文,混淆?

  • 上下文:

上下文· 英文代称:Context

计算机中,相对于进程而言,上下文就是进程执行时的环境。具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。

环境可以包括当时程序状态以及变量的状态,例如线程切换的时候在内核会发生上下文切换,这里的上下文就包括了当时寄存器的值,把寄存器的值都保存起来,
等下次该线程又得到CPU时间的时候再恢复寄存器的值,这样程序才能正确的运行。

  • 总结:

句柄与上下文不同 上下文是一种环境,句柄是调用某个程序的整数值

4. 对象管理机制:spring

在这里插入图片描述

Spring框架是一个资源管理整合框架,可以将自己写的对象或者是第三方提供的对象(连接池)整合到一起。
我们在使用Spring的bean对象时,会遇到两种情况:一是这个对象我们会用到很多次,频繁的使用,Spring提供了懒加载(@Lazy)策略,必须跟作用域singLeton联合使用,这种情况下,会把这个对象存到
bean池中,内存中只有一份,并且一直存在,直到bean池销毁;二是这个对象我们可能只会用到一次或者寥寥几次,这个时候就没有必要让他一直存在到内存中,可以将作用域设置为prototype,
在每次调用的时候创建一次,用完销毁。因此,使用Spring管理bean对象可以实现对资源的有效使用。

相关注解

  • @Lazy:

– 用于描述类,用来告诉spring此类可以这次延迟加载,通常配合作用域singleton使用

  • @Scope

– 用于定义作用域,默认是singleton,当定义为prototype时,每次获取对象都会创建一个新的实例,并且不会交给spring管理,spring可以对它进行初始化,但不能销毁。

  • @PostConstruct

– 注解用于描述bean对象生命周期方法中的初始化方法,此方法会在对象的构造方法之后执行(是对象创建以后的初始化)

  • @PreDestroy

– 注解用于描述Bean对象生命周期方法中的销毁方法,此方法会在对象销毁之前执行(当作用域我prototype时,此方法不会执行)

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值