面试题
心安成长
对计算机工程和数据分析感兴趣的码农一枚,愿与大家分享科技那点事儿,算法分享,题目解读。让我们一起畅游AI浪潮。
展开
-
面试里必须搞懂----二叉树的前中后遍历
目录概述中序遍历前序遍历后续遍历概述二叉树在面试中占有不可或缺地位,所有要至少要搞明白前中后序的非递归写法,非递归遍历的原理是借助一个辅助栈。中序遍历中序遍历是左根右。如果当前二叉树有左子树,那么就入栈。如果没有左子数,那么先输出当前栈顶元素,然后p在走到右子数,不断的重复这个过程,说实话这个代码不好想public void midOrder(TreeNode root){ Stack<TreeNode> stack = new Stack<TreeNode>();原创 2020-09-29 13:13:35 · 231 阅读 · 0 评论 -
面试之单例模式
目录概述五种单例实现模式1. 懒汉模式2. 饿汉模式3. 枚举模式(推荐)4. 内部静态类(推荐)5. 双重校验锁(DCL)概述单例模式,有5种常见的实现方式。每种方式都包含着相应的技术细节和知识点。JAVA实现单例模式有5种方案:分别是“懒汉”“饿汉”“枚举”“内部静态类”“双重校验锁”。总体上来说,单例模式的设计需要把握两点原则。其一,由于是单例模式,因此不能将类的构造函数暴露在外面,所以要将构造函数重写为私有的。其二,要考虑线程安全**,绝对不能多个线程构造出多个对象来**。五种单例实现模式转载 2020-09-27 08:34:31 · 313 阅读 · 0 评论 -
面试里必须搞懂的堆排序
目录前言二叉堆介绍构建二叉堆堆排序前言面试官很喜欢的一个问题就是你会堆排序吗?会的话,手写一个吧二叉堆介绍我们知道,树有很多种,最常用的就是二叉树了。二叉树又有满二叉树和完全二叉树。而二叉堆,就是基于完全二叉树的一种数据结构。它有以下两个特性。首先它是一个完全二叉树其次,堆中的任意一个父节点的值都大于等于(或小于)它的左右孩子节点。因此,根据第二个特性,就把二叉堆分为大顶堆(或叫最大堆),和小顶堆(或叫最小堆)。顾名思义,大顶堆,就是父节点大于等于左右孩子节点的堆,小顶堆就是父节点小于左转载 2020-09-24 09:10:35 · 485 阅读 · 0 评论 -
驾驭面试之并发的线程间协作(wait/notify/sleep/yield/join)
这里写目录标题一、线程的状态二、wait/notify/notifyAll方法的使用1、wait方法:2、notify/notifyAll方法三、sleep/yield/join方法解析1、sleep2、yield方法3、join方法一、线程的状态Java中线程中状态可分为五种:New(新建状态),Runnable(就绪状态),Running(运行状态),Blocked(阻塞状态),Dead(死亡状态)。New:新建状态,当线程创建完成时为新建状态,即new Thread(…),还没有调用start转载 2020-09-15 02:45:02 · 83 阅读 · 0 评论 -
驾驭面试之聊聊volatile的使用及其原理
目录一、volatile的作用二、volatile的使用1、防止重排序2、实现可见性3、保证原子性三、volatile的原理**1、可见性实现**:**2、有序性实现**:**3、内存屏障**四、总结一、volatile的作用我们已经知道可见性、有序性及原子性问题,通常情况下我们可以通过Synchronized关键字来解决这些个问题,不过如果对Synchronized原理有了解的话,应该知道Synchronized是一个比较重量级的操作,对系统的性能有比较大的影响,所以,如果有其他解决方案,我们通常都避转载 2020-09-14 14:12:48 · 79 阅读 · 0 评论 -
驾驭面试之SpringbBean的生命周期
这一节准备给大家讲解Spring 容器中的Bean的生命周期。这一节我个人觉得还是比较实用的,在实际工作当中经常会用到这些知识来解决一些非常棘手的问题。ApplicationContext中Bean的生命周期先来张图:大家看到这张图肯定是一脸蒙蔽。不要着急,我来慢慢解释:从getBean(…)为触发点,Spring容器的Bean生命周期就经历了图中的生命周期,先分个类:其中橙色和绿色的是容器级别生命周期接口,也就是所有的Bean初始化时都会发生作用。主要包含两个接口InstantiationA转载 2020-09-14 12:48:51 · 282 阅读 · 0 评论 -
驾驭面试--了解Spring中,接口的bean是如何注入的
面试中,如果你说会使用spring,那么这道问题是绕不开的, 说说 Spring 中,接口的bean是如何注入的吗?问题:这个问题困扰了我好久,一直疑问这个接口的bean是怎么注入进去的?因为只看到使用@Service注入了实现类serviceImpl,使用时怎么能获取的接口,而且还能调用到实现类的方法,难道这个接口是在什么时候自动注入了进去,且和实现类关联上了?接口public interface TestService { public String test();}实现类imp转载 2020-09-14 08:46:18 · 473 阅读 · 0 评论 -
驾驭Spring Cloud面试题(持续更新...)
目录微服务架构详述为什么需要学习Spring Cloud?Spring Cloud 是什么?SpringCloud的优缺点?SpringBoot和SpringCloud的区别?Spring Cloud和SpringBoot版本对应关系SpringCloud由什么组成?使用 Spring Boot 开发分布式微服务时,我们面临什么问题?Spring Cloud 和Dubbo区别?Eureka介绍服务注册和发现是什么意思?Spring Cloud 如何实现?微服务架构详述微服务架构就是将单体的应用程序分成转载 2020-09-05 06:55:09 · 231 阅读 · 0 评论 -
Nginx面试题(持续更新...)
目录1、 什么是Nginx?2、为什么要用Nginx?3、为什么Nginx性能这么高?4、Nginx怎么处理请求的?5、什么是正向代理和反向代理?6、使用“反向代理服务器的优点是什么?7、Nginx的优缺点?8、Nginx应用场景?9、Nginx目录结构有哪些?10、Nginx配置文件Nginx.conf有哪些属性模块?11、 什么是Nginx静态资源?12、如何用Nginx解决前端跨域问题?13、Nginx虚拟主机怎么配置?基于虚拟主机配置域名基于端口的虚拟主机14、location的作用是什么?loca原创 2020-09-04 02:19:16 · 395 阅读 · 0 评论 -
ZooKeeper面试题(持续更新...)
这里写目录标题什么是Zookeeper?Zookeeper 如何保证了分布式一致性特性?ZooKeeper 提供了什么?Zookeeper 文件系统说一下Zookeeper 的ZAB 协议?四种类型的数据节点 ZnodeZookeeper Watcher 机制 -- 数据变更通知客户端注册 Watcher 实现服务端处理 Watcher 实现客户端回调 WatcherACL 权限控制机制Chroot特性会话管理服务器角色Zookeeper下server工作状态数据同步Zookeeper是如何保证事物的顺序一原创 2020-09-02 08:15:11 · 467 阅读 · 0 评论 -
MQ与RabbitMQ面试题(持续更新...)
目录RabbitMQ的应用场景为什么使用MQ?MQ的优点什么是RabbitMQ?你们公司生产环境用的是什么消息中间件?使用RabbitMQ的场景?如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息?如何保证消息不被重复消费?或者说,如何保证消息消费时的幂等性?消息基于什么传输?消息如何分发?消息怎么路由?如何确保消息不丢失?(重要)如何保证高可用的?RabbitMQ 的集群MQ的缺点?系统可用性降低系统复杂性提高一致性问题Kafka,ActiveMQ,RabbitMQ,RocketMQ都原创 2020-09-01 07:15:21 · 961 阅读 · 0 评论 -
MySql数据库面试(持续更新...)
目录数据库基础知识什么是SQL?MySQL说一下Mysql 、MongoDB、Redis之间的区别你说一下?数据库的三大范式是什么?MySql有关权限的表都有哪几个?MySQL的binlog有几种录入?数据库经常使用的函数?MySql的优缺点?数据类型引擎索引事务锁视图存储过程与函数触发器常用SQL语句SQL优化数据库优化数据库基础知识什么是SQL?结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询语言。MySQL说一下MySQL是一个关系型数据库管理原创 2020-08-31 15:53:10 · 90 阅读 · 0 评论 -
并发编程面试题(持续更新...)
目录基础知识多线程与高并发Java多线程涉及技术点高并发技术解决方案并发编程的优劣为什么要使用并发编程(并发编程的优点)并发编程有什么缺点并发编程三要素是什么?在 Java 程序中怎么保证多线程的运行安全?并行和并发有什么区别?什么是多线程,多线程的优劣?线程和进程区别什么是线程和进程?什么是上下文切换?(重点)守护线程和用户线程有什么区别呢?如何在 Windows 和 Linux 上查找哪个线程cpu利用率最高?什么是线程死锁形成死锁的四个必要条件是什么如何避免线程死锁?创建线程的四种方式创建线程有哪几种原创 2020-08-30 07:48:13 · 761 阅读 · 0 评论 -
Spring Boot面试题(持续更新...)
目录概述什么是Spring Boot?Spring Boot有哪些优点?Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?SpringBoot与SpringCloud 区别?配置什么是 JavaConfig?Spring Boot 自动配置原理是什么?你如何理解 Spring Boot 配置加载顺序?在 Spring Boot 里面,可以使用以下几种方式来加载配置。配置文件优先级从高到低顺序什么是 YAML?YAML 配置的优势在哪里 ?Spring Boot 是否可以使用 XML 配置转载 2020-08-26 15:39:14 · 296 阅读 · 0 评论 -
MyBatis面试题
MyBatis面试题Mybatis简介MyBatis是什么?MyBatis优缺点?优点缺点Hibernate 和 MyBatis 的区别?相同点不同点SQL优化和移植性ORM是什么?为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?传统JDBC开发存在什么问题?JDBC编程有哪些不足之处,MyBatis是如何解决的?MyBatis和Hibernate的适用场景?MyBatis的架构MyBatis编程步骤是什么样的?请说说MyBatis的工作原理MyBatis的功能架构是怎样的什么是DBM转载 2020-08-18 16:26:29 · 546 阅读 · 0 评论