
后端面试题
文章平均质量分 96
知道的越多 那么不知道的就越多
#RR
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
顺丰科技已上岸面经(收集牛客近年来面经)
本人双飞本科在秋招入职多益网络,然后本次春招,努努力了一把成功拿到了顺丰科技的offer。以下为我在牛客上收集到的近年来的面试题目以及答案,希望对大家有用。顺丰科技第一篇用过模糊查询吗?说一说like什么时候可以用索引?对于前后都有百分号的sql语句 这个语句是不走索引的EXPLAIN SELECT * FROM `user` WHERE username LIKE '%ptd_%'; //这个语句是不走索引的对于只有后面使用% 使用到了索引EXPLAIN SELECT * .原创 2021-04-14 16:40:54 · 2450 阅读 · 3 评论 -
多线程互问
多线程实现线程的方式知道哪些 ?实现Runnable接口实现Callable接口继承Thread类线程池线程有哪些分类?守护线程: 虚拟机创建(不一定),典型垃圾回收线程用户线程: 程序创建虚拟机会等待非守护线程结束运行后退出,但不会等待守护线程。什么是线程饥饿?饥饿 : 是由于线程无法获取需要的资源,由高优先级线程占用资源,线程处于等待状态不被唤醒。产生饥饿的原因: 高优先级线程占用资源; 无法获取锁。什么是死锁,活锁?死锁: 多个线程都无法获得资源继续执行。可以通原创 2020-10-20 22:27:40 · 285 阅读 · 0 评论 -
Java基础/集合互问
JAVA基础讲讲final关键字的作用数据:声明数据为常量,可以是运行时常量,也可以是在运行时被初始化后不能被改变的常量。对于基本类型,final使数值不变;对于引用类型,final使引用不变,也就不能引用其他对象,但是被引用的对象本身是可以修改的。方法声明方法不能被子类重写。private方法隐式的被指定为final,如果在子类种定义的方法和基类中的一个private方法签名相同,此时子类的方法不是重写基类的方法,而是在子类中定义了一个新的方法。类声明不允许被继承。讲讲stat原创 2020-10-19 01:05:03 · 238 阅读 · 0 评论 -
MySQL面试互问
MySQL数据库指定哪些索引,都说说普通索引,唯一索引,主键索引,全文索引使用索引的优点提高数据的搜索速度加快表与表之间的连接速度在信息检索过程中,若使用分组及排序子句进行时,通过建立索引能有效的减少检索过程中所需的分组及排序时间,提高检索效率。使用索引的缺点在我们建立数据库的时候,需要花费的时间去建立和维护索引,而且随着数据量的增加,需要维护它的时间也会增加。在创建索引的时候会占用存储空间在我们需要修改表中的数据时,索引还需进行动态的维护,所以对数据库的维护带来了一定的麻烦。原创 2020-10-16 02:44:13 · 1182 阅读 · 5 评论 -
Linux基本命令操作
LinuxLinux关机服务器到迫不得已才会关机正确的关机流程为: sync > shutdown > reboot >halt关机指令为: shutdown ( 可以使用man shutdown 来看一下帮助文档sync #将数据同步到硬盘中shutdown #关机指令shutdown -h 10 'This server will shutdown after 10 mins' # 计算机将在十分钟后关机,并且会显示在当前登录用户的屏幕中shut原创 2020-10-14 00:33:56 · 1143 阅读 · 0 评论 -
数据库事务(死锁)
死锁!!!!!!最近面试被问的比较多的就是死锁。。(记录一下吧什么情况下会出现死锁项目中什么时候会出现死锁死锁跟事务的联系?死锁产生的条件有哪些锁? 死锁会造成什么问题?Mysql如何保持原子性,一致性,持久性(ACID)(事务的四大特性)死锁产生的条件死锁发生的条件- 互斥条件:就是一个资源只能有一个进程占有,不可以被两个或者多个进程占有- 不可抢占条件:进程已经获得的资源在未使用之前,不可被抢占,只能在使用完之后自己释放- 占有申请条件:进程自己已经至少保持一个资源,又请原创 2020-09-22 02:19:58 · 2925 阅读 · 0 评论 -
ElasticSearch的倒排索引和分词
倒排索引倒排索引以字或词为关键字进行索引,表中关键字所对应的记录表项记录了出现这个字或词的所有文档,一个表项就是一个字表段。它记录该文档的ID和字符在该文档中出现的位置情况。以下三个文档去除停用词后构造倒排索引Term(单词): 一段文本经过分析器以后就会输出一串单词,这一个个的就叫做TermTerm Dictionary(单词字典) 顾名思义,它里面维护的是Term,可以理解为Term的集合Term Index(单词索引): 为了更快的找到某个单词,我们为单词建立索引Posting L原创 2020-08-27 23:47:32 · 835 阅读 · 2 评论 -
多线程实例
多线程实例第一种方式(继承Thread类public class Thread1 extends Thread{ @Override public void run(){ } public static void main(String[] args){ //调用线程的方法 Thread1 thread1 = new Thread1(); Thread1 thread2 = new Thread1原创 2020-08-20 10:38:19 · 365 阅读 · 0 评论 -
面试复习(查漏补缺)
数据库系统原理索引索引是帮助MySQL高效获取数据的排序好的数据结构建立的索引是存储在本地磁盘中的索引结构二叉树红黑树Hash表B—Tree二叉树某些场景下二叉树有弊端,所以Mysql使用的是B+ 树来做索引当索引为以下的情况时建立索引并不会加速查询速度HashMap在JDK1.8之后将底层的链表优化成红黑树红黑树红黑树(平衡二叉树)演示地址:https://www.cs.usfca.edu/~galles/visualization/RedBlack.ht原创 2020-08-20 10:37:22 · 368 阅读 · 0 评论 -
面试总结(JavaGuide)
DispathcherServletHashMap的底层实现JDK1.8之前底层的实现是数组+链表 结合一起使用,也就是散列表拉链法:创建一个链表数组,数组中每一格就是一个链表。若遇到哈希冲突,则将冲突的值写入到链表中即可。(数组+链表)jdk1.8之后使用==(数组+红黑树)==如何选用集合主要根据集合的特点来选用,比如我们需要根据键值获取到元素值时就选用 —> Map接口下的集合。 需要排序时选择 -----> TreeMap 不需要排序选原创 2020-08-20 10:35:40 · 5188 阅读 · 0 评论 -
JUC
如何了解JUC源码 + 官方文档(面试高频问java.util 工具包,分类Runnable 没有返回值,效率相比Callable相对较低java默认有两个线程;Java本身不能开启线程public synchronized void start() { /** * This method is not invoked for the main method thread or "system" * group threads creat原创 2020-08-20 10:33:51 · 251 阅读 · 0 评论 -
JVM
JVM垃圾回收算法标记清除算法最基础的垃圾回收算法,分为两个阶段,标注和清除。标记阶段标记出所有需要回收的对象,清除阶段回收被标记的对象所占用的空间。如图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s1sPothM-1597890706272)(C:\Users\晨边\AppData\Roaming\Typora\typora-user-images\image-20200802171609944.png)]从图中我们可以发现,该算法最大的问题是内存碎片化严重原创 2020-08-20 10:32:51 · 184 阅读 · 0 评论 -
单点登录
单点登录(SSO)Single Sign On在多个应用系统中,用户只需要登录一次就可以访问任何所有互相信任的应用系统他包括将这次主要的登录映射到其他应用中用于同一个用户的登录机制。。SSL(Secure Socket Layer)SSL: 安全套接字,位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证,使用数字签名确保完整性,使用加密确保私密性,以实现客户端和服务器端之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。SSL核心概念:加密算法,原创 2020-08-20 10:30:57 · 386 阅读 · 0 评论 -
SpringBoot
SpringBoot去看看Dubbo+zookeeperSpringSecurity:Shiro 看看!!!往下了解的springCloud微服务guspringcloud入门RestfulEurekaRibbonFeignHyStrixZuul路由网关SpringCloud config:git现在了解:Springboot配置yml自动装配:重要:谈资继承web开发:业务的核心继承数据库 Druid分布式开发:Doubbo(RPC) +zookeepers原创 2020-08-20 10:28:13 · 1634 阅读 · 0 评论 -
Spring
Spring特点轻量级控制反转面向切面容器框架集合[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MNU0N5yF-1597890377401)(C:\Users\晨边\AppData\Roaming\Typora\typora-user-images\image-20200810225520048.png)]Spring常用模块核心容器核心容器提供Spring框架的基本功能,核心容器的主要组件是BeanFactory,它是工厂模式的实现。Bean原创 2020-08-20 10:26:58 · 261 阅读 · 0 评论 -
Spring Data JPA
Spring Data JPAorm思想hibernate框架介绍JPA规范jpa的基本操作搭建环境的过程完成基本的CRUD操作简介:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据表建立映射,是一个全自动框架,Hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操控数据库。JPA:JSP全称是Java Persistence API,即Java持久化API,是SU原创 2020-08-20 10:25:16 · 694 阅读 · 0 评论 -
Spark
Sparkscala**val:**声明的变量不可变(推荐)**var:**声明的变量可以变val a:Int = 123val s: = "scala"val s:String = "scala"Scala的值类型有7种(无引用类型)ByteCharShortIntLongFloatDoubleval y = if(x>1) 1 else -1## 支持多种类型的返回val z = if(x>1) 1 else "error"val a = if(x原创 2020-08-19 22:59:31 · 734 阅读 · 0 评论 -
Redis
Redisredis基本环境配置首先下载redis(linux环境下的):https://redis.io/download 建议下载5.0.8版本的$ wget http://download.redis.io/releases/redis-6.0.3.tar.gz$ tar xzf redis-6.0.3.tar.gz$ cd redis-5.0.8$ make进入redis-5.0.8文件夹之后。yum install gcc-c++makemake install安装原创 2020-08-19 22:58:07 · 430 阅读 · 0 评论 -
MySQL基础知识
Mysql视图创建视图CREATE VIEW 视图名[字段 …] AS 查询sql语句更新视图CREATE OR REPLACE VIEW 视图名 [字段…] AS 查询的sql语句或ALTER VIEW 视图名 [字段…] AS 查询的sql语句删除视图DROP VIEW 视图名查看数据中哪些是表哪些是视图show table status视图的优点查询性能提高相对于直接SQL省去了语法检查和解析阶段的开销改动表结构 达到少修改的效果假如因为某原创 2020-08-19 22:56:54 · 168 阅读 · 0 评论 -
Java基础
Java基础数据类型基本数据类型byte / 8char / 16short / 16int / 32float / 32long / 64double / 64boolean / ~boolean 只有两个值:true false 可以使用1 bit来存储,但是具体大小没有明确规定 JVM会在编译时期将boolean类型的数据转换 为int,1表示true 0表示false原创 2020-08-19 22:54:18 · 335 阅读 · 0 评论 -
Hadoop集群搭建
集群Linux环境搭建注意事项确保任务管理器中的服务vmware开启状态确认好VmWare生成的网关地址确认VmNet8网卡已经配置好的IP地址和DNS在Vmware中安装虚拟机并将虚拟机复制三份,放到大小至少有100G的硬盘中。并在虚拟机中打开[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vEOJ0sgD-1597848654945)(https://gitee.com/ChenbinRR/images/raw/master/typora-原创 2020-08-19 22:52:44 · 497 阅读 · 0 评论 -
Doubbo&&阿里规约
Dubbo文档阅读Dubbo 社区目前主力维护的有 2.6.x 和 2.7.x 两大版本Dubbo解决的方面:当服务越来越多时,服务 URL 配置管理变得非常困难,F5 硬件负载均衡器的单点压力也越来越大。当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?RPC架构节点角色说明Provider暴露服务的服原创 2020-08-19 22:50:22 · 198 阅读 · 0 评论 -
数据库系统原理
数据库系统原理原子性(Atomicity)事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。回滚可以用回滚日志(Undo Log)来实现,回滚日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。一致性数据库在事务执行前后都保持一致性状态。在一致性状态下,所有事务对同一个数据的读取结果都是相同的。隔离性个事务所做的修改在最终提交以前,对其它事务是不可见的。持久性一旦事务提交,则其所做的修改将会永远保存到数据库中。即使系统发生崩溃,事务执行的结果也不原创 2020-08-19 22:44:52 · 229 阅读 · 0 评论 -
疫情期间的学习(转战Typora) 手写学习提纲
最近比较忙,然后发现csdn写启博客来比较不方便,而且广告太多。而且发现了一些很好用的工具Typora & Xmind (同样也支持markdown语法,所以把文件都在本地写好然后放到Github中去)Github:我的地址(包含了一些最近学习的知识点的总结)Xmind 知识树形图Linux操作系统计算机网络设计模式面向对象单个知识点 平时没有总结的东西Filter (过滤器)MySQLMySQL存储过程MySQL视图数据库系统原理总体学习.原创 2020-07-30 18:05:42 · 459 阅读 · 0 评论 -
ThreadPoolExector
线程池总结(三大方法,七大参数,四中拒绝策略)三大方法使用Executors创建线程池的三大方法:Executors.newSingleThreadExecutor()创建只能容纳一个线程的线程池,这个线程池相当于只能容纳一个线程的容量。 ExecutorService threadPool = Executors.newSingleThreadExecutor();// 单个线程Executors.newFixedThreadPool()创建一个固定容纳最多指定线程池的线程容量原创 2020-05-15 17:23:18 · 394 阅读 · 0 评论 -
Java集合题--Interview
Java集合题Collection和Collections的区别CollectionCollectionsArrayList和Vector的区别ArrayListVector说说ArrayList,Vector,LinkedList存储性能和特性快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?快速失败(fail-fast)安全失败(fail-safe)Hashmap的数据结构hashMap什么时候进行扩容?List,Map,Set三个接口,存取元素时,各有什么特点?Set的元素里原创 2020-05-09 17:19:15 · 408 阅读 · 0 评论 -
实习面试题总结(后端)
面试题目录AtomicInteger和AtomicLong怎么理解,区别?LongAdder有了解吗?为什么用线程池?好处?ThreadPoolExecutor了解吗?TCP怎么解决粘包拆包问题AtomicInteger和AtomicLong怎么理解,区别?LongAdder有了解吗?释:AtomicInteger和AtomicLong是并发包下面的类(java.until.concurrent.atomic),所以AtomicInteger和AtomicLong肯定是在并发环境下使用的。先看一道原创 2020-05-09 13:43:06 · 919 阅读 · 0 评论 -
设计模式--职责链模式
职责链模式问题引出学校有个OA系统的采购审批项目:需求是采购员采购教学器材如果金额小于等于5000,由教学主任审批(0<=x<=5000)如果金额小于等于10000,由院长审批(5000<x<=10000)如果金额小于等于30000,由副校长审批(10000<x<=30000)如果金额30000以上,由校长审批(30000<x)传统方案...原创 2020-04-12 16:21:49 · 208 阅读 · 0 评论 -
设计模式--策略模式
策略模式问题引出(鸭子问题)有各种鸭子(比如 野鸭,北京鸭,水鸭等,鸭子有各种行为,比如叫,飞行等)显示鸭子的信息传统方案解决鸭子问题的分析和代码实现传统方案设计类图代码实现package com.gduf.strategy;/** * @Author 晨边#CB * @Date:created in 2020/4/11 23:29 * @Version V1....原创 2020-04-12 00:27:50 · 153 阅读 · 0 评论 -
设计模式--状态模式
状态模式问题引出请编写程序完成APP抽奖活动 具体要求如下:假如每参加一次这个活动要扣除用户50积分,中将概率是10%奖品数量固定,抽完就不能抽奖活动有四个状态:可以抽奖,不能抽象,发放奖品和奖品领完活动的四个状态转换关系图(下图)状态模式的基本介绍状态模式(State Pattern):它主要是用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态...原创 2020-04-11 23:25:48 · 279 阅读 · 0 评论 -
设计模式--解释器模式
解释器模式问题引出(四则运算问题)通过解释器模式来实现四则运算,如计算a+b+c的值,具体要求先输入表达式的形式,比如a+b+c-d+e,要求表达式的字母不能重复在分别输入a,b,c,d,e的值最后求出结果:如图传统方案解决四则运算问题分析编写一个方法,接收表达式的形式,然后根据用户输入的数值进行解析,得到结果问题分析:如果假如新的运算符,比如*/ (等等,不利于扩展,另外...原创 2020-04-08 16:34:37 · 200 阅读 · 0 评论 -
设计模式--备忘录模式
备忘录模式问题引出(游戏角色状态回复问题)游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大战Boss后攻击力和防御力下降,从备忘录回复到大战前的状态传统设计方案(类图)传统方式的问题分析一个对象,就对应一个保存对象状态的对象,这样当我们游戏的对象很多时,不利于管理,开销也很大传统的方式是简单的做备份,new出另外一个对象出来,再把需要备份的数据放到这...原创 2020-04-07 15:57:39 · 158 阅读 · 0 评论 -
设计模式--中介者模式
中介模式问题引出(智能家庭管理问题)智能家庭包括各种设备,闹钟,咖啡机,电视机,窗帘等主人要看电视时,各个设备可以协同工作,自动完成看电视的准备工作,比如流程为:闹铃响起 ->咖啡机开始做咖啡 -> 窗帘自动落下 -> 电视机开始播放传统设计方案(类图)传统的方式的问题分析当各个电器对象有多种状态改变时,相互之间调用关系会比较复杂各个电器对象彼此联系,你中有...原创 2020-04-07 14:50:16 · 150 阅读 · 0 评论 -
设计模式--观察者模式
观察者模式问题引出:天气预报项目需求:气象站可以将媒体测量到的温度,湿度,气压等等以公告的形式发布出去(比如发布到自己的网站或第三方)需要设计开放性API,便于其他第三方也能接入气象站获取数据提供温度,其他和湿度的接口测量数据更新时,要能实时的通知给第三方天气预报设计方案1-普通方案WeatherData类(传统的设计方案)通过对气象站项目的分析,我们可以分析初步设计出一个W...原创 2020-04-07 11:09:20 · 197 阅读 · 0 评论 -
设计模式--访问者模式
访问者模式问题引出(测评系统的需求)将观众分为男人和女人,对歌手进行测评,当看完某个歌手表演后,得到他们对该歌手不同的评价(评价 有不同的种类,比如 成功,失败等)传统方案传统方式的问题如果系统比较小还是ok的,但是考虑系统的增加越来越多的功能时,对代码改动比较大,违反了ocp原则,不利于维护扩展性不好,比如增加了新的人员类型,或者管理方法,都不好做引出我们会使用新的设计模式...原创 2020-04-05 17:15:14 · 187 阅读 · 0 评论 -
设计模式--命令模式
命令模式问题引出:(智能生活项目需求)我们买了一套只能家电,有照明灯,风扇,冰箱,洗衣机,我们只要在手机上安装一个app就可以控制对这些家电工作这些智能家电来自不同厂家,我们不想针对每一种家电都安装一个App,分别控制,我们希望只要一个app控制所有智能家电要实现一个app控制所有家电的需要,则每个智能家电厂家都要提供一个统一的接口给app调用,这时就可以考虑使用命令模式命令模式可以将...原创 2020-04-04 23:51:39 · 178 阅读 · 0 评论 -
设计模式--代理模式
代理模式(Proxy)代理模式的基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能倍代理的对象可以是远程对象,创建开销大的对象或需要安全控制的对象代理模式有不同的形式,主要有三种 静态代理,动态代理(JDK代理,接口代理)和Cglib代理(可以在内存动态的创建对...原创 2020-04-04 12:08:56 · 122 阅读 · 0 评论 -
设计模式--享元模式
享元模式展示网站项目需求小型的外包项目,给客户A做一个产品展示网站,客户A的朋友感觉效果不错,也希望做这样的产品展示网站,但是要求都有些不同:有客户要求以新闻的形式发布有客户人要求以博客的形式发布有客户希望以微信公众号的形式发布传统方案解决网站展现项目直接复制粘贴一份,然后根据客户不同要求,进行定制修改给每个网站租用一个空间方案设计示意图传统方案解决网站展现项目-问题...原创 2020-04-04 01:28:22 · 160 阅读 · 0 评论 -
设计模式--外观模式
外观模式影院管理项目传统方式解决影院管理传统方式解决影院管理问题分析:在ClientTest的main犯法中,创建各个子系统的对象,并直接去调用子系统(对象)相关方法,会造成调用过程混乱,没有清晰的过程不利于在ClientTest中,去维护对子系统的操作解决思路:定义一个高级接口,给子系统中的一组接口提供一个一致的界面(比如在高层接口提供四个方法ready,play,pause,...原创 2020-04-02 17:10:20 · 123 阅读 · 0 评论 -
设计模式--组合模式
组合设计模式问题引出:校园院系展示需求编写程序展示一个学校院系结构:要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个院系。如下图:传统方案解决学校院系展示(类图)传统方案解决学校院系展示存在的问题分析:讲学院看作是学校的子类,系是学院的子类,这样实际上是站在组织大小来进行分层次的实际商我们的要求是:在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学...原创 2020-04-02 16:04:24 · 280 阅读 · 0 评论