后端面试
文章平均质量分 94
捡田螺的小男孩
一个喜欢弹吉他的Java程序员
展开
-
字节三面:如何设计一个高并发系统
大家好,我是田螺。记得很久之前,去面试过字节跳动。如何设计一个高并发系统。当时我回答得比较粗糙,最近回想起来,所以整理了设计高并发系统的15个锦囊,相信大家看完会有帮助的。原创 2023-01-07 11:08:45 · 1585 阅读 · 1 评论 -
聊聊工作中使用了哪些设计模式
前言大家好,我是捡田螺的小男孩。平时我们写代码呢,多数情况都是流水线式写代码,基本就可以实现业务逻辑了。如何在写代码中找到乐趣呢,我觉得,最好的方式就是:使用设计模式优化自己的业务代码。今天跟大家聊聊日常工作中,我都使用过哪些设计模式。工作中常用到哪些设计模式1.策略模式1.1 业务场景假设有这样的业务场景,大数据系统把文件推送过来,根据不同类型采取不同的解析方式。多数的小伙伴就会写出以下的代码:if(type=="A"){//按照A格式解析}elseif(...原创 2021-10-27 22:28:49 · 667 阅读 · 0 评论 -
日志打印的15个好建议
前言大家好,我是捡田螺的小男孩(公众号)。日志是快速定位问题的好帮手,是撕逼和甩锅的利器!打印好日志非常重要。今天我们来聊聊日志打印的15个好建议~1. 选择恰当的日志级别常见的日志级别有5种,分别是error、warn、info、debug、trace。日常开发中,我们需要选择恰当的日志级别,不要反手就是打印info哈~ error:错误日志,指比较严重的错误,对正常业务有影响,需要运维配置监控的; warn:警告日志,一般的错误,对业务影响不大,但是需要开发关注;原创 2021-09-22 22:31:33 · 1404 阅读 · 6 评论 -
1.6W字!梳理50道经典计算机网络面试题(收藏版)
前言金九银十马上要到了,整理了50道计算机网络面试题,每一道都非常的经典,大厂也非常喜欢问。希望大家看完后,都能找到理想的offer哈~ 公众号:捡田螺的小男孩 1. HTTP 常用的请求方式,区别和用途? GET: 发送请求,获取服务器数据 POST:向URL指定的资源提交数据 PUT:向服务器提交数据,以修改数据 HEAD:请求页面的首部,获取资源的元信息 DELETE:删除服务器上的某些资源。 CONNECT:建立连接隧道,用于代理原创 2021-07-25 17:38:51 · 3435 阅读 · 4 评论 -
面试必备!TCP协议经典十五连问!
前言TCP协议是大厂面试必问的知识点。整理了15道非常经典的TCP面试题,希望大家都找到理想的offer呀 公众号:捡田螺的小男孩 1. 讲下TCP三次握手流程开始客户端和服务器都处于CLOSED状态,然后服务端开始监听某个端口,进入LISTEN状态 第一次握手(SYN=1, seq=x),发送完毕后,客户端进入 SYN_SEND 状态 第二次握手(SYN=1, ACK=1, seq=y, ACKnum=x+1), 发送完毕后,服务器端进入 SYN_RCVD 状态。原创 2021-07-11 20:34:34 · 988 阅读 · 8 评论 -
聊聊日常开发中,如何减少bug呢?
前言大家好呀~ 我是捡田螺的小男孩,今天跟大家聊聊聊聊日常开发中,如何减少bug?本文将从数据库、代码层面、缓存使用篇3个大方向,总结出一共60多个注意点,助大家成为开发质量之星。 欢迎关注公众号:捡田螺的小男孩 1. 数据库篇慢查询数据库篇的话,哪些地方容易导致bug出现呢?我总结了7个方面:慢查询、数据库字段注意点、事务失效的场景、死锁、主从延迟、新老数据兼容、一些SQL经典注意点。1.1 慢查询慢查询.gif1.1.1 是否命中索引提起慢查询,我们马上就原创 2021-06-20 09:52:58 · 517 阅读 · 0 评论 -
美团二面:Redis与MySQL双写一致性如何保证?
前言四月份的时候,有位好朋友去美团面试。他说,被问到Redis与MySQL双写一致性如何保证?这道题其实就是在问缓存和数据库在双写场景下,一致性是如何保证的?本文将跟大家一起来探讨如何回答这个问题。公众号:捡田螺的小男孩谈谈一致性一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。强一致性:这种一致性级别是最符合用户直觉的,它要求系统写入什么,读出来的也会是什么,用户体验好,但实现起来往往对系统的性能影响大弱一致性:这种一致性级别约束了系统在写入成功后,不承诺原创 2021-05-22 19:56:41 · 1413 阅读 · 3 评论 -
ZooKeeper的十二连问,你顶得了嘛?
前言一线大厂ZooKeeper的十二连问,你顶得了嘛?本文已经收录到github❝https://github.com/whx123/JavaHome❞1. 面试官:工作中使用过Zookeeper嘛?你知道它是什么,有什么用途呢?「小菜鸡的我:」有使用过的,使用ZooKeeper作为「dubbo的注册中心」,使用ZooKeeper实现「分布式锁」。ZooKeeper,它是一个开放源码的「分布式协调服务」,它是一个集群的管理者,它将简单易用的接口提供给用户。可以基于Zookeeper 实现诸原创 2020-09-01 23:52:04 · 456 阅读 · 0 评论 -
个人珍藏的80道多线程并发面试题(11-20答案解析)
前言个人珍藏的80道Java多线程/并发经典面试题,现在给出11-20的答案解析哈,并且上传github哈~https://github.com/whx123/JavaHome个人珍藏的80道多线程并发面试题(1-10答案解析)11、为什么要用线程池?Java的线程池内部机制,参数作用,几种工作阻塞队列,线程池类型以及使用场景回答这些点:为什么要用线程池?Java的线程池原理线程池核心参数几种工作阻塞队列线程池使用不当的问题线程池类型以及使用场景为什么要用线程池?线程池:一原创 2020-08-23 10:26:02 · 1094 阅读 · 1 评论 -
Java程序员面试必备:Volatile全方位解析
前言volatile是Java程序员必备的基础,也是面试官非常喜欢问的一个话题,本文跟大家一起开启vlatile学习之旅,如果有不正确的地方,也麻烦大家指出哈,一起相互学习~1.volatile的用法2.vlatile变量的作用3.现代计算机的内存模型(计算机模型,总线,MESI协议,嗅探技术)4.Java内存模型(JMM)5.并发编程的3个特性(原子性、可见性、有序性、happen-before、as-if-serial、指令重排)6.volatile的底层原理(如何保证可见性,如何保证指令重排,内原创 2020-08-11 07:27:41 · 1274 阅读 · 1 评论 -
个人珍藏的80道多线程并发面试题(1-10答案解析)
前言个人珍藏的80道Java多线程/并发经典面试题,因为篇幅太长,现在先给出1-10的答案解析哈,后面一起完善,并且上传github哈~https://github.com/whx123/JavaHome❞「公众号:捡田螺的小男孩」1. synchronized的实现原理以及锁优化?synchronized的实现原理synchronized作用于「方法」或者「代码块」,保证被修饰的代码在同一时间只能被一个线程访问。synchronized修饰代码块时,JVM采用「monitorenter原创 2020-07-28 22:46:20 · 716 阅读 · 0 评论 -
如何设计一个安全对外的接口?加签与验签了解一下
前言我们在求职面试中,经常会被问到,如何设计一个安全对外的接口呢? 其实可以回答这一点,加签和验签,这将让你的接口更加有安全。接下来,本文将和大家一起来学习加签和验签。从理论到实战,加油哦~密码学相关概念加签验签概念为什么需要加签、验签加密算法简介加签验签相关API加签验签代码实现公众号:捡田螺的小男孩本文已经收录到个人github,文章有用的话,可以给个star呀:https://github.com/whx123/JavaHome密码学相关概念明文、密文、密钥、加密、解密原创 2020-07-19 08:53:07 · 1781 阅读 · 1 评论 -
800道Java后端经典面试题,希望你找到自己理想的Offer呀~
前言在茫茫的互联网海洋中寻寻觅觅,我收藏了800+道Java经典面试题,分享给你们。建议大家收藏起来,在茶余饭后拿出来读一读,以备未雨绸缪之需。另外,面试题答案的话,我打算后面慢慢完善在github,希望大家都能找到自己理想的offer呀。Java 基础Java 集合Java 并发 && 多线程JVM 篇数据库缓存/Redis计算机网络消息队列mybatis操作系统SpringNetty/tomcat常用Linux 命令ZooKeeperElasticse原创 2020-05-16 11:55:32 · 2796 阅读 · 3 评论