Java(但行好事 莫问前程) 1

1、重写(override)与重载(overload)的区别?
override: 必须存在继承,子类重写父类的方法,被重写的方法、方法名、返回值类型、参数列表必须和父类方法保持一致;
overload: 在同一个类或者存在继承关系的类中,存在多个同名的方法,方法的参数个数、顺序、类型任意有一项不一致,重载与返回值无关。

2、final、finalize、finally 的区别?
final: 用于修饰类、属性和方法;
finalize: 是 Object 类中提供的一个方法,用于在 JVM 对对象清理时,对于当前对象执行一些最终的处理工作;
finally: 是异常中的语句块,一般用于异常捕获之后执行最终的处理工作,finally 中的代码无论是否出现异常,始终会执行。

3、异常处理中 finally 和 return 的结合使用?
如果 try 语句块中有使用 return,并且 try 语句块中 没有任何异常时,程序首先会执行 finally 然后再执行 return,但是 finally 的赋值不会生效,finally 中操作引用数据类型的属性可以生效。

4、Collection、Collections、Connection 的区别?
Collection: 是所有单列集合的顶层接口;
Collections: 是针对集合进行处理的工具类,比如排序、查找、洗牌等操作;
Connection: 是 java 访问数据库技术(JDBC)中的数据库连接对象的顶层接口。

5、vector、ArrayList、LinkedList 的区别?
vector: 是老式的集合类,内部基于动态数组实现的,扩容时增长为原来的 2 倍,是线程安全的实现;
ArrayList: 是 jdk 1.2 之后新增的 List 集合的实现,内部也是基于动态数组的实现,扩容时增长为原来的 1.5 倍,是非线程不安全的实现,查快改慢;
LinkedList: 是 jdk 1.2 之后新增的 List 集合的实现,内部是基于链表和双端队列的是实现,也是非线程安全的实现,改快查慢。

6、HashSet、TreeSet、LinkedHashSet 的区别?
HashSet: 是 Set 集合基于 Hash表 的实现元素的存储,内部的元素存储顺序与 Hash值有关,如果多个对象的 Hash值一致(equals 也一致),则集合会认定是重复元素,因此不会加入到集合中,HashSet 的内部原理是基于 HashMap 的;
TreeSet: 是 Set 集合基于红黑树(二叉排序是中的特殊平衡二叉树),内部元素的存储顺序是根据元素对应类实现的 Comparable 接口中 compareTo 方法进行存储的,如果多个对象的 compareTo 方法返回值一致,则 TreeSet 会认为是重复元素,因而不会重复存储,TreeSet 实际是基于 TreeMap 的实现;
LinkedHashSet: 是 HashSet 的子类,内部基于单链表的实现,元素的存储顺序按照添加顺序来存储的,是一个有序的 Set 集合,内部实现原理使用了 LinkedHashMap。

7、HashMap 和 Hashtable 的区别?
HashMap: 是基于 Hash 算法的实现,内部通过数组结合链表实现的,允许存在空键值,是线程不同步的实现;
Hashtable: 是从老式的 Dictionary 类继承而来,内部的实现原理与是通过数组结合链表实现的,不允许空键值存在,是线程同步的实现。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值