备份

420 阅读7分钟

Redis

redis数据类型的底层原理

redisIO模型

redis热点key

redis 选举算法

http与网络

http与https的区别 http请求的过程 tcp与udp的区别 tcp的壅塞控制

mysql

数据库设计的三大范式

数据库的三大范式,是我们设计数据库时的基本原理,遵守数据库设计的三大范式,能够建立冗余较小,结构合理的数据库

  • 第一范式:列不可再分:每一列的数据都是不可以再分割的,例如地址可以划分为省,市级别两列,这样可以按照省或者市进行查找.
  • 第二范式:完全依赖于主键:第二范式在第一范式的基础上,非主键应该完全依赖于主键,而不能只依赖主键的一部分,例如客人住房信息表,以客人id和客房id建立主键,但是客房信息有关的列,只与客房id有关,而不是依赖于客人id与客房id的联合主键,所以应该将客房信息单独设立一张表.
  • 第三范式:非主键只依赖于主键,而不应该依赖于其他非主键,在订单表中不应该出现客人信息,因为这些客人信息并不依赖与订单信息.而应该将客人信息单独设立一张表.

索引数据结构 覆盖索引 组合索引 索引失效 事物的原理 事物的隔离级别 undoLOg与redoLog MVCC和REadView 分片策略 分布式主键 夸库join 满查询日志 执行计划 SQL分析

jvm

请你说说sychronized和volitae区别

数据结构

数组和链表的区别?

数据与链表都可以用来存放相同类型的数据,他们之间的主要区别在于在内存中存放数据方式的不同,数组在内存中采用一块连续的内存空间存放数据,链表在内存中采用的是Node节点存放数据,每个节点通过之争

  • ArrayList的扩容是怎么实现?

算法

一面 注:面试官特别友善,面试体验特别好

自我介绍

实习时间挺长?

数组和链表的区别?

ArrayList的扩容是怎么实现?

介绍一下hashmap,介绍一下put操作做了哪些步骤?(问了细节)

hashmap判定重复是==还是equals

hashmap1.7和1.8?

hashMap是线程安全吗?介绍一下concurrentHashMap?如何保证线程安全的同时保证吞吐量?

synchronized在jdk1.8做了哪些优化?

synchronized为什么要设计成可重入?

volatile的原理?解决什么问题?

介绍一下JMM

Lock接口?了解过AQS嘛?

ReentrantLock可以做公平锁吗?怎么实现公平锁?

算法题:用栈实现队列(Leetcode)其中栈的数据结构也自己实现

String s1 = “abc” String s2 = new String(“abc”)两个语句分别创建了几个对象?对象存储的位置?s1和s2相等吗?执行顺序先是第一条再是第二条创建几个对象?

interface和abstract的区别

abstract抽象类里面一定要有抽象方法吗?

interface可以写方法的实现吗?

jvm的类加载机制?

双亲委派机制?

TCP属于网络的哪一层?

TCP是面向连接的?为什么三次握手?

TCP怎么保证可靠传输?

滑动窗口的大小由哪一端来控制?server为什么要控制?client为什么要控制?

拥塞控制知道吗?

mysql联合索引一道题目:建立了联合a,b,c。

a,b,c会走索引吗?a,c会走索引吗? 算法题:无重复字符的最长子串(leetcode)

你有什么问题要问我吗?问了一下业务?问了一下什么语言?

二面 自我介绍 介绍一下springMVC和Springboot和Mybatis springMVC的一些细节 springboot的作用 介绍几种排序算法,时间复杂度,空间复杂度 桶排序 快速排序 算法题:实现快速排序 堆排序怎么实现 数据结构中图的表示有哪些 哪种情况下用矩阵、哪种情况下用邻接表 求两个点之间的最短距离?介绍一下迪杰斯特拉算法? 介绍一下事务? 介绍一下三大范式? 进程和线程的区别 进程调度有哪几种方式?有哪几种评价方式? 介绍一下虚拟内存?为什么使用虚拟内存?(两种优点) 算法题:对无序的链表进行排序(不可以使用Java中的容器)

三面 自我介绍

学校里学的哪些课程比较受用?

一个指令从软件到操作系统到硬件执行?整个过程做了哪些?

启动一个应用,监听一个端口对外服务?启动服务以后,本身没有问题,但是客户端连不到服务?如何诊断?

一个url从输入到页面解析的过程?

DNS用什么传输协议?

用户如何找到DNS服务器?

DNS服务器是怎么知道IP地址的?如何知道去哪里找DNS服务器?

JDK和JRE的区别?

类加载的机制?

一道问题,有关于Java的值传递

手撕sql

employee(id, name, salary)

office(id, city)

写一个sql,输出每个城市收入最高的员工的名字?后面改成每个城市收入最高的收入?

算法题:下一个排列(Leetcode)

数学题:参加一个游戏节目,你是参赛者,主持人会在你的前面放三个盒子,其中一个盒子藏奖品,你选中一个盒子之后,主持人会开启另外两个中没奖品的一个盒子,剩下一个盒子。请问现在有机会让你换成另外一个盒子,你换盒子和不换盒子的中奖概率是怎么样的?

你有什么问题要问我吗?

项目(MvC的请求转发流程) 浏览器输入url回车的内容 数据库事务 幻读不可重复读,脏读有啥区别 reentrantlock和synchronized有啥区别 偏向锁的锁升级和轻量级锁的锁升级有什么区别。 数据库存储引擎索引怎么实现的 b树和b+树区别。 乐观锁和悲观锁的区别 AQS和CAS区别 之后一个算法题—二叉树的层序遍历。

作者:某翁 链接:www.nowcoder.com/discuss/637… 来源:牛客网

一面(20多分钟) 自我介绍 介绍项目 项目的数据库有多少条 讲一下依赖注入 springboot有哪几个组件 项目配置文件有哪几种类型 spring支持ORM模型的框架 讲一下AOP 如何一次遍历获取链表的中间值 讲一下JVM内存结构 讲一下垃圾回收算法 讲一下string字符串是否可以被修改 string是不是基本类型 float a = 1.2这种定义正确的吗 Integer和int的区别 用最快的方法去用2计算得到8 做项目里面用过什么更多的技术 一般在学习一项新技术的时候都是怎么做的 重载和重构的区别 重构只修改返回类型为什么不行 讲一下JVM的类加载的过程 讲一下Java里面发生的内存泄露的情况 抽象类和接口的区别 虚拟机里面设置堆内存的最大大小 有学过kafuka吗 线程创建的方式有哪几种 你有什么要问我的吗 什么部门,哪个事业群 主要做一些什么业务 用到哪些技术

二面(30分钟)

实习多久?愿不愿意转go? 海量字符串,求出现频率最高的字符串? 内存存不下这些字符串该怎么做? Java内存泄露的情况举例? 最快求得链表中间结点? mybatis? mysql的存储引擎? myisam和innodb的区别? 排查一个线上服务很慢?可以用到哪些工具 redis分布式锁?过期删除策略? redis底层数据结构? 消息队列? redis和Mysql实现秒杀系统? 平时用redis都是做什么? redis里面hash和string的区别? 一个后端接口你一般怎么测试? 前后端分离联调出了问题谁来负责? 你有什么要问我的吗?

三面(30分钟) 突然袭击没做记录,忘了一些问题 自我介绍 聊项目(比较细) 如何排查项目上线慢 海量数据问题