瞬间yue了!两年Java开发经验菜鸟面试总结,看完绝对颠覆你的认知!!

Java基础

1_Object类中常用方法

equals,getClass,notify,notifyAll,wait,toString,hashCode

线程执行wait方法 会释放锁 让出CPU,进入等待状态,只有当notify 或 notifyAll被执行时,才会被唤醒,notifyAll会唤醒所有等待的线程。

2_String类中常用方法

indexOf,charAt,trim,split,length,subString,equals,toLowerCase,toUpperCase,replace

3_= = 和equals的区别

==基本类型比较值相同,引用类型比较内存地址

Object中equals底层采用==,String中重写equals 比较的是值相同

4_String、StringBuffer、StringBuilder的区别及使用场景

String使用final修饰,每次变化产生新的对象。StringBuffer线程安全。

应用场景:首先使用性能较高的StringBuilder,如果是在多线程共享变量的情况下则使用线程安全的StringBuffer。

5_重载和重写的区别

重载 发生在同一个类中 方法名相同参数列表不同;重写发生在父子类中,方法名和参数列表必须相同。

6_基本类型 和 包装类型的区别

包装类是对象,拥有方法和属性,是引用的传递;基本类型是值传递。

Java中的数据结构


List:有序列表,允许重复和null,先进先出。

Set:无序列表,不允许重复一个null

Map:散列表,允许任意个null值,但最多允许一个key为null

使用场景

  1. 如果需要容器中的元素按照插入顺序存储,需要List;
  2. 如果想要保证插入元素的唯一性,则可以选择Set;
  3. 如果想以键值对的形式存储,则使用Map
  4. 常用的ArrayList、LinkedList、HashMap基本数据结构

1_ArrayList底层是动态数组(初始长度10,每次扩容为原来的1.5倍),连续的内存存储适合查询操作;

//迭代器
Iterator iterator = arrayList.iterator();
while(iterator.hasNext()){
   
    iterator.next();
}
//增强for循环
for(String str:arrayList){
   
    str;
}
//普通for循环
for(int i=0;i<arrayList.size();i++){
   
    list.get(i);
}

2_LinkedList底层是双向链表,分散存储,适合做插入删除操作;

3_HashMap底层是数组+链表 或 红黑树(初始长度为16,负载因子0.75也就是数组长度达到75%就会进行扩容,每次扩容为原来的2倍),数组长度

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值