40道Java基础常见面试题及详细答案
1、通过hashCode可以很快的查到小内存块。 2、通过hashCode较量比equal要领快,当get时先较量hashCode,假如hashCode差异,直接返回false。 List的三个子类的特点 ArrayList:
Vector:
LinkedList
Vector和ArrayList的区别
ArrayList和LinkedList的区别
配合点:都是线程不安详的 List有三个子类行使
String:合用于少量的字符串操纵的环境。?StringBuilder:合用于单线程下在字符缓冲区举办大量操纵的环境。?StringBuffer:合用多线程下在字符缓冲区举办大量操纵的环境。?StringBuilder:是线程不安详的,而StringBuffer是线程安详的。 这三个类之间的区别首要是在两个方面,即运行速率和线程安详这两方面。 起首说运行速率,可能说是执行速率,在这方面运行速率快慢为:StringBuilder > StringBuffer > String。 String最慢的缘故起因 String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String工具一旦建设之后该工具是不行变动的,但后两者的工具是变量,是可以变动的。 再来说线程安详 在线程安详上,StringBuilder是线程不安详的,而StringBuffer是线程安详的。 假如一个StringBuffer工具在字符串缓冲区被多个线程行使时,StringBuffer中许多要领可以带有synchronized要害字,以是可以担保线程是安详的,但StringBuilder的要领例没有该要害字,以是不能担保线程安详,有也许会呈现一些错误的操纵。以是假如要举办的操纵是多线程的,那么就要行使StringBuffer,可是在单线程的环境下,照旧提议行使速率较量快的StringBuilder。 Map
Set
List
Queue
Stack
用法
更为精辟的总结 Collection 是工具荟萃, Collection 有两个子接口 List 和 Set List?可以通过下标 (1,2..) 来取得值,值可以一再。?Set?只能通过游标来取值,而且值是不能一再的。 ArrayList , Vector , LinkedList 是 List 的实现类
Map 是键值对荟萃
Stack类:担任自Vector,实现一个后进先出的栈。提供了几个根基要领,push、pop、peak、empty、search等。 Queue接口:提供了几个根基要领,offer、poll、peek等。已知实现类有LinkedList、PriorityQueue等。 https://segmentfault.com/a/1190000008101567 Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现,它们都是荟萃中将数据无序存放的。 1、hashMap去掉了HashTable?的contains要领,可是加上了containsValue()和containsKey()要领 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |