6).哈希值的使用不同,HashTable直接使用对象的hashCode; HashMap重新计算hash值,而且用与代替求模。
16.ArrayList和vector区别
ArrayList和Vector都实现了List接口,都是通过数组实现的。
Vector是线程安全的,而ArrayList是非线程安全的。
realloc开辟的空间如果大于原来的空间,分三种情况:1、原来空间后面的空间够realloc开辟的空间减去原空间的大小,则直接开辟2、原来空间后面的空间不够新的空间,则realloc会在内存池中重新开辟一块空间,返回一个新指针,并将原来空间上的内容保存在新空间3、内存池的空间不够新开辟空间,即内存开辟失败情况,返回null指针。这是一个含有n个元素的数组,其中的每个元素代表一类资源的空闲资源数目,其初始值。1.定义一个数组需要明确数组的变量名,数组元素的类型和数组的大小,一般类型为 类型名 数组名[数组长度].。实现list接口的类主要有三个:linkedlist, arraylist, vector(面试中常有三种的区别)list接口有三个实现类:linkedlist,arraylist,vector linkedlist:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。
17.ArrayList和LinkedList区别及使用场景
区别
ArrayList底层是用数组实现的,可以认为ArrayList是一个可改变大小的数组。随着越来越多的元素被添加到ArrayList中,其规模是动态增加的。
(2)与arraylist相比,在linkedlist中插入、添加和删除一个元素会更快,因为在一个元素被插入到中间的时候,不会涉及改变数组的大小,或更新索引。首先定义一个统一的接口,然后实现一个最基本的底层实现,接着就是装饰者,装饰者同样实现统一的接口,同时持有一个该接口的引用(面向接口编程),装饰者在之前或者之后调用所持有的对象的接口,这样就可以使用装饰者替换掉具体的实现类,完成额外的功能扩展。个硬件平台底层部分都要有一个实现,而底层对上层的接口是统一的,所以上层就不用关心底层到底是怎。解决方法:将类a修改为依赖接口i,类b和类c各自实现接口i,类a通过接口i间接与类b或者类c发生联系,则会大大降低修改类a的几率。
peek(), poll()等方法。
使用场景
LinkedList更适合从中间插入或者删除(链表的特性)。
ArrayList更适合检索和在末尾插入或删除(数组的特性)。
18.Collection和Collections的区别
java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。
19.Concurrenthashmap实现原理
参见vip课程
20.Error、Exception区别
Error类和Exception类的父类都是throwable类,他们的区别是:
Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-93146-5.html
但伊拉克必须要只效忠美国且永远不许对他国抛媚眼示好
嗨喽能问你个问题吗
“甲午战争”120年后的中国