2020年 12月 25日 - Redisson的可重入锁使用

    Redisson的可重入锁使用

    Redisson实现的是可重入锁,同一线程获取同一个锁返回一直是true,每次都会更新锁的有效期

    ReentrantLock是可重入锁,那它的特点就是:同一个线程可以重复拿到同一个资源的锁。重入锁非常有利于资源的高效利用。

    若是本地单元测试,则需要考虑启多个线程进行测试锁,否则可能会因可重入锁而失败

    2020年 12月 21日 - git删除所有历史提交记录

    git删除所有历史提交记录

    原文 git删除所有历史提交记录

    1.Checkout
       git checkout --orphan latest_branch
    
    2. Add all the files
       git add -A
    
    3. Commit the changes
       git commit -am "commit message"
    
    4. Delete the branch
       git branch -D master
    
    5.Rename the current branch to master
       git branch -m master
    
    6.Finally, force update your repository
       git push -f origin master
    

    2020年 12月 16日 - 序列化

    序列化

    Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。

    简单的说,序列化是将运行时的内存数据,转换为可持久的硬盘数据(字节码),反序列化就是读取数据到内存.

    java中的默认实现是通过ObjectInputStreamObjectOutputStream.

    如果类实现了writeObjectreadObject则调用,否则通过ObjectInputStreamObjectOutputStreamdefaultWriteObjectdefaultReadObject来实现.

    类本身实现的writeObjectreadObject可以用来对敏感信息进行加密解密.

    ObjectOutputStream序列化对象:

    public final void writeObject(Object x) throws IOException
    

    ObjectInputStream反序列化对象:

    public final Object readObject() throws IOException, ClassNotFoundException
    

    2020年 12月 15日 - 租房

    租房合同

    1. 居间合同

      又称”中介服务合同”,是指居间人根据委托人的要求为委托人与第三人订立合同提供机会或进行介绍,而委托人须向居间人给付约定报酬的协议 租房中一般个人较多,实际基本上相当于与房东直签合同,需要付中介费或向房东单向收费.

    2. 三方合同

      三方合同是指甲方、乙方、丙方在一份合同上签字认可,其中一方为见证方或中介方。 租房大多数为房屋托管到中介,中介按月付给房东.

    3. 双方合同

      除了与房东直签的合同(甲乙双方为房东跟租客),还存在代理租赁的形式,即中介公司作为房东的代理人进行出租.

    除了居间合同与房东直签的,很大情况下合同期满需要额外支付中介费.

    2020年 12月 08日 - 泛型

    java中的泛型

    泛型是jdk1.5引入的特性,本质是参数化类型,可以很好的降低代码重复度,安全又简单.

    泛型解决了编码过程中需要显式强制转换的情况,可以在编译期间进行类型检查,通过自动且隐式的强制转换,降低代码复杂度.

    泛型的实现原理:类型擦除.编译时会将泛型擦除,使用其限定类型(未限定的则用Object)的第一个边界类型代替(如T extends Comparable & Serializable则会是Comparable).

    基本语法:泛型类在类名后,泛型方法/接口在返回值前通过尖括号标记