28 天读完 349 页,这份 Alibaba 面试通关手册,助我
会话跟踪技术有哪些?
Web 开发中如何指定字符串的编码?
什么是 Ajax?
cookie 和 session 有什么区别?
什么是 J2EE?
J2EE 中常用的术语有哪些?
EJB 有哪些不同的类别?
EJB 与 JavaBean 有什么异同?
EJB 有哪些生命周期??
EJB 的角色有哪几种?
EJB 的开发流程是怎样的?
…
数据库连接池的工作机制是怎样的?
J2EE 开发有哪些调优的方法?
什么是 Struts 框架?
Struts 框架响应客户请求的工作流程是什么?
Struts 框架的数据验证可分为几种类型?
Form Bean 的表单验证流程是什么?
在 Struts 配置文件中, 元素包含哪些属性和子元素?
ActionForm Bean 的作用有哪些?
ActionForm 的执行步骤有哪些?
forward 与 global-forward 有什么区别?
Struts 如何实现国际化?
Struts 1 与 Struts 2 有哪些区别?
什么是 loC?
什么是 AOP?
什么是 Spring 框架?
什么是 Hibernate?
什么是 Hibernate 的二级缓存?
Hibernate 中 session 的 update ()和 saveOrUpdate ( ). load()和 get ()有什么区别?
Hibernate 有哪些主键生成策略?
如何实现分页机制?
什么是 SSH?
3.数据库原理
SQL 语言的功能有哪些?
内连接与外连接有什么区别?
什么是事务?
什么是存储过程?
它与函数有什么区别与联系?
各种范式有什么区别?
什么是触发器?
什么是游标?
如果数据库日志满了,会出现什么情况?
union 和 union all 有什么区别?
什么是视图?
…
4.设计模式
什么是单例模式?
什么是工厂模式?
什么是适配器模式?
什么是观察者模式?
…
5.数据结构与算法
如何实现单链表的增删操作?
如何从链表中删除重复数据?
如何找出单链表中的倒数第 k 个元素?
如何实现链表的反转?
如何从尾到头输出单链表?
如何寻找单链表的中间结点?
如何检测一个链表是否有环?
如何在不知道头指针的情况下删除指定结点?
如何判断两个链表是否相交?
栈与队列有哪些区别?
如何实现栈?
如何用 O(1)的时间复杂度求栈中最小元素?
如何实现队列?
如何用两个栈模拟队列操作?
如何进行选择排序?
如何进行插入排序?如何进行冒泡排序?
如何进行归并排序?
如何进行快速排序?
如何进行希尔排序?
如何进行堆排序?
各种排序算法有什么优劣?
…
如何求指定数字在数组中第一次出现的位置?
如何对数组的两个子有序段进行合并?
如何计算两个有序整型数组的交集?
如何判断—个数组中数值是否连续相邻?
如何求解数组中反序对的个数?
如何求解最小三元组距离 8.6 字符串?
如何实现字符串的反转?
如何判断两个字符串是否由相同的字符组成?
如何删除字符串中重复的字符?
如何统计一行字符中有多少
个单词?
如何按要求打印数组的排列情况?
如何输出字符串的所有组合?
二叉树的基本概念
如何实现二叉排序树?
如何层序遍历二叉树?
已知先序遍历和中序遍历,如何求后序遍历?
如何求二叉树中结点的最大距离?
如何消除嵌套的括号?
如何不使用比较运算就可以求出两个数的最大值与最小值?
…
6.海量数据处理
问题分析
基本方法
经典实例分析
top K 问题
重复问题
排序问题
三、字节跳动面试题还原(技术题)
这次字节跳动的整个过程我就不去还原了,只将面试题分享出来吧,面试题以技术面为主,Hr 面基本上大同小异我就省略掉了,可以参考一下今年字节跳动会问一些什么样的问题,热乎乎的新鲜面试题,希望能够给你带来一些帮助吧。
Session 存在哪里?怎么把 session_id 返回个客户端?
Redis 的数据结构,它有哪些复杂数据结构?
Http 与 Https 的区别,详细描述加密非对称加密的过程?
线程与进程的区别?
IO 多路复用
redis 服务端是多进程还是单进程,多线程还是单线程?
top loadaverage 怎么计算的?
hashmap 解决冲突的方式?
数据库的事务,什么是幻读?事务是怎么实现的?
linux 的命令,如何查看服务器负载?
如何查看端口占用情况?
如何查看远程服务器某一个端口被占用?
可以 ping 通,当时客户端连接不上服务端,什么原因?
操作系统包括哪些部分?
如何进行内存分配?
进程切换发生哪些事情?
fork 函数
项目:分布式如何扩容缩容?
讲讲 B 树和 B+树区别
三次握手,四次挥手
为什么要 time-wait?
java 多线程同步
项目:如何避免超卖?
redis 主从同步
操作系统内存为何要分页?
B+树叶子满了,要添加新枝怎么办?
5G 数据,1G 内存如何实现排序?
操作系统加锁的原理
volatile 关键字
单例
Spring AOP
注解的原理
OOM 的情况
Jvm 内存模型
算法部分:(1)一个长度为 n 的数组,元素在 1 到 n 之间,找到一个重复的元素,空间复杂度越低越好;(2) 最长不重复子串;(3)找比当前数大的下一个数,如 1243,结果是 1324;(4)给定一个升序数组,一个 target 值,找比 target 小的最大数字(类似于升序插入排序的一个步骤);(5)链表循环;(6)O 时间取出栈最小元素;(7)升序数组找绝对值最小的那个值
字节跳动面试题答案
四、面试心得
字节跳动的面试相对其他大厂而言,整体的氛围还是比较轻松的,可能面试官都比较年轻的缘故吧,实际上它给外界的印象也一贯如此,年轻活力。所以,在前期做好了相关的准备,面试官基本上是不会太为难你。
面试字节跳动,有几个需要提前准备的点:
①复习基础和原理,看一些技术笔记。面试的时候,这部分是一定会问的,但是大部分的就是忽略了基础部分,影响了面试结果,所以在面试字节跳动之前,我在这部分也算是下足了功夫,把基础与原理巩固了,也拜读了一些技术大牛的博客及手写的笔记内容。
②算法。现在很多互联网公司都喜欢在面试时问算法相关的,字节跳动喜欢问算法相信大家也都有耳闻,从我上述的面试题也能够看出,基本上算法问的比重还是较多的。至于很多小伙伴问算法怎么准备,其实很容易的,最快捷有效的办法就是刷题,我这边也准备了三套“算法宝典”奉上:
三套“算法宝典”
评论