暂无个人介绍
一线互联网公司工作了几年,我作为求职者参加了不少面试,也作为面试官面试了很多同学,整理这份面试指南,一方面是帮助大家更好的准备面试,有的放矢,另一方面也是对自己知识框架做一个体系化的梳理。
最近网上出现一个美团面试题:“一个线程OOM后,其他线程还能运行吗?”
相信很多人对于性能优化都不陌生,为了获得更好的系统性能,或者是为了满足不断增加的业务需求。 都需要用到我们的性能调优。所以性能优化在面试中出现的频率特别高 楼主自认为自己对性能优化相关知识有很多了解,而且因为最近在找工作面试,所以单独复习了很多关于索引的知识。
List List实现了Collection,所以他拥有Collection的全部方法
前言 正逢金三银四,受到疫情影响,很多大型互联网公司都采用线上面试的方法来挑选人才,也有很多幸运的小伙伴也是拿到大厂的offer,今天给大家分享的是我一位幸运拿到京东offer的朋友的面试经历,疫情刚有好转,相信还有很多朋友是在线上办公的,我也闲来无事,问到了我朋友京东面试的一些真题,以及我整理的一些真题分享给大家。
又逢金三银四,拿到大厂的offer一直是程序员朋友的一个目标,我是如何拿到大厂offer的呢,今天给大家分享我拿到大厂offer的利器,大厂核心知识面试宝典,375页面试宝典,内容囊括jvm,java集合,java多线程并发,java基础,spring原理,微服务,网络,日志,zookeeper,kafka,mongoDB,设计模式,负载均衡,数据库,数据结构,分布式缓存。
三面大概九十分钟,问的东西很全面,需要做充足准备,就是除了概念以外问的有点懵逼了(呜呜呜~)。回来之后把这些题目做了一个分类并整理出答案(强迫症的我~狂补知识~)分为redis缓存,高并发,分布式,微服务等,接下来分享一下我的这京东面试的面经+一些我的学习笔记。
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
大厂的面试从来不会是固定的,特别是像阿里这种一线互联网公司,想要进这种大厂,每个重点的知识点都是要了解的,给大家带来的春招面试必备指南会从面试官的心理分析,大厂经常问到的问题,以及对面试的问题分析,分享给大家,涉及到的知识点包含了有消息队列,Redis缓存,分库分表,读写分离,分布式系统,高可用架构,spring微服务,等架构专题
放个效果图:
面试京东被问到的问题: 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性? 如何保证 redis 的高并发和高可用?redis 的主从复制原理能介绍一下么?redis 的哨兵原理能介绍一下么? 如何设计一个高并发系统? 分布式服务接口的幂等性如何设计(比如不能重复扣款)?
我们刚开始学习 JavaWeb 的时候,使用 Servlet/JSP 做开发,一个接口搞一个 Servlet ,很头大,后来我们通过隐藏域或者反射等方式,可以减少 Servlet 的创建,但是依然不方便,再后来,我们引入Struts2/SpringMVC 这一类的框架,来简化我们的开发 ,和 Servlet/JSP 相比,引入框架之后,生产力确实提高了不少,但是用久了,又发现了新的问题,即配置繁琐易出错,要做一个新项目,先搭建环境,环境搭建来搭建去,就是那几行配置,不同的项目,可能就是包不同,其他大部分的配置都是一样的,Java 总是被人诟病配置繁琐代码量巨大,这就是其中一个表现。那
面试流程 先说下面试流程,一般大公司都有3-4轮技术面,1轮的HR面。就蚂蚁金服而言,我共经历了4轮技术面,前两轮主要是问基础和项目实现,第3轮是交叉面,两个面试官,主要是问项目实现和拓展。第4轮是部门老大面,主要就问一些架构、技术和业务的理解、个人发展比较抽象的东西了,现在基本也是这样的。
开源框架适配 为了减少开发的复杂程度,Sentinel 对大部分的主流框架都进行了适配,例如:Web Servlet、Dubbo、Spring Cloud、gRPC、Spring WebFlux 和 Reactor 等。
前言 我分享的这份春招,金三银四Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、 分布式&数据结构与算法等25个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!
我们知道Linux这玩意儿是在计算机上面运行的,所以说Linux就是一组软件。问题是这个软件是操作系统还是应用程序? Linux可以在哪些种类的计算机硬件上面运行?而Linux源自哪里?为什么使用Linux还不用花钱?这些我们都得先来谈—谈! 免得下次人家问你,为什么复制软件不会违法时,你会答不出来!
随着互联网的不断发展,CPU硬件的核心数也在不断进步,并发编程越来越普及,但是并发编程并不像其他业务那样直接了当。在编写并发程序时,我们常常都会出现各种漏洞,这些问题往往都突然出现,然后又迅速消失,并且在大部分位置中重复出现。
如果你需要进行大规模的容器编排,那么Kubernetes (K8s) 可以说是最佳选择。谷歌推出的开源容器编排系统备受好评,得到了很好的支持,而且发展非常迅速。kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第一个正式版本。
今天带大家认识下DDD,一个听起来很垃圾却真的很牛X的设计思想,架构师必备!
什么是协程?」几乎是现在面试的必考题。 一方面,Donald E. Knuth 说「子过程是协程的一种特殊表现形式」;另一方面,由于 coroutine 的中文翻译「协程」中包含有「程」字,因此一般会拿来与「进程」、「线程」进行比较,称为「轻量级线程」。 第一部分介绍协程的历史; 第二部分主要是介绍函数调用和协作式多任务处理,虽然其他介绍协程的文章中也都讲解了函数调用,在本文中,我在构思如何进行分享时,特意使用汇编来实现函数调用 (汇编实现 main 调用 hello),为后面实现简单的协程库做好铺垫,而这正是理解协程切换的关键,推荐大家阅读; 第三部在实现了一个简单的协程库后,通过对比来
在Spring Cloud项目中,前后端分离目前很常见,在调试时,会遇到两种情况的跨域:
前言 相信有许多的程序员,工作了这么多年;但是依然不知道自己掌握的技术栈+项目,究竟达到了阿里的什么职级,还有薪资水平是什么样的;
CompletableFuture实现了CompletionStage接口和Future接口,前者是对后者的一个扩展,增加了异步回调、流式处理、多个Future组合处理的能力,使Java在处理多任务的协同工作时更加顺畅便利。
商城介绍 商城系统支持商家入驻,后端基于SpringBoot 研发,前端使用 Vue、uniapp开发, 系统全端全部代码开源 前后端分离,支持分布式部署,支持Docker,各个API独立,并且有独立的消费者。
我们现在所有的协议、配置、数据库的表达都是以 protobuf 来进行承载的,所以我想深入总结一下 protobuf 这个协议,以免踩坑。 先简单介绍一下 Protocol Buffers(protobuf),它是 Google 开发的一种数据序列化协议(与 XML、JSON 类似)。它具有很多优点,但也有一些需要注意的缺点: 优点: 效率高:Protobuf 以二进制格式存储数据,比如 XML 和 JSON 等文本格式更紧凑,也更快。序列化和反序列化的速度也很快。 跨语言支持:Protobuf 支持多种编程语言,包括 C++、Java、Python 等。 清晰的结构定义:使用 prot
2023年经济下行趋势明显,程序员出路在哪儿? 今年,毕业人数将达到1158万,导致很多公司招聘非常谨慎、要求也变得非常更高。 别说offer,现在出门找个实习都难。 “大学四年我都学了啥?” “是啊,现在咋找实习丰富简历啊” “今年毕业的我该怎么办,要哭了” “论文没写,offer没有,天天躺尸ing” 但实际上,有很多公司用人需求依旧非常大,而且还可以视频面试! 比如腾讯、阿里、抖音、快手这类互联网公司,招聘需求不仅没有降低还暴增30%。
大厂的面试题一直都是风向标,动态必须关注! 想高效快速地拿到心仪 offer,一定要从面试官的角度出发,提前做好功课,了解市场的最新风向。
为什么很多公司都开始使用Go语言了? 写在前面 最近和几个小伙伴们在写字节跳动第五届青训营后端组的大作业。 接近尾期了,是时候做一些总结了,那从什么地方开始呢?那就从我们为什么要选择Go语言开始吧~ 项目地址 项目文档 越来越多的互联网大厂开始使用Go语言了,譬如腾讯、美团、滴滴、百度、Google、bilibili... 还有最初使用Python的字节跳动,甚至已经全面拥向Go了。这么多国内外首屈一指的公司,都在开始使用它了,它到底有什么优势呢?这就得谈谈它的一些优势了。 ps:当然了,还有Go-To-Byte的成员,想要学习go语言,并且用它完成青训营的大项目呐~
先听我说: 我们在日常生活中,并不是碰见的每一个程序都需要进行调优的。如果你做出来的程序的性能表现的和预期一样甚至超越,那就完全没有必要再付出额外的精力去提升它的性能。 然后,每次程序调试完后,都不可能马上就能达到满足它的性能需求,所以才有了性能调优这个选项,单无论你是从事哪种语言工作,对于应用程序的调优都要求你有足够的技术和高度集中的注意力。 另外,你也不能使用一样的方式来优化两个不同的程序,因为程序与程序之间的运作方式都是不同的,对于资源的使用方式也是不同的。正是因为这样,调优需要的基础知识要远高于写程序。 比如,你需要计算机架构、操作系统和虚拟机,当你看着这些基础知识上编写的程序,
今天给大家介绍一款即时通讯应用,这个开源项目是:Tailchat,它是一个基于 React + Typescript 的现代开源 noIM 应用程序。
一、简单的分片上传 针对第一个问题,如果文件过大,上传到一半断开了,若重新开始上传的话,会很消耗时间,并且你也并不知道距离上次断开时,已经上传到哪一部分了。因此我们应该先对大文件进行分片处理,防止上面提到的问题。
Guns是一个现代化的Java应用开发框架,基于主流技术Spring Boot2 + Vue3,Guns的核心理念是提高开发人员开发效率,降低企业信息化系统的开发成本。
Smart Shop 是一款基于 Spring Cloud +MybatisPlus+XXL-JOB+redis+Vue 的前后端分离、分布式、微服务架构的 Java 商城系统
一个基于spring boot的脚手架,并提供完善社区文档教程,中小企业可以用来快速迭代。
招聘市场开始回暖了?! 很多大厂和央企国企已经陆续开放 hc!是时候开始好好准备一下挑战高薪、冲击大厂了! 从事 Java 开发的小伙伴都会发现,面试一定逃不过 Spring 的关卡。 在 Spring 源代码能力相对较弱的情况下参加面试,很容易被面试官问住,只能和心仪的 offer 失之交臂~
MySQL的索引是一个非常重要的知识点,也基本上是面试必考的一个技术点,所以非常重要。那你了解MySQL索引的数据结构是怎么样的吗?为什么要采用这样的数据结构? 现在化身为MySQL的架构师,一步步迭代设计出MySQL的索引结构,保证你再也忘记不了索引的结构了,轻松通过面试。
在分布式系统中,一次业务处理可能需要多个应用来实现,比如用户发送一次下单请求,就涉及到订单系统创建订单,库存系统减库存,而对于一次下单,订单创建与减库存应该是要同时成功或者同时失效,但在分布式系统中,如果不做处理,就很有可能订单创建成功,但是减库存失败,那么解决这类问题,就需要用到分布式事务……
Spring Cloud Alibaba是Spring Cloud下的一个子项目,使用 Spring Cloud Alibaba,只需添加一些注解和少量配置,即可将 Spring Cloud 应用连接到 Alibaba 的分布式解决方案中,并使用 Alibaba 中间件构建分
高并发编程一直以来都是开发工作中的难点和重点。一旦你具有了优秀的高并发编程技能,就可以更充分地利用现有资源,更高效率地完成各种工作。如果你有能力高效利用你能调度的各种资源,你就比其他开发者拥有更高的价值。
数据库就是要做好五件事,存储、事务、查询、复制和其他。而对分布式数据库来说,不仅要继续做这五件事,还要多出一件事,分片。在这六件事中,存储和其他这两件事与单体数据库差不多,难点就在事务、查询、复制和分片这四件。
开场先来带大家看一组数据 行业风向标,猎聘发布的数据报告显示: 相比以往,2023年企业招聘两大变化体现在:对人才各方面能力要求更高、对人岗的匹配性要求更细。 不同规模的企业用人各有侧重,大中型企业更注重人的全面能力,小型企业更在意人岗匹配的精细度。 行业风向标,猎聘发布的数据报告显示: 对于新一年的就业形势,上述报告显示,84.48%的职场人对2023年的就业形势有信心,人群越年轻信心越足,90后中有信心的人最多,占到该群体的87.10%。 职场人有信心的两大主要原因是“疫情管控放开,就业市场有望释放更多职位” ,“经济形势好转,就业大环境变好”,得票率均超70%。
什么是事务? 事务从本质上讲就是:逻辑上的一组操作,组成这组操作的各个逻辑单元在不同的服务甚至服务器上,保证它们要成功就都成功,要失败就都失败。 事务的四大特性 提到事务就不得不提事务的四大特性(基本特征) ACID: 原子性(atomicity):“原子”的本意是“不可再分”,事务的原子性表现为一个事务中涉及到的多个操作在逻辑上缺一不可。事务的原子性要求事务中的所有操作要么都执行,要么都不执行。 一致性(consistency):“一致”指的是数据的一致,具体是指:所有数据都处于满足业务规则的一致性状态。一致性原则要求:一个事务中不管涉及到多少个操作,都必须保证事务执行之前数据是正确的
最近收到小伙伴的反馈: 事实也确实是这样,如今不像从前,会个CRUD就可以随随便便找个10几k的工作,现在面试中级的话都从底层问到框架,从jvm,juc底层问到消息队列高并发了,还问SQL的调优。至于高级都是对于消息队列、缓存、分布式等各种主流技术还需要知道原理! 其实这些技术在真正的实际开发环境中真的用得到吗?不一定的,但是没办法,环境就是如此,能做的也就只有不断提升自己,去适应市场环境,提高自身技术水平!
Base Admin一套简单通用的后台管理系统,主要功能有:权限管理、菜单管理、用户管理,系统设置、实时日志,API加密,以及登录用户修改密码、配置个性菜单等。
近几年,微服务架构在大量技术社区迅速蹿红,被认为是 IT 软件架构的未来方向。一线互联网公司由于具有大量的业务体量和业务场景,比如阿里、百度、网易,很早就开始入坑微服务架构。 随着云端办公以来,发现微服务越来越重要了。Docker 容器技术和自动化运维等相关技术发展,使微服务变得更容易维护。大家可能都注意到,像阿里、腾讯、字节跳动等大厂的后端岗位明确写出:微服务设计经验优先。如果没有这方面的准备的话,想拿到高薪可不容易。 再者,微服务在技术面试的时候多有提及,尤其对于头部互联网企业,微服务架构更是必备的考核点,如果平时不注意这方面的知识的积累和运用,在跳槽或升职的时候,薪酬会非常吃亏。
余额宝一面 1. JVM 内存分哪几个区,每个区的作用是什么?JVM有哪些回收算法,对应的收集器有哪些? 2. GC 的两种判定方法 ?CMS 收集器与 G1 收集器的特点。 3. hashmap源码问题 4. HashMap、HashMap如何保证线程安全、ConcurrentHashMap 5. HashMap底层结构 put操作讲一下 6. GC 的两种判定方法 ?CMS 收集器与 G1 收集器的特点。 7. java线程同步都有哪几种方式,在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别? 8. cas的原理,变量要用哪个关键字修饰,volati
Java 的各种开发框架发展了很多年,影响了一代又一代的程序员,现在无论是程序员,还是架构师,使用这些开发框架都面临着两方面的挑战。 1. 一方面是要快速开发出系统,这就要求使用的开发框架尽量简单,无论是新手还是老手都能快速上手,快速掌握页面渲染、数据库访问等常用技术。也要求开发框架能尽量多地集成第 方工具,以便信手拈来。最后,还希望在开发调试过程中,方便代码更改后能快速重启。
SSM 第1部分入门和技术基础 第1章认识SSM框架和Redis 第2章Java设计模式 第2部分互联网持久框架- -MyBatis 第3章认识MyBatis核心组件 第4章MyBatis配置 第5章映射器 第6章动态SQL 第7章MyBatis的解析和运行原理 第8章插件 第3部分Spring基础 第9章Spring IoC的概念 第10章装配Spring Bean 第11章面向切面编程 第12章Spring和数据库编程 第13章深入Spring数据库事务管理 第4部分Spring MVC框架 第14章Spring MVC的初始化和流程 第15章深入Spring MVC组件开发 ......
一个优秀的程序员应该有自己的职业规划,并且能够精准的定位自己所处的位置。一般来说,每一个位置都会有明确的划分,并且也应该能够得到相应的岗位待遇。而我们下面就是以北上深(一线城市)的学员做为调研对象,归纳总结了一个程序员从初级程序员到架构师的能力模型。
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)