杂项笔记

nil和Nil及NULL的区别

今天在研究红黑树的时候一直提到一个NIL节点,百度了一下,这里仅作记录

nil是一个对象值,如果要把一个对象设置为空的时候就用nil。
Nil是一个类对象的值,如果要把一个Class类型的对象设置为空的时候就用Nil。
NULL是一个通用指针

以我的理解是NIL节点是,叶子节点为空的节点(无左右子叶的节点)


使用scrapy框架爬虫的时候xpath的extract()和extract_first()的区别

在使用scrapy爬虫的时候,我们常常使用xpath来获取html标签,但是我们经常会用到提取的方法,有两种提取的方法,分别是:

extract():这个方法返回的是一个数组list,,里面包含了多个string,如果只有一个string,则返回['ABC']这样的形式。

extract_first():这个方法返回的是一个string字符串,是list数组里面的第一个字符串。


java类中serialVersionUID的作用

           serialVersionUID适用于java序列化机制。简单来说,JAVA序列化的机制是通过判断类的serialVersionUID来验证的版本一致的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID于本地相应实体类的serialVersionUID进行比较。如果相同说明是一致的,可以进行反序列化,否则会出现反序列化版本一致的异常,即是InvalidCastException。

           具体序列化的过程是这样的:序列化操作时会把系统当前类的serialVersionUID写入到序列化文件中,当反序列化时系统会自动检测文件中的serialVersionUID,判断它是否与当前类中的serialVersionUID一致。如果一致说明序列化文件的版本与当前类的版本是一样的,可以反序列化成功,否则就失败;

          serialVersionUID有两种显示的生成方式:

一是默认的1L,比如:private static final long serialVersionUID = 1L;        

二是根据包名,类名,继承关系,非私有的方法和属性,以及参数,返回值等诸多因子计算得出的,极度复杂生成的一个64位的哈希字段。基本上计算出来的这个值是唯一的。比如:private static final long  serialVersionUID = xxxxL;
注意:显示声明serialVersionUID可以避免对象不一致,

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值