面试题:14(完成)

6.33.java的数据结构有那些?

  1. 常用的数据结构有:”数组”,”栈”,”队列”,”链表”,”树”,”散列”,”堆”,”图” 等;
  • 数组

    长度固定,只能存储一种数据类型,查询快,增删慢,因为要移动元素,索引对应的值会变化;

  • 是一种基于先进后出的数据结构,最后一个数据会被第一个读取;

  • 队列

    是一种基于先进先出的数据结构,最后一个数据也是到最后才开始读取;

  • 链表→”单链表” “双链表” “循环链表

    链表是一种动态的数组结构,会按需扩容;

单链表是每个元素结束的节点指向下一个元素开始的节点;

双链表是每个元素都有指向下⼀个和上⼀个元素的节点;

循环链表包含了单链表和双链表,并且在双链表的基础上,双链表的第一个元素和最后一个元素的节点会相连成一个循环链;

  • 树→“二叉树” “平衡树” “红黑树” 等;
  • 散列表也是哈希表(map集合),由键和值两个元素组成,用键去对应指定的值;

    6.34.java语言有哪些特点?

  1. 可面向对象降低代码的耦合度
  2. 跨平台语言
  3. 安全性高
  4. 支持多线程

    6.35.面向对象和面向过程的区别?

    面向过程是java较早的编程思想,是站在过程的角度去定义的编程,意思是当面向过程更注重于方法的执行流程是一步步实现的,是一种基础的顺序思维方式,强调的是方法的实现。
    面向对象是基于面向过程开发的新的编程思想,把数据和方法的步骤封装为一个对象,也就是一个整体的意思,运行的方式都由对象来实现,强调的是以功能的形势去实现,拥有更低的耦合度更高的维护性。