zoukankan      html  css  js  c++  java
  • 百度实习生面试题

    一面:数据结构、网络、操作系统

    一、计算机网络

    1、谈谈ISO七层模型、五层模型、TCP/IP模型,分别阐述没一次层的作用与区别?

    2、谈一下TCP、UDP有什么区别?

    3、谈一下为什么TCP是面向连接的?能说一下三次握手、四次挥手吗?

    二、数据结构

    *话题一:数组、链表

    1、能谈一下数组、链表的区别吗?

         数组:查找快、更新慢。

         链表:更新快、查找慢。

    2、为什么数组比链表查找快(从内存的角度说)?或者数组和链表在内存上的表现是什么样子的?

         数组是连续的存储空间,链表是在内存中存储是碎片化的。

    3、那怎么改善链表的查找速度?

         跳表

    4、跳表它本质上跟那种查找思想类似?

         查找:二分查找、hash查找

         类似于二分查找的思想。

    *话题二:查找、排序(排序需要手写代码)

    1、谈一下你知道的排序?(冒泡、快排、归并比较常见) 时间复杂度,排序稳定性。

         插入排序:直接插入排序、希尔排序

         交换排序:冒泡排序、快速排序

         选择排序:简单选择排序、堆排序

         归并排序

         

    2、谈一下查找?

         二分查找、线索查找、hash查找

    3、hash查找要考虑的重要问题有哪些?

         数组+链表

         要考虑hash均匀分布、hash算法。

    话题三:树、图基本操作

    1、二叉树的前序、中序、后序遍历?

    2、还有其他的树吗?比如平衡二叉树:线索二叉树、B+树、红黑树?(基本不问,简单说说算法思想)

    3、图的广度优先遍历、深度优先遍历?

    4、最短路径之类(基本不问,简单说说算法思想 )?

    三、操作系统

    1、能谈谈线程与进程的区别吗?

    2、谈谈线程的不同状态?

    3、线程start()以后马上就进入Runable阶段吗?

         处于Ready状态,需要等时间片。

    4、什么是线程安全?

    5、实现生产者-消费者问题(Java代码实现)?

    6、IO有几种模型

         阻塞IO、异步IO、多路复用IO

    二面:Java基础和架构思想

    一、Java基础

    1、谈谈java中基本数据类型?

    2、谈谈equals与==有什么区别?

         去网上找题,别背概念。

    3、String用什么实现的?

         内部的char数组为什么设计成final?

         String为什么设计成final?也是因为它的不可变性质吗?

         能谈谈equals和hashcode的分别的作用是什么吗?它们有什么区别?

    4、能说一下有哪些容器吗?

         List:ArrayList、LinkedList、Vector

         Map:HashMap、Hashtable、TreeMap

         高并发Map:ConcurrentHashMap     

         ...

    5、Map发问连环炮?

         话题一:

         HashMap与HashSet有什么区别?

         hashMap可以key为空或者value为空吗?可以同时为空吗?

         HashSet有什么特点?

       

         话题二: 

         HashMap底层是怎么实现的?

              1.6:数组+链表

              1.8:数组+链表/红黑树

         为什么要二次hash?谈谈扩容|什么时候扩容?     

         HashMap与Hashtable有什么区别吗?

         Hashtable加同步锁有什么问题?能不能有更好的实现方式?

         ConcurrentHashMap底层怎么实现的?怎么保证同步的(CAS)?

         话题三:

         如果前面的,你都答出来了?

         什么是CAS?它synchronized有什么区别?

         谈谈synchronized?

         能谈一下volatile吗?

    6、JVM连环炮+并发编程?

         话题一:

         1、谈谈内存区域?

              堆、栈、方法区、(程序计算器、本地方法栈 )|可以不谈

         2、堆、栈、方法区分别有什么用?存储什么内容?

         3、能谈谈堆吗?

              新生代、老年代

         4、怎么判断对象不可用?

         5、能谈一下GC策略吗?它是怎么回收不可用对象的?

              标记-清除,复制、标记-整理、分代。

         6、能谈一下垃圾回收器吗?(暂无碰见问的)

         7、对象怎么分配的?

         话题二:

         1、谈一下类加载过程?

         2、谈一下双亲委派机制?

         话题三:

          1、谈一下Java内存模型

          2、谈一下Synchronized、volatile?

          2、谈一下AQS、CountDownLatch、ReentrantLock?(暂时还没有人问)

          3、谈一下ThreadLocal?

          4、谈一下CAS?

          5、谈一下线程池原理?

         

    二、设计模式

         1、谈一下六种设计原则?开闭原则什么意思?里氏XX是什么意思?

         2、写一个单例模式?后续自己扩展各种的优缺点?

         3、谈一个你熟悉的设计模式?

    三、缓存

         1、设计一个高效的缓存?

         2、谈谈LRU算法?(解决高效的缓存)

    三、架构思想 、高并发、大数据量解决方案。

         1、一个很大的日记文件,统计出访问排行?

         2、mapreduce思想?谈谈shuffle?

  • 相关阅读:
    jar包和war包的介绍和区别
    Jenkins安装完成后,一直停留在页面Please wait while Jenkins is getting ready to work...的解决方法
    mongdb简介
    loadrunner12的安装教程
    airpods2隐藏的使用技巧(十)点
    银行个人住房贷款LPR办理流程-建行app
    一张图了解地摊经济时代如何摆摊
    每天学五分钟 Liunx 001 | 用户及用户组
    每天学五分钟 Liunx 000 | 计算机与 Liunx
    【转载】资深大牛吐血总结:如何成为一名合格的云架构师?
  • 原文地址:https://www.cnblogs.com/yulu612/p/7401214.html
Copyright © 2011-2022 走看看