• Java开发,面试题扫描


    作者:gggv123
    链接:https://www.nowcoder.com/discuss/41112
    来源:牛客网

    2、ArrayList、LinkedList的区别,底层怎么实现的
    3、HashMap是如何实现的
    4、数据库的范式、索引
    5、Java多线程有几种实现方式
    6、jdbc、Statement 和 PreparedStatement
    7、设计模式有哪些,设计模式的原则
    8、介绍一下SSH和Hadoop
    9、讲了一下笔试题
    10、java访问权限
    11、序列化和网络编程,如何实现文件的跨机器传输
    12、树的遍历,深搜和广搜
    13、java面向对象的特性:封装,继承,多态啥的

    ---------------------------- ---------  --------- -----------------------------------   ---------------------------------------------------------------

    2.

    ArrayList和LinkedList的大致区别如下:
    1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 
    2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 
    3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。

    ArrayList和LinkedList底层实现原理

    1.说一下 ArrayList 底层实现方式?

    ①ArrayList 通过数组实现,一旦我们实例化 ArrayList 无参数构造函数默认为数组初始化长度为 10②add 方法底层实现如果增加的元素个数超过了 10 个,那么 ArrayList 底层会新生成一个数组,长度为原数组的 1.5 倍+1,然后将原数组的内容复制到新数组当中,并且后续增加的内容都会放到新数组当中。当新数组无法容纳增加的元素时,重复该过程。是一旦数组超出长度,就开始扩容数组。扩容数组调用的方法 Arrays.copyOf(objArr, objArr.length + 1);

    2.说一下 LinkedList 底层实现方式?

    LinkedList 底层的数据结构是基于双向循环链表的,且头结点中不存放数据,如下:

    既然是双向链表,那么必定存在一种数据结构——我们可以称之为节点,节点实例保存业务数据,前一个节点的位置信息和后一个节点位置信息,如下图所示:

     https://blog.csdn.net/weixin_38422276/article/details/78978410

  • 相关阅读:
    LoadRunner创建脚本和场景流程
    Monitorix系统和网络监控工具
    查询日志logcat使用总结
    SqlServer存储过程示例
    编写sql查询语句思路
    dstat工具使用介绍
    dstat参数选项
    SqlServer50条常用查询语句
    MySQL查询示例
    CMake 常用方法
  • 原文地址:https://www.cnblogs.com/wanghuadongsharer/p/9746697.html
Copyright © 2020-2023  润新知