• 面试题3


    面试题

    Java容器

    1. 说一下 HashSet 的实现原理?

    HashSet 是基于 HashMap 实现的,HashSet 底层使用 HashMap 来保存所有元素,因此 HashSet 的实现比较简单,相关 HashSet 的操作,基本上都是直接调用底层 HashMap 的相关方法来完成,HashSet 不允许重复的值。

    2. ArrayList 和 LinkedList 的区别是什么?

    • 数据结构实现:ArrayList 是动态数组的数据结构实现,而 LinkedList 是双向链表的数据结构实现。
    • 随机访问效率:ArrayList 比 LinkedList 在随机访问的时候效率要高,因为 LinkedList 是线性的数据存储方式,所以需要移动指针从前往后依次查找。
    • 增加和删除效率:在非首尾的增加和删除操作,LinkedList 要比 ArrayList 效率要高,因为 ArrayList 增删操作要影响数组内的其他数据的下标。

    综合来说,在需要频繁读取集合中的元素时,更推荐使用 ArrayList,而在插入和删除操作较多时,更推荐使用 LinkedList。

    3. 如何实现数组和 List 之间的转换?

    • 数组转 List:使用 Arrays. asList(array) 进行转换。
    • List 转数组:使用 List 自带的 toArray() 方法。

    代码示例:

    // list to array
    List<String> list = new ArrayList<String>();
    list. add("叶痕秋");
    list. add("的诗情画意");
    list. toArray();
    // array to list
    String[] array = new String[]{"王磊","的诗情画意"};
    Arrays. asList(array);
    

    OOPS

    1.面向对象编程的主要原则是什么?

    面向对象编程(OOPS)的主要原则是:

    1. 抽象
    2. 封装
    3. 继承
    4. 多态性

    2.面向对象编程语言和基于对象的编程语言有什么区别?

    面向对象编程语言如 Java 和 C ++遵循 OOPS 的概念,如封装,抽象,多态和 继承等。 基于对象的编程语言遵循一些特性 OOPS,但他们不提供对多态性和继承的支持。蛋。JavaScript,VBScript 等 基于对象的编程语言为对象提供支持,您可以从构造函数构建对象。他们的语 言也支持封装。这些也被称为原型导向语言。

    3.在 Java 中,在对象中定义为实例变量的对象引用的默认值是什么?

    Java 中的所有实例变量对象引用都是 null。

  • 相关阅读:
    初入angularJS [2]
    初入angularJS [1]
    ubuntu13.10 nginx
    Session对象详解[源于网络]
    二、Python变量
    一、计算机硬件及操作系统
    python进阶之装饰器之3如何利用装饰器强制函数上的类型检查
    python基础之闭包函数
    python进阶之装饰器之2.定义一个可接受参数的装饰器、如何定义一个属性可由用户修改的装饰器、定义一个能接受可选参数的装饰器
    python进阶之装饰器之1.如何定义一个基本的装饰器并使用,保留装饰器的元数据(原信息),逆向解得函数原信息
  • 原文地址:https://www.cnblogs.com/coderD/p/13871293.html
Copyright © 2020-2023  润新知