程序人生
文章平均质量分 88
清朝程序猿
不定时分享技术文章
展开
-
JAVA面试不背八股文面试就过不了吗?老猿教你一招
不管是想要毕业求职的,还是想要跳槽加薪的,面对面试这座大山,难免感叹一句蜀道难,的确,在这个行行业业都在内卷的时代,你不付出点努力,想进入满意的公司,拿到心仪的offer恐怕是很难的事。每次总会有人抬杠,不背八股文面试就过不了吗?我想说的是,你可以试试PS: 最近有几位小伙伴私信让整理一波面试题,老猿也是兢兢业业下班以后晚上在网上整理了一波初级、中级-高级开发常问的八股文,以及找了几个在大厂的面试官朋友问了一下他们平时都喜欢面试者问什么问题~。原创 2022-11-06 17:17:46 · 1297 阅读 · 1 评论 -
(Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
2022秋招季来临,有人欢喜有人愁,不管是想要毕业求职的,还是想要跳槽加薪的,面对面试这座大山,难免感叹一句蜀道难,的确,在这个行行业业都在内卷的时代,你不付出点努力,想进入满意的公司,拿到心仪的offer恐怕是很难的事。在国内这个环境下,卷是无可奈何的事,在这里,老猿也是找学弟要了一些他面试大厂的一些面经及答案分享出来,如果感兴趣可以看看,你们可以试试能不能搞定!原创 2022-10-13 17:08:11 · 1627 阅读 · 1 评论 -
B站疯传面试题,24小时删
以上就是有关程序员面试专题的一些总结,面试不仅考的是技术还有心态,只要你有足够的技术支撑,心态要好,拿到offer肯定不在话下。先不要把它想得很困难,自己给自己设置槛!希望大家都可以拿到心仪offer,走向升职、跳槽、涨薪、赢娶白富美之路!...原创 2022-08-27 14:46:53 · 307 阅读 · 0 评论 -
GIthub标星32k的面试手册长啥样?
2022年秋招即将来临,很多同学会问Java面试八股文有必要背吗?答案是,必须背!你可以讨厌这种模式,但你也一定要去背的,因为不背的话你就过不了面试,八股文能快速检验出求职者是否为科班出身,专业基础到底强不强。国内的互联网面试,恐怕是现存的、最接近科举考试的制度。有大神把Github的 Java 面试题资源全都整理出来了,大家在面试前可以背一遍,一定能“吊打”面试官。由于平台限制不能留链接 需要面试资料学习的小伙伴,由于平台限制不能留链接 需要面试资料学习的小伙伴,可以关注文末小编的公众号无偿领取学习。原创 2022-08-19 14:20:28 · 334 阅读 · 0 评论 -
阿里面试应该注意什么?通过5轮面试的阿里实习生亲述
很多做java开发的小伙伴都会对大厂有一种敬畏之心,觉得进大厂就是鲤鱼跃龙门了,所以很多人不敢轻易的向大厂投简历。但是你知道吗?进大厂的黄金期也就是你刚毕业的一两年之内,这个时候一般不会对你的技术不会有太高的要求,工作越久反而要求越高。 今天给大家分享的是一位刚拿到阿里offer的程序员,是如何通过阿里的5次面试的。希望能够帮助到更多想进大厂的程序员们。(为了方便阅读,将会以第一人称自述)拿到 阿里实习offer,经历了5次面试,其中4轮技术面,1轮HR面试。 本科毕业于中南大学信管专业,真正开始学习Ja原创 2022-07-14 13:14:27 · 754 阅读 · 0 评论 -
聊聊消息队列,通俗易懂
前言关于消息队列,断断续续的也看了很多资料,正好所在的项目在实际业务中使用到了消息队列,今天就来简单将消息队列方面的知识梳理一下,希望对各位小伙伴有点帮助!我们从三个方面也聊聊消息队列,什么是消息队列?消息队列的使用场景,使用消息队列有哪些弊端?什么是消息队列对于传统的应用程序,如果需要向另一个应用程序发送信息,只需要向其发出请求即可!这种方式虽然简单直接,但是如果应用程序2突然挂了,应用程序1可能会因为服务异常,而无法继续提供服务!设想一下,在应用程序1和应用程序2之间,插入一原创 2022-02-19 16:30:31 · 284 阅读 · 0 评论 -
接口使用额外重写的无关方法太多?优化它
.前言平常我们可能面对这样一个场景:系统的某个接口有很多方法,而我们业务需要实现这个接口,真正需要的只有该接口的几个方法而已,但是又不得不重写实现该接口其他无用的方法,以至于产生了大量无用代码堆积,比如:public interface Way { void solve2(); void solve1(); void solve3(); void solve4();}/*** 其实我们真正需要该接口的方法只有solve2,但是接口的其他三个接口还得重写* 然后原创 2022-02-19 16:26:48 · 1487 阅读 · 0 评论 -
一个北漂程序员,告诉你什么是有效跳槽
B哥(这里且叫他B哥)是我的学长兼老乡,因为比我大几岁,我一直喊他B哥。B哥大学学的是计算机专业,本科毕业以后就进入了一家公司,成为一名光荣的“程序猿”。刚毕业那段时间,程序员跳槽是非常经常的一件事,B哥的同事就经常地跳槽。看着身边的同事一个个跳槽以后不断加薪,B哥也打算跳一跳试试。没想到,还真跟同事说的一样,每跳槽一次,工资都有增长。从24岁本科毕业开始,斌哥几乎每隔1年多都要跳槽一次。他的工资也真的是在水涨船高,在他32岁的时候,已经拿到了年薪40万。要知道,我们当时的工资很多才不到7000。斌原创 2022-02-18 14:24:17 · 204 阅读 · 0 评论 -
从源码分析线程池(池化技术)的实现原理
线程池是一个非常重要的知识点,也是池化技术的一个典型应用,相信很多人都有使用线程池的经历,但是对于线程池的实现原理大家都了解吗?本篇文章我们将深入线程池源码来一探究竟。线程池的起源背景: 随着计算机硬件的升级换代,使我们的软件具备多线程执行任务的能力。当我们在进行多线程编程时,就需要创建线程,如果说程序并发很高的话,我们会创建大量的线程,而每个线程执行一个时间很短的任务就结束了,这样频繁创建线程,会极大的降低系统性能,增加服务器开销,因为创建线程和销毁线程都需要额外的消耗。这时我们就可以...原创 2022-02-11 21:07:19 · 6889 阅读 · 0 评论 -
字节跳动最爱问的智力题你会几道?
1. 只有两个无刻度的水桶,一个可以装6L水,一个可以装5L水,如何在桶里装入3L的水提示:这个问题的本质就是利用两个水桶的已知容量倒来倒去,问题的解法并不唯一。先将5L的桶装满,将5L的桶的水倒入6L的桶中。这时5L的桶是空的,6L的桶中有5L的水 再将5L的桶装满,倒入6L的桶中。这时5L的桶有4L的水,6L的桶是满的 将6L的桶中的水倒掉,5L的桶的水倒入6L的桶中。这时5L的桶是空的,6L的桶中有4L的水 将5L的桶装满,倒入6L的桶中。这时5L的桶还有3L的水,6L的桶是满的..原创 2022-02-10 20:28:49 · 567 阅读 · 0 评论 -
一个小插件引起的性能问题排查和解决过程
事情是这样的过年期间闲的没事,用MyBatis的拦截器插件做了一个小功能,来专门处理新项目中的审计字段。本来还在开开心心地摸鱼,结果压测团队的同事就找上门来啦,说我的的应用接口的TPS突然降低很多,是不是有BUG呀~ 是有BUG呀~ BUG呀~ 呀~emmm...大过年的,晦气!最近也没上啥特殊的功能呀,就搞了一个插件,还能出这问题?于是,就开始排查呗。问题定位工具jvisualVm因为我们有一套专门的压测环境,并且是开启JMX配置的,所以我直接本地连上压测环境的JV..原创 2022-02-10 17:25:30 · 9235 阅读 · 0 评论 -
微服务实战:如何测试基于OAuth认证的微服务
背景正如微服务实战:基于Spring Cloud Gateway + AWS Cognito 的BFF案例一文中所介绍的,我司的微服务群采用了Spring Cloud Gateway作为API认证网关,利用Spring Security为API认证网关和后端微服务提供了OAuth认证功能。我们想做什么想测试单个微服务 想测试OAuth认证流程我们不想做什么不想为了测试部署所有的微服务 不想在测试中连接真实的OAuth认证服务器相关测试类型当我们尝试测试与其他服务存在通信的微服..原创 2022-02-08 17:03:28 · 283 阅读 · 0 评论 -
2022年了,密码该如何保存都不会?
我们在开发应用时,只要涉及到用户,登录注册功能则是必不可少的。 但是,并不是所有人都能做好登录注册功能。比如最基本的密码应该如何保存?应该用哪种加密方式对密码进行加密都不是很清楚。一旦出现数据库泄漏,密码外泄等问题,会对用户造成极大的损失。密码该如何保存?如果我们要在服务器中对用户进行身份验证,我们需要完成以下的步骤:获取到要登录用户的用户名和密码; 根据用户名在数据库中查找到用户; 比较用户提供的密码和数据库中的密码是否一致。那我们应该如何存储用户的密码呢?我们来看看都有哪些方式..原创 2022-02-07 19:43:35 · 7845 阅读 · 0 评论 -
微服务实战:基于Spring Cloud Gateway + AWS Cognito 的BFF案例
背景微服务架构的分布式特性可以带来很多好处,但是单个微服务并不能独立对外提供服务,一个微服务群组需要作为一个整体对外提供完整的服务体验,而如何实现支撑整体的通用功能就需要好好考虑一番了。就我司的需求来说,我们需要实现的通用功能包括路由(Routing)、认证(Authorization)、鉴权(Authentication),以及后端API的组合(API Composition)。我们计划在同一个地方即API Gateway,部署这一组功能,而不是在每个微服务都重复部署。ℹ️ 在[微服务/..原创 2022-02-04 16:05:23 · 813 阅读 · 0 评论 -
快速排序实现(Java)
文字描述:1、每一轮排序选择一个基准点(pivot)进行分区(1)让小于基准点的元素的进入一个分区,大于基准点的元素进入另一个分区(2)当分区完成后时,基准点元素的位置就是其最终位置2、在子分区内重复以上过程,直至子分区元素个数少于等于 1,这体现的是分而治之的思想(divide-and-conquer)实现方式:1、单边循环快排(1)选择最右元素作为基准点元素(2)j 指针负责找到比基准点小的元素,一旦找到则与 i 进行交换(3)i 指针维护小于基准点元素的边界,也就是原创 2022-01-25 13:52:56 · 183 阅读 · 0 评论 -
一文搞懂CompletableFuture的使用
前言创建线程的方式只有两种:继承Thread或者实现Runnable接口。 但是这两种方法都存在一个缺陷,没有返回值Java 1.5 以后,可以通过向线程池提交一个Callable来获取一个包含返回值的Future对象Future接口的局限性当Future的线程进行了一个非常耗时的操作,那我们的主线程也就阻塞了。当我们在简单业务上,可以使用Future的另一个重载方法get(long,TimeUnit)来设置超时时间,避免我们的主线程被无穷尽地阻塞。单纯使用Future接口或者Fut原创 2022-01-24 13:50:30 · 4357 阅读 · 1 评论 -
微服务实战:如何测试基于OAuth认证的微服务
背景正如【微服务实战:基于Spring Cloud Gateway + AWS Cognito 的BFF案例】一文中所介绍的,我司的微服务群采用了Spring Cloud Gateway作为API认证网关,利用Spring Security为API认证网关和后端微服务提供了OAuth认证功能。我们想做什么想测试单个微服务 想测试OAuth认证流程我们不想做什么不想为了测试部署所有的微服务 不想在测试中连接真实的OAuth认证服务器相关测试类型当我们尝试测试与其他服务存在...原创 2022-01-23 21:46:56 · 2386 阅读 · 0 评论 -
微服务实战:基于Spring Cloud Gateway + AWS Cognito 的BFF案例
背景微服务架构的分布式特性可以带来很多好处,但是单个微服务并不能独立对外提供服务,一个微服务群组需要作为一个整体对外提供完整的服务体验,而如何实现支撑整体的通用功能就需要好好考虑一番了。就我司的需求来说,我们需要实现的通用功能包括路由(Routing)、认证(Authorization)、鉴权(Authentication),以及后端API的组合(API Composition)。我们计划在同一个地方即API Gateway,部署这一组功能,而不是在每个微服务都重复部署。ℹ️ 在[微服务/..原创 2022-01-22 14:40:09 · 2831 阅读 · 0 评论 -
基于领域模型的微服务划分--实战案例解析
前言微服务的最大挑战之一是定义各个服务的边界。 一般的规则是服务应该只做“一件事”(参考SRP原则) — 但是,实践这条规则需要经过认真的考虑。 没有任何机械性的流程可以生成“适当的”设计。 必须深入考虑业务领域、需求和目标。 否则,最终可能得到一个杂乱无章的设计,它呈现一些不需要的特征,例如隐藏服务之间的依赖关系、紧密耦合,或者设计不佳的界面。在[迈入微服务架构的第一关--服务边界划分]一文中,简单介绍了基于领域的微服务划分方法。受篇幅所限,没能更深一步分析领域模型的构建,很多同学表...原创 2022-01-21 13:46:38 · 2198 阅读 · 0 评论 -
终于有人说清楚了,鉴权 5 兄弟:cookie、session、token、jwt、单点登录
作者:Henrylulu来源:juejin.cn/post/6898630134530752520本文你将看到:基于 HTTP 的前端鉴权背景 cookie 为什么是最方便的存储方案,有哪些操作 cookie 的方式 session 方案是如何实现的,存在哪些问题 token 方案是如何实现的,如何进行编码和防篡改?jwt 是做什么的?refresh token 的实现和意义 session 和 token 有什么异同和优缺点 单点登录是什么?实现思路和在浏览器下的处理从状态说起「原创 2022-01-19 20:32:15 · 283 阅读 · 0 评论 -
微服务的构建环境比较--Spring Cloud和Kubernetes
背景Spring Cloud 和 Kubernetes 都声称是开发和运行微服务的最佳环境,但它们本质上有很大不同,并且解决的问题也不尽相同。在本文中,我们将了解两个平台如何帮助搭建基于微服务的架构 (Microservice based architectures, MSA),它们各自擅长的领域,以及如何各取所长以便在微服务之旅中取得成功。该图涵盖了系统运行时所涉及的很多方面,但没有涉及在 MSA 世界中非常重要的打包、持续集成、扩展、高可用性、自我修复。我们假定大多数 Java...原创 2022-01-14 19:26:01 · 1164 阅读 · 3 评论 -
和月薪5W的大老比,才知道自己一直在打工,,,,,,
前几天和一个月薪5w的朋友聊面试,他说不管是阿里还是腾讯的面试,这个级别的程序员,都会考察项目管理能力,并且权重非常大。其实现在不管面试什么岗位,前端也好,后端也罢,都必须考察管理,这关过了,基本上就没太大问题了。他告诉我,那些大厂认为,只有项目中的每个人都具备足够的管理意识,才能保障工作不出现纰漏,达到效率效果的最大化。但是细想想技术岗日常的工作场景,也合理:产品经理天天不干正事,提的需求没头没脑,烦;每周开不完的例会/对接会,一点效率都没有,烦;同一个需求,要和好几个部门的人反反原创 2022-01-14 17:00:01 · 262 阅读 · 3 评论 -
[微服务/API时代的前端开发] BFF进阶--实践中常见的3种反模式
前言上一篇介绍了BFF相关的5个使用案例。本篇将结合笔者在实际项目中多次采用BFF的经验来说明反模式出现的原因和相应的解决方法。BFF 是一种架构模式,但并不是任何情况都适用。如果对它的优缺点了解不够透彻,就冒然采用的话,你可能会后悔。我在实际项目中多次采用了BFF,但并非所有项目都很成功。相反,由于引入的新的东西,从而产生了一些新的问题,而且责任范围的改变也造成了一些项目上的失误。因此,这一篇,我将根据我的经验介绍以下三种BFF反模式。反模式名称是我自己取的,是为了方便起见,命名如下:..原创 2022-01-13 15:33:37 · 503 阅读 · 0 评论 -
Java8-15的新特性,你知道几个?
0. 阅读完本文你将会学到6个实用的Java新特性本文一共约1760字,阅读时长大概等于一首Enrique Iglesias的《Ring My Bells》。自从2018年开始,Java采用了每六个月发布一次新版本的策略。这样的策略使得Java保持了新鲜感以及强劲的生命力,在这篇文章中,我将会为大家带来6个实用的Java新特性。1. Optioal类NullPointerException是Java所有异常中最经典的一种。大家肯定对它不陌生,它经常出乎意料地出现,让人头疼不已。好在Java原创 2022-01-10 19:29:06 · 156 阅读 · 0 评论 -
Spring 既然能做性能调优,我直呼内行
莫慌,今天给大家见识一下不一样的 String,从根上拿捏直达 G 点。分享一个例子:通过性能调优我们能实现百兆内存轻松存储几十 G 数据。String对象是我们每天都「摸」的对象类型,但是她的性能问题我们却总是忽略。爱她,不能只会简单一起玩耍,要深入了解String 的内心深处,做一个「心有猛虎,细嗅蔷薇」的暖男。通过以下几点分析,我们一步步揭开她的衣裳,直达内心深处,提升一个 Level,让 String 直接起飞:字符串对象的特性; String 的不可变性; 大字符...原创 2022-01-07 20:58:19 · 191 阅读 · 0 评论 -
近期业务大量突增微服务性能优化总结-2.开发日志输出异常堆栈的过滤插件
最近,业务增长的很迅猛,对于我们后台这块也是一个不小的挑战,这次遇到的核心业务接口的性能瓶颈,并不是单独的一个问题导致的,而是几个问题揉在一起:我们解决一个之后,发上线,之后发现还有另一个的性能瓶颈问题。这也是我经验不足,导致没能一下子定位解决;而我又对我们后台整个团队有着固执的自尊,不想通过大量水平扩容这种方式挺过压力高峰,导致线上连续几晚都出现了不同程度的问题,肯定对于我们的业务增长是有影响的。这也是我不成熟和要反思的地方。这系列文章主要记录下我们针对这次业务增长,对于我们后台微服务系统做的通用技术优化转载 2022-01-07 00:51:01 · 241 阅读 · 0 评论 -
没背景没学历看清现实后,历经 300 天终于上岸阿里 Java 开发岗,梦想还是要有的这不就实现了嘛
前言想写这篇文章很久了,也有粉丝留言、私信问我打卡系列怎么断更了这么多天(狗头保命),首先给大家解释一下最近为什么 “失踪了” ?由于近两周要入职,找租房,整理微信公众号,所以没多少时间写头条,今天难得闲下来,做一篇近期总结给大家。近期总结(2021 年 9 月-11 月):忙忙碌碌的秋招陆续开始,通过自己的努力成功拿到了阿里、哔哩哔哩等 6 家互联网公司 offer,也希望能结识更多同届优秀的大佬们,互相学习,互相分享经验、心得,共同进步~关于我 熟悉我的小伙伴应该知道,我是普转载 2022-01-01 15:51:44 · 193 阅读 · 1 评论 -
10年 Java 老鸟,写给 1-3 年程序员的几点建议,满满硬货指导
从 11年毕业到现在也从业10年了,普通本科毕业,现在一家互联网公司担任 Java 部门总监,摸爬打滚,坑坑洼洼也经历了不少。思绪很久决定还是写下这篇,希望对后进的小伙子少走一点弯路。 很多人把职场想得太美好,其实不然。如果你没有规划好,你就会难免遇到各种各样的问题:工作不开心;没有前进的动力;工作不是自己想像的那么好;自己的才能无法发挥;看到以前的同学待遇如何如何,便受不了刺激,急切地想跳槽;当初为了生存而找的工作,根本就不适合自己…… 这些问题通常会在步入职场的 1-3 年之内最明显(3 年原创 2021-11-29 14:04:12 · 223 阅读 · 0 评论 -
你在工作中遇到过印象深刻的困难是什么,你怎么克服的?
你好呀,我是老猿。这期我想简单的聊一个面试中出现频率比较高的,但又没有标准答案的面试题。你在工作中遇到过印象深刻的困难是什么,你怎么克服的?为什么我想聊聊这个问题呢?因为我发现这个问题经常出现在各个技术交流群中,大家聊到这个话题的时候大多都苦不堪言,纷纷表示不知道怎么去回答这个问题。或者说之前就没有想过这样的问题,突然一下被问起来,由于没有准备,也是摸不着头脑的样子。匆匆的回顾一下自己的职业生涯,发现天天写的都是 crud,也没觉得有什么困难啊。一时间,竟然想脱口而出:我觉得原创 2021-11-29 13:09:08 · 9055 阅读 · 2 评论