加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

40道Java基础常见面试题及详细答案

发布时间:2020-12-31 18:23:55 所属栏目:运营 来源:网络整理
导读:副标题#e# 最近看到网上流传着各种面试经验及面试题,往往都是一大堆技术题目贴上去,但是没有答案。 为此我业余时间整理了40道Java基础常见的面试题及详细答案,望各路大牛发现不对的地方不吝赐教,留言即可。 八种基本数据类型的大小,以及他们的封装类

1、通过hashCode可以很快的查到小内存块。 2、通过hashCode比较比equal方法快,当get时先比较hashCode,如果hashCode不同,直接返回false。

List的三个子类的特点

ArrayList:

  • 底层数据结构是数组,查询快,增删慢。
  • 线程不安全,效率高。

Vector:

  • 底层数据结构是数组,查询快,增删慢。
  • 线程安全,效率低。
  • Vector相对ArrayList查询慢(线程安全的)。
  • Vector相对LinkedList增删慢(数组结构)。

LinkedList

  • 底层数据结构是链表,查询慢,增删快。
  • 线程不安全,效率高。

Vector和ArrayList的区别

  • Vector是线程安全的,效率低。
  • ArrayList是线程不安全的,效率高。
  • 共同点:底层数据结构都是数组实现的,查询快,增删慢。

ArrayList和LinkedList的区别

  • ArrayList底层是数组结果,查询和修改快。
  • LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢。

共同点:都是线程不安全的

List有三个子类使用

  • 查询多用ArrayList。
  • 增删多用LinkedList。
  • 如果都多ArrayList。

String:适用于少量的字符串操作的情况。?StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况。?StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况。?StringBuilder:是线程不安全的,而StringBuffer是线程安全的。

这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。 首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String。

String最慢的原因

String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。

再来说线程安全

在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的。

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!