Java基础
写在前面:知道自己不行,就不做了吗?随手整理一些java知识。
-
java九种基本数据类型:
(1)基本数据类型:1)数值型:整数类型(byte, short, int, long)、浮点类型(float, double);2)字符型:char;3)布尔型:boolean;(有的会考九种基本数据类型,加一个void)。 (2)引用数据类型:1)类(class);2)接口(interface);3)数组。
-
string可以被继承吗?为什么
不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变。 -
ArrayList和LinkedList有什么区别
相同点:都实现了List接口;
不同点:
(1)ArrayList是基于索引的数据接口,它的底层是数组,可以进行随机访问,时间复杂度为O(1)。LinkedList是以元素列表的形式存储,按照存入的序列有序存储,查找某个元素的时间复杂度为O(n)。
(2)相比于ArrayList,LinkedList的插入、添加和删除操作更快,因为插入和删除不需要向数组那样重新计算大小或者更改索引。
(3)LinkedList比ArrayList更占内存,因为不仅需要存储数据也需要存储引用。 -
数组和链表的优缺点和区别
数组:将元素在内存中连续存放每个元素占据内存相同,可以通过下标迅速访问数组中任何元素。插入和删除元素需要移动大量元素。如果应用需要快速访问数据,很少插入和删除元素,就应该用数组。
链表:不是顺序存储,元素之间通过指针联系在一起。如果需要访问链表中的一个元素,需要从第一个元素开始,知道找到需要的元素。如果应用需要经常插入和删除元素就应该用链表。
存取方式:数组可以顺序存取或随机存取,而链表只能顺序存取。
存储位置:数组逻辑上相邻的元素在物理存储位置上也一定相邻,而链表不一定。
存储空间:链表由于带有指针域,存储密度不如数组大。
按需查找:数组可以随机访问,链表不可以。
按值查找:若数组如需,链表和数组的时间复杂度都为O(n),若有序,数组乐意采取折半查找,时间复杂度为O(logn)。