Java面试题冲刺第五天–基础篇2

Java面试题冲刺第五天--基础篇2

一、问题1:数组的长度、容量和元素个数有什么区别?

答案

  • 数组的长度(length):数组长度是确定且不可改变的,是数组定义的时候就确定好的,可以通过引用名称加.length获得。
  • 数组的容量:数组容量和数组长度没有什么关系,当数组被初始化后,容量一旦被确定就无法更改。数组容量大小是指JVM为了让数组能够并发访问而在内存中所划分的数组的地址空间。容量就是能够在数组中存储的元素的个数,使用数组的方法和函数可以操作存储在数组容器中的元素。
  • 数组的元素个数:数组的元素个数表示数组中已经存储的元素数量。例如,一个长度为10的数组存储了5个元素,则这个数组中的元素个数就是5。

示例

    //定义一个长度为3的数组
    int[] array = new int[3];

    //将数据存入数组中,元素个数为2
    array[0] = 1;
    array[1] = 2;

    //获取数组长度和元素个数
    System.out.println(array.length);  //输出3,数组长度为3
    System.out.println(array[2]);      //输出0,数组第三个元素默认值为0
    System.out.println(array[1]);      //输出2,数组第二个元素为2

二、问题2:ArrayList和LinkedList有什么区别?

答案

  • 数据结构:ArrayList是动态数组实现,LinkedList是双向链表实现。
  • 插入删除效率:ArrayList与LinkedList的插入和删除元素的效率不同。ArrayList的插入和删除操作会影响后面元素的索引,需要调整。而LinkedList删除元素的效率比较高,只需修改相邻节点的引用,而ArrayList则涉及到的是数组在内存中向后或向前移动的操作,效率较低。
  • 空间占用:ArrayList和LinkedList在空间占用上差别很大,ArrayList所占内存大小为整形 ((n*(n+1))/2), n为数组长度;而LinkedList则完全是根据元素的个数来确定所占空间大小。

示例

    List<Integer> arrayList = new ArrayList<>();
    List<Integer> linkedList = new LinkedList<>();

    long startTime = System.currentTimeMillis();

    //ArrayList中间插入10000个元素
    for (int i = 0; i < 10000; i++){
        arrayList.add(5000, i);
    }

    System.out.println("ArrayList 所用时间 :" + (System.currentTimeMillis() - startTime));

    startTime = System.currentTimeMillis();

    //LinkedList中间插入10000个元素
    for (int i = 0; i < 10000; i++){
        linkedList.add(5000, i);
    }

    System.out.println("LinkedList 所用时间 :" + (System.currentTimeMillis() - startTime));

运行结果:

ArrayList 所用时间 :78
LinkedList 所用时间 :220

从结果可以看出,ArrayList在中间插入10000个元素的操作上优于LinkedList。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java面试题冲刺第五天–基础篇2 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • AngularJS表单提交实例详解

    AngularJS是当前Web开发中最流行的JavaScript框架之一,其强大的表单处理功能被广泛使用。本文将从实例出发,详细讲解如何用AngularJS实现表单提交。 首先,我们需要在HTML中引入AngularJS 在使用AngularJS前,我们需要在HTML中引入相应的JS文件。可以从官网下载或使用CDN方式引入。 <script src=&…

    Java 2023年5月26日
    00
  • 在idea中显示springboot面板的方法

    在IDEA中,我们可以使用Spring Boot面板来管理Spring Boot应用程序。本文将详细讲解在IDEA中显示Spring Boot面板的方法的完整攻略,并提供两个示例。 1. 配置Spring Boot插件 以下是配置Spring Boot插件的基本流程: 打开IDEA,点击File -> Settings -> Plugins。 在…

    Java 2023年5月15日
    00
  • 详解Java中使用ImageIO类对图片进行压缩的方法

    下面我来详细讲解Java中使用ImageIO类对图片进行压缩的方法。 1. 使用ImageIO类加载图片 在Java中使用ImageIO类来加载图片,可以使用以下代码: BufferedImage image = ImageIO.read(new File("image.jpg")); 上述代码中的image.jpg是需要压缩的图片的文件…

    Java 2023年5月26日
    00
  • 解析Spring中面向切面编程

    解析Spring中面向切面编程 什么是面向切面编程? 面向切面编程(Aspect-Oriented Programming,AOP)是一种编程范式,它通过动态地将代码切入到原有代码流程中,实现横向代码的抽象和复用。在应用程序开发中,AOP可以将一些通用的功能和业务逻辑从应用程序中分离出来,避免代码的重复,提高代码的模块化和可重用性。 AOP的实现方式有很多种…

    Java 2023年5月19日
    00
  • Java Runtime的使用详解

    Java Runtime的使用详解 什么是Java Runtime? Java Runtime是一个Java程序执行的环境。当一个Java程序需要运行时,Java Runtime会负责加载Java类和其他的资源,然后执行程序。 Java Runtime由Java Development Kit(JDK)提供, JDK包含JRE(Java Runtime En…

    Java 2023年5月20日
    00
  • 如何使用ActiveMQ中间件方式发送邮件

    使用ActiveMQ中间件方式发送邮件可以极大地提高邮件发送的效率和可靠性,下面是详细的步骤: 前置条件 安装ActiveMQ中间件。 了解Java编程语言,并且熟悉使用Java相关工具和框架。 步骤 引入ActiveMQ相关的依赖: <dependency> <groupId>org.apache.activemq</grou…

    Java 2023年5月19日
    00
  • 使用Java生成jpg与压缩图片为jpg文件的代码示例

    以下是关于使用Java生成jpg并压缩图片为jpg的完整攻略。 1.使用Java生成jpg 要使用Java生成jpg图片,需要使用第三方库——JFreeChart,它可以用于绘制多种类型的图表和图形,其中包括图片。 步骤 引入JFreeChart库: xml <dependency> <groupId>jfree</groupI…

    Java 2023年5月20日
    00
  • Java如何解析html中的内容并存到数据库详解

    Java解析HTML中内容并存储到数据库的完整攻略 在Java中,我们可以使用Jsoup库来解析HTML内容,并使用Java的数据访问对象(DAO)模式将数据存储到数据库中。 1. 概述 在本篇攻略中,我们将通过抓取一个网站上的新闻列表,并将新闻内容解析并存储到数据库中的方式,介绍Java如何解析HTML中的内容并存储到数据库的完整流程。 2. 抓取和解析网…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部