java最常见基础面试

5 篇文章 0 订阅

1.ArrayList与LinkList的区别

ArrayList底层是由array与list实现。array是一个基于index的索引数据结构。查询和搜索效率快。list实现自动扩容,list的初始大小是10,每次扩容二分之一,第二次容量为15.扩容是通过新建一个数组,然后将原有的数据copy of 到新数组。arrayList既有array快速查询的性能也有list的自动扩容功能。LinkList是一个双链表,在添加和删除的性能上比arraylist快,但查询上arraylist更快。

2.hashmap

hashmap是采用数组加链条,jdk8加红黑树的数据结构。键值对的数据结构,key唯一,值无序,线程不安全。key值唯一是通过key的hashcode方法和eq确认,也是通过key的hashcode值进行存储。数组存放的是key,value,next的entry。

3.为什么有int还需要integer

int的默认值是0,而integer的默认值是空,int无法表示空

java的绝大部分方法都是用来处理对象的,如ArrayList只能处理对象

对象封装可以把属性也就是数据跟数据处理这些数据的方法结合在一起,比如integer有paresleint方法。

4.String stringbuffer stringbuilder区别

string是一个字符串,是一个对象,底层代码是一个final类型的字符数组,所以每次对string的操作都会生成新的string对象

stringbuffer和stringbuilder都实现了abstracstringbuilder对象,abstracstringbuilder又实现了charsequence接口,两个类都实现了对字符串的操作,所以修改,删除,拼接比string效率高

stringbuffer线程安全stringbuilder线程不安全,stringbuilder比stringbuffer效率高,stringbuffer比stringbuilder安全

5.equals和==区别

==比较的变量,内存中存放对象的地址,用来判断两个对象的地址是否相同

equals用了比较两个对象的内容是否相同

6.final在java中的作用

修饰变量,变量不可改变      修饰方法方法不可重写

修饰对象,对象不可继承      修饰常量会编译阶段存入常量池

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值