美文网首页
又一次败北,java复习日常

又一次败北,java复习日常

作者: 我叫何家明 | 来源:发表于2022-06-10 01:27 被阅读0次

又又又挂了,再次复习

字节码解析

其中有个init,看起来很像是方法,其实是父类的init,用于数据初始化加载。

线程安全的集合

  • HashTable
  • Vector
  • ConcurrentHashMap

什么对象不适合作为锁

Boolean

Boolean.False,Boolean.True 是两个对象,当boolean变化时,锁的对象不同,锁失效。

Integer

Integer是可变的,在数字变化时,尤其是超出边界时,对象可能不是同一个。那么锁不同的对象相当于没锁。

Integer

        Integer i1=1;
        Integer i2=1;
        System.out.println(i1==i2);//true
        System.out.println("------------------------------------------");
        Integer i3=129;
        Integer i4=129;
        System.out.println(i3==i4);//false
         /*知识点分析:自动装箱,Integer i=1; 相当于  Integer i=Integer.valueOf(1);点开valueOf的源码
        public static Integer valueOf(int i) {
        if (i >= -128 && i <= 127)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
        }
       可以发现,当i >= -128 && i <= 127时,会返回一个缓存中已有的Integer对象,
       所以i=1时使用==比较对象时,为true,而i=129时,是false
        */
        System.out.println("------------------------------------------");
        int i5=129;
        System.out.println(i4==i5);
        /*true,知识点分析:自动拆箱,Integer类型与int类型用==比较时会自动拆箱成int类型与之比较,隐式执行 int i=Integer.intValue();,两个int类型用==比较,自然为true
        */

字节码中的init

当java类中定义了构造方法,或其他非static类成员变量被赋了初始值,编译器便会生成<init>。所以几乎每个类生成字节码时都有init方法。

不可变数据类型

java中基本数据类型(包括int,char,long等等)以及String类型均为不可变类型

相关文章

  • 又一次败北,java复习日常

    又又又挂了,再次复习 字节码解析 其中有个init,看起来很像是方法,其实是父类的init,用于数据初始化加载。 ...

  • java复习

    一. 定义 数组:可以看成是多个相同类型数据的组合,实现对这些数据的统一管理。数组里每一个值交租一个元素。(元素...

  • Java复习

    相关概念 面向对象的三个特征 封装,继承,多态,这个应该是人人皆知,有时候也会加上抽象。 多态的好处 允许不同类对...

  • java复习

    Iterator和Enumeration的区别 我们通常用Iterator(迭代器)或者Enumeration(枚...

  • java复习

    java的编译和执行指令 HelloWorld.java javac HelloWorld.java -> 编译...

  • Java复习

    递归控制 数学归纳法:用户证明断言对所有自然数(非负整数)成立为什么在讲解之前对数学归纳法做一个解释:在程序中,我...

  • java复习

    https://gitee.com/wychina/java-study.git[https://gitee.co...

  • Java复习

    Android(2017-2018)BAT面试题整理(java篇,含答案) - 启立豆 - CSDN博客 Andr...

  • java 复习

    一、面向对象相关 1、面向对象三大特征 1、封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通...

  • 2019-04-04

    日常复习六级

网友评论

      本文标题:又一次败北,java复习日常

      本文链接:https://www.haomeiwen.com/subject/tpopmrtx.html