20210815做题整理

  1. 包装类,自动装箱,自动拆箱

    1. 常量池 : Byte Short Integer Long四种包装类默认创建了数值[-128,127] 的相应类型的缓存数据,Character 创建了数值在[0,127]范围的缓存数据,Boolean直接返回了true 或者 false ; float和double 没有常量池
    2. 自动装箱 : 调用包装类的valueOf() 方法
    3. 拆箱调用的是xxxValue()方法
    4. 基本数据类型与包装类比较的时候,包装类会自动拆箱为基本数据类型进行比较
  2.     class Value{
            public int i=15;
        }
        public class Test{
            public static void main(String argv[]){
                Test t=new Test( );
                t.first( );
            }
         
        public void first( ){
            int i=5;
            Value v=new Value( );
            v.i=25;
            second(v,i);
            System.out.println(v.i);
        }
         
        public void second(Value v,int i){
            i = 0;
            v.i = 20;
            Value val = new Value( );
            v = val;
            System.out.println(v.i+" "+i);
           }
        }
    

    second(Value v, int i) 中的v 并不是first()方法中的v,而是second()方法栈里的局部变量,只是指向了first方法中的对象v, 然后 v.=20改变了first()方法中的对象v.i , 接着v = val的时候并不是让first中的v指向了val而是将second()方法栈中的v指向了val所以并不会改变first中的v的值.

  3. 异常:

    1. Throwable的两个子类:Exception(程序可处理异常) 和 Error(程序无法处理的异常)
    2. Exception分为: RuntimeException(非检查异常),和 自己Exception(已检查异常,通常为编译时异常)
  4. Hashtable和HashMap

    1. Hashtable是一个哈希表,继承的是Dictionary类,实现了Map接口
    2. HashMap是基于哈希实现的,每一个元素都是一个key-value键值对,内部是通过单链表解决冲突问题,容量不足时会自动增长,该类继承自AbstractMap,实现Map接口
    3. Hashtable是线程安全的,HashMap是线程不安全的
    4. HashMap允许将null作为一个entry的key或者value,但是hashtable不允许
    5. Hashtable和HashMap的区别总结:
      1. 继承父类的不同

        Hashtable继承Dictionary类,HashMap继承AbstractMap类

        但是两者都实现了Map接口

      2. 线程安全不同

        hashtable线程安全,hashmap线程不安全

      3. key和value是否允许null值

        hashtable中,key和value都不允许出现null值

        hashmap中,key和value都可以出现null值,但是作为键只能有一个,作为值可以有多个

      4. 是否提供contains方法

        hashtable提供了contains,ContainsKey和ContainsValue三个方法,其中contains和containsValue功能相同

        hashMap提供了containsKey和ContainsValue方法

      5. 两者遍历方式的内部实现不同

        hashtable和hashmap都使用了iterator,由于历史原因,hashtable还是用了Enumeration的方式

      6. hash值不同

        hashtable直接使用对象的hashcode,而hashmap重新计算hash值

      7. 内部实现使用的数组初始化和扩容方式不同

        hashtable在不指定容量的情况下默认容量是11,而hashmap为16, HashTable

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值