面试总结

来源:互联网 发布:域名对应多个ip 编辑:程序博客网 时间:2024/04/29 04:07

总结一下这几天面试Java开发被问到的一些问题:


数据库方面

  1. MySQL主要有几种表连接查询方式?区别?
    • 答:表的连接查询方式有内连接、外连接、交叉连接。
      • 內连接:(典型的连接运算,使用像 = 或 <> 之类的比较运算符)。内连接使用比较运算符,根据每个表共有的列的值匹配两个表中的行。
      • 外连接:包括左连接、右连接、全连接。
        • 1)left join 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行;
          SELECT A.name, B.address FROM A LEFT JOIN B ON A.id = B.A_id
        • 2)right join 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行;
          SELECT A.name, B.address FROM A RIGHT JOIN B ON A.id = B.A_id
        • 3)full jion 包含左、右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行。
          select * from A full join B
      • 交叉连接:cross join 交叉连接不带where子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。SELECT * FROM A CROSS JOIN B
  2. 数据库事务的特性?
    • 答:数据库事务是指作为单个逻辑工作单元执行的一系列操作,这些操作要么全做要么全不做,是一 个不可分割的工作单位。
      数据库事务的四大特性(简称ACID)是:
      • (1)原子性(Atomicity)
        事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。
      • (2)一致性(Consistency)
        事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。这种特性称为事务的一致性。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。
      • (3)分离性(亦称独立性Isolation)
        分离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。假如并发交叉执行的事务没有任何控制,操纵相同的共享对象的多个并发事务的执行可能引起异常情况。
      • (4)持久性(Durability)
        持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBMS保证它对数据库中数据的改变应该是永久性的,即对已提交事务的更新能恢复。持久性通过数据库备份和恢复来保证。
  3. 数据库常用的统计函数?
    1)AVG   –求平均值
    2)COUNT –统计数目
    3)MAX   –求最大值
    4)MIN   –求最小值
    5)SUM  –求和

数据结构方面

  1. 解释一下树、栈、队列、数组的概念。

    • 是由n(n>=1)个有限节点组成一个具有层次关系的集合。每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树。

    • 它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。特点:先进后出
    • 队列
      队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。特点:先进先出
    • 数组
      就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。
  2. 二叉树类型?二叉树遍历。
    二叉树是每个节点最多有两个子树的树结构。分为以下几种:
    • 1)完全二叉树
      若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。
    • 2)满二叉树
      除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。
    • 3)平衡二叉树
      平衡二叉树又被称为AVL树(区别于AVL算法),它是一棵二叉排序树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

      二叉树遍历

      树的深度和高度
      树的深度是从根节点开始(其深度为1)自顶向下逐层累加的,而高度是从叶节点开始(其高度为1)自底向上逐层累加的。虽然树的深度和高度一样,但是具体到树的某个节点,其深度和高度是不一样的。
  3. 什么是哈希?哈希的用途?

    • Hash,一般翻译为“散列”,也有直接音译为“哈希”的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。
    • 简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
      应用: Hash主要用于信息安全领域中加密算法,把一些不同长度的信息转换成杂乱的128位的编码里,叫做HASH值。

      也可以说,hash就是找到一种数据内容和数据存放地址之间的映射关系。

    • MD5和SHA1可以说是目前应用最广泛的Hash算法。

    • Hash基本思路:设要存储对象的个数为num, 那么我们就用len个内存单元来存储它们(len>=num); 以每个对象k的关键字为自变量,用一个函数h(k)来映射出k的内存地址,也就是k的下标,将k对象的元素内容全部存入这个地址中。

计算机网络方面

  1. 根据整个计算机网络功能将网络分为,OSI七层模型和TCP/IP五层模型。

    • OSI七层模型
    OSI中的层 功能 TCP/IP协议 应用层 文件传输、电子邮件、
    文件服务、虚拟终端 HTTP、TFTP、SNMP、
    DNS、FTP 表示层 数据格式化,代码转换、数据加密 无协议 会话层 提供两进程之间建立、
    维护和结束会话连接的功能
    提供交互会话的管理功能 无协议 传输层 提供端对端的接口,提供建立、
    维护和拆除传送连接的功能 TCP、UDP 网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU 物理层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2
    • TCP/IP五层模型
    TCP/IP 网络设备 应用层 传输层 四层交换机、也有工作在四层的路由器 网络层 路由器、三层交换机 数据链路层 网桥(现已很少使用)、以太网交换机(二层交换机)、网卡(其实网卡是一半工作在物理层、一半工作在数据链路层) 物理层 中继器、集线器、还有我们通常说的双绞线也工作在物理层
  2. TCP/IP协议?
    • 传输控制协议,是Internet最基本的协议,由网络层的IP协议和传输层的TCP协议组成。TCP/IP定义了电子设备如何进入因特网,以及数据如何在它们之间传输的标准。
    • 通俗来讲:TCP负责发现传输的问题,一有问题就发出是信号,要求重新传输,直到所有数据安全正确的传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
0 0