美文网首页
Java后端面试真题分享

Java后端面试真题分享

作者: Java挣扎者 | 来源:发表于2020-09-11 13:55 被阅读0次

    每场面试都必须认真面对!

    一、常见算法和数据结构

    1、数组、链表、队列、栈的各种操作(性能,场景)

    2、各类排序算法以及复杂度分析(快排、归并、堆),不同排序算法的稳定性

    3、理解并可以分析时间和空间复杂度。

    4、动态规划、贪心。

    5、回溯算法

    6、二叉树、前中后虚(图考察的很少,只有笔试偶尔遇到)

    7、DFS、BFS 算法

    8、单调栈、单调队列

    二、操作系统

    1、进程通信 IPC(几种方式),进程与线程定义与区别

    2、进程调度算法、磁盘扫描算法

    3、虚拟内存、页面置换算法

    4、内核态和用户态的转换的条件、中断、系统调用

    5、互斥与死锁

    6、linux 常用命令(问的时候都会给具体某一个场景)

    7、Linux 的 IO 模型 BIO/NIO/AIO、 IO 多路复用

    8、Linux 内核 select poll epoll、边缘触发和水平触发

    9、僵尸进程和孤儿进程

    三、数据库

    1、索引(包括分类及优化方式,失效条件,底层结构 B 树、B + 树的区别优缺点)

    2、优化(explain,慢查询,show profile)、数据库的范式

    3、辅助索引、主键索引、聚簇索引、非聚簇索引、索引回表、索引覆盖、索引下推

    4、联合索引和最左匹配原则

    5、引擎对比(InnoDB,MyISAM)

    6、数据库的锁(行锁,表锁,页级锁,读锁,写锁,悲观锁,乐观锁)

    7、隔离级别,依次解决的问题(脏读、不可重复读、幻读)、隔离级别与加锁的关系

    8、事务的 ACID

    9、分库分表,主从复制,读写分离。

    10、sql 语法(join,union,子查询,having,group by)主要考察 sql 语句的书写

    四、计算机网络

    1、OSI7 层模型(TCP4 层)、每层的协议

    2、常见协议为位置在 OSI 七层协议的位置(HTTP/TCP/UDP/DNS/IMAP/ARP/ 路由器 / 交换机)

    3、http/https 1.0、1.1、2.0、https 加密过程(对称加密和非对称加密)

    4、get/post 以及 http 幂等性

    5、http 协议头相关、http 常见的状态码

    6、TCP 与 UDP 比较

    7、TCP 三次握手、四次挥手、拥塞控制(过程、阈值)、流量控制与滑动窗口

    8、TCP 的 time_wait 和 close_wait

    9、url 到页面的过程

    10、网络攻击(CSRF、XSS、DDos)

    五、Java 语言

    (一)基础

    1、面向对象、四个特性、重载重写、继承、多态、反射

    2、常见关键字 final、static、abstract、finalize、transient、native

    3、StringBuffer、StringBuilder 和 String、字符常量池

    4、六大设计原则、常见的设计模式(代理、工厂、单例、装饰者、观察者)

    5、异常、常见的异常类

    6、序列化

    7、深拷贝和浅拷贝、值传递和引用传递

    8、抽象类和接口

    9、基本类型的默认值和取值范围以及字节数

    (二)多线程

    1、synchronized 关键字底层原理、锁升级原理、轻量级锁、重量级锁

    2、Lock 锁机制、线程通信、、ThreadLocal、Atom 包、AQS、CAS 原理

    3、volatile 关键字、内存屏障、happen-before 原则

    4、同步队列、等待队列、阻塞队列

    5、线程池、线程池的执行流程、线程池的主要参数(coresize、阻塞队列、maxsize、拒绝策略)、线程池的任务递交方式和状态变化。

    6、thread 类的常见方法:sleep、join、yield;sleep 和 wait 方法的区别

    7、线程的五种状态、run 方法和 start 方法

    8、守护线程和用户线程

    (三)集合框架

    1、hashmap(这个基本是必考题)hashcode 函数、equals 函数、扩容机制、put 和 get 操作、jdk1.7 和 jdk1.8 的变化、hashmap 的尾部遍历、红黑树的引入

    2、hashmap 的线程安全问题,synchronizedMap、hashtable、concurrentHashMap

    3、concurrentHashMap 的 jdk1.7 和 jdk1.8 的变化,底层实现线程安全的方式

    4、常见的集合框架哪些是线程安全的,哪些是线程不安全的

    5、arraylist 和 linkedlist、vector

    6、集合的遍历、迭代器

    (四)JVM

    1、JVM 内存模型、堆、栈、PC 计算器、永久代分别存储的内容

    2、GC 垃圾回收,三种 GC 算法,七种 GC 收集器

    3、CMS 和 G1 的优缺点、执行流程

    4、年老代和年轻代、分代垃圾回收算法

    5、四种引用类型、GCroot 的可达性分析法

    6、对象创建的过程、对象的内存分配

    7、类加载的过程、类加载器

    8、双亲委派机制、tomcat 的反双亲委派机制

    9、JVM 调优,常见的调优参数

    10、内存泄漏和内存溢出

    六、项目 + 中间件

    面试的第一个环节就是自我介绍,最好提前准备好腹稿,介绍的基本内容就是你的教育经历 + 工作经历 + 简单的性格介绍。而工作经历中的项目将成为接下来面试官询问的重点,所以最好能准备一个拿得出手的项目。

    如果在面试之前已经有工作经历和项目经历,就需要深挖你项目的亮点:

    1.开发的时候使用的技术和中间件

    2.遇到的问题、如何解决问题

    3.是否有优化方案,如何优化你的项目

    上面这三个问题基本上是最常见也是最基本的问题,准备项目的时候,一定要把上面这些问题准备好。如果是第一次找工作,最后也是提前编写一个项目练练手,现在比较火爆的项目就是 —— 秒杀系统。因为这个项目基本会用到主流的中间件(spring、Redis、消息队列 MQ、kafka)。而且我在跟面试官交流的时候,面试官对这个项目也是认可的,前提你真的深入其中。

    除了这些题目,我这还整理有很多Java的面试资料,各个方向的都有,也有Java的学习资料,有需要的可以关注+私信我!免费提供!

    最后祝每个找工作的小伙伴都能顺顺利利哦!

    相关文章

      网友评论

          本文标题:Java后端面试真题分享

          本文链接:https://www.haomeiwen.com/subject/neovektx.html