面经总结

91 阅读5分钟

5.12

算法题

  1. 股票问题拓展,需要输出买入和卖出的时间

Java

  1. 堆排序是怎么实现的?大顶堆是怎么实现的?
  1. maven是做什么
  • Maven 是一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。Maven 的一个核心特性就是依赖管理
  1. 注解是干什么的
  2. 注解什么时候不生效?注解的本质是什么?
  3. 知道现在流行的框架是什么吗?(答了springboot)spring mvc 和springboot有什么区别?
  4. 创建线程的几种方式。哪一种更常用。为什么。
  • 方式有:
    1. 实现 Runnable 接口,实现接口中的 run() 方法,使用 Runnable 实例再创建一个 Thread 实例,然后调用 Thread 实例的 start() 方法来启动线程。
    1. 实现 Callable 接口,与 Runnable 相比,Callable 可以有返回值,返回值通过 FutureTask 进行封装

图片.png

  • 3. 继承Thread类,实现run() 方法。
  • 实现接口的方法更好,因为:
    1. Java 不支持多重继承,因此继承了 Thread 类就无法继承其它类,但是可以实现多个接口;
    1. 方便同一个对象被多个线程使用
    1. 类可能只要求可执行就行,继承整个 Thread 类开销过大。

MySQL

  1. mysql是怎么存储数据的?数据结构?
  • 答案还是不明确。实际上数据库是用来持久化存储数据的,本质上数据库就是一个文件系统
  • 补充内容:数据库InnoDB 引擎中,其数据文件本身就是索引文件。相比 MyISAM,索引文件和数据文件是分离的,其表数据文件本身就是按 B+Tree 组织的一个索引结构,树的叶节点 data 域保存了完整的数据记录。这个索引的 key 是数据表的主键,因此 InnoDB 表数据文件本身就是主索引。这被称为“聚簇索引(或聚集索引)”,而其余的索引都作为辅助索引,辅助索引的 data 域存储相应记录主键的值而不是地址,这也是和 MyISAM 不同的地方。在根据主索引搜索时,直接找到 key 所在的节点即可取出数据;在根据辅助索引查找时,则需要先取出主键的值,在走一遍主索引。 因此,在设计表的时候,不建议使用过长的字段作为主键,也不建议使用非单调的字段作为主键,这样会造成主索引频繁分裂。
  1. 索引的作用是什么?为什么建索引?索引的数据结构?
  • 答:索引是一种用于快速查询和检索数据的数据结构。建立索引可以提高数据检索的效率,降低数据库的IO成本。通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。数据结构是B+树。详细存储情况见上一条。
  1. 给你一句话,怎么建索引:select * from user where a=1 order by update_time desc limit 100
  • 答:CREATE INDEX idx_a_update_time ON tb_seller(a,update_time);不确定对不对,设计索引原则:①最佳候选列应当从where子句的条件中提取②组合索引可以提升查询效率
  1. SQL注入是什么

计网相关

  1. 浏览器输入网址后都发生了什么?

图片.png

  1. 浏览器是怎么解析返回来的资源的? -答:参考链接
1. 浏览器使用词法分析器和解析器将HTML内容解析生成DOM Tree2. CSS资源会解析成CSS Rule Tree3JS通过DOM APICSSOM API来操作DOM树和CSS树。
4,解析完成后综合DOM树和CSS树会生成Rendering Tree(渲染树),计算每个元素(Frame)的位置,这个过程就是layout(布局)过程。
5,调用操作系统Native GUIAPI绘制。
  1. 动静分离是什么?
  • 参考链接
  • 静态页面,是指互联网架构中,几乎不变的页面(或者变化频率很低):首页等html页面、js/css等样式文件、jpg/apk等资源文件。静态页面访问路径短,访问速度快,几毫秒
  • 动态页面,是指互联网架构中,不同用户不同场景访问,会动态生成不同的页面,如搜索结果,个人订单页等。动态页面访问路径长,访问速度相对较慢(数据库的访问,网络传输,业务逻辑计算),几十毫秒甚至几百毫秒
  • 动静分离:静态页面与动态页面采用不同的架构设计方法

图片.png

  1. 静态资源存放在哪里?
  • 答:有的说文件系统(磁盘),有的说内存。面试官的意思,听起来像内存。。
  1. HTML都有哪些组成部分?
  2. 网络攻击有哪些?
  3. cookie和session的区别。
    1. session用于存储一次会话的多次请求的数据,存在服务器端;Cookie在客户端
    1. session没有数据大小限制,Cookie有
    1. session数据安全,Cookie相对于不安全
  1. 什么时候用cookie,什么时候用session
    1. 一次请求可以使用cookie,多次请求必须使用session存储数据
    1. 重定向必须使用session存储数据
  1. DNS,TCP/IP具体工作流程