Spring
文章平均质量分 90
就要学Java
Java全套进阶资料以及面试题可以后台私信我!!!!!!
展开
-
面试官亲述|如何优雅地介绍自己的项目经历?
其实可能会过犹不及,面试官就会重点考察你说的每个细节,因为怀疑你说的都是你从网上看的,而不是你项目中用到的。不管怎样,一旦回答简单,不主动说出你的擅长点,或没有条理很清楚地说出你的亮点,就算我让你通过面试,也不会写上“框架细节了解比较深,数据库应用比较熟练”等之类的好评语,你即使通过技术和后面的综合面试,工资也是比较低的。在做项目介绍的时候,你可以穿插说出一些你的亮点,但请记得,不论在介绍项目还是在回答问题,你当前的职责不是说明亮点而是介绍项目,一旦你详细说,可能会让面试官感觉你跑题了。原创 2023-06-04 11:17:53 · 530 阅读 · 0 评论 -
大家都来看一看吧,Java面试真卷的离谱。。。
为了帮大家节约时间,特意找腾讯的大佬要来了一些面试相关的资料,内容非常的全面,真的可以好好补一补,希望大家在金三银四都能拿到理想的薪资和offer!很多时候,面试官问的问题会和自己准备的“题库”中的问题不太一样,即使做了复盘,下次面试还是不知道该从何处下手。大家好,最近有不少小伙伴在后台留言,今年面试实在是太卷了,不知道从何下手!并且,你最好还要时不时自测一下,对着一些面试常见的问题进行自问。MQ+Kafka+Zookeeper(40页)设计模式+项目+高并发(41页)另外,准备面试的小伙伴,原创 2023-06-04 10:05:46 · 82 阅读 · 0 评论 -
教你打通Git的任督二脉
什么是版本控制?我真的需要吗?版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。什么是分布式版本控制系统分布式版本控制系统( Distributed Version Control System,简称 DVCS )。在这类系统中,像 Git,Mercurial,Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜 像出来的本地仓库恢复。原创 2023-06-04 10:00:29 · 64 阅读 · 0 评论 -
圆梦!顺利拿到字节、淘宝、拼多多等大厂 offer!
面经部分都是拿到 offer 或者谈薪阶段主动终止的公司,其他小公司或创业公司都是为了练手,面试题没有普遍性的都没有列举出来,面试问题写的少的都是问项目、业务比较多的。算法题只在 leetcode 上找原题,没有贴出链接的就是 leetcode 上没有的。原创 2023-06-02 15:27:04 · 278 阅读 · 0 评论 -
京东十年老架构:MySQL——GROUP BY详解与优化
以下是GROUP BY子句的基本语法:sql复制代码其中,col1col2, ...是要分组的列名,是用于聚合数据的函数,如SUMAVGMAXMIN等。table_name是要从中检索数据的表的名称,condition是可选的查询条件。原创 2023-06-01 16:09:43 · 500 阅读 · 0 评论 -
教你使用Feign替换RestTemplate
类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制请求失败的重试机制,默认是没有,不过会使用Ribbon的重试一般情况下,默认值就能满足我们使用,如果要自定义时,只需要创建自定义的@Bean覆盖默认Bean即可。下面以日志为例来演示如何自定义配置。原创 2023-06-01 15:29:11 · 350 阅读 · 0 评论 -
面试必问之缓存击穿、穿透、雪崩及常用解决方案
本文介绍了缓存击穿、缓存穿透和缓存雪崩三种问题及解决方案。缓存击穿:先击后穿缓存击穿的解决方案有:设置热点数据永不过期、定时更新、分布式缓存穿透:将缓存穿了个洞缓存穿透的解决方案有:业务层校验、缓存空值、布隆过滤器缓存雪崩:大量失效Key缓存雪崩的解决方案有:设置不同的过期时间、缓存预热、多级缓存、限流熔断、集群和负载均衡结尾金九银十快到了很多朋友对面试不够了解,不知道如何准备,对面试环节的设置以及目的不了解,尤其是面试题还很难,自己看解析都有点不明白。原创 2023-06-01 15:12:55 · 495 阅读 · 0 评论 -
十年老架构带你深入学习Redis(5):集群
集群,即Redis Cluster,是Redis 3.0开始引入的分布式存储方案。集群由多个节点(Node)组成,Redis的数据分布在这些节点中。集群中的节点分为主节点和从节点:只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。集群的作用,可以归纳为两点:1、数据分区:数据分区(或称数据分片)是集群最核心的功能。集群将数据分散到多个节点,一方面突破了Redis单机内存大小的限制,存储容量大大增加;原创 2023-05-31 15:14:38 · 107 阅读 · 0 评论 -
十年老架构带你深入学习Redis(4):哨兵
哨兵系统的搭建过程,有几点需要注意:(1)哨兵系统中的主从节点,与普通的主从节点并没有什么区别,故障发现和转移是由哨兵来控制和完成的。(2)哨兵节点本质上是redis节点。(3)每个哨兵节点,只需要配置监控主节点,便可以自动发现其他的哨兵节点和从节点。(4)在哨兵节点启动和故障转移阶段,各个节点的配置文件会被重写(config rewrite)。(5)本章的例子中,一个哨兵只监控了一个主节点;实际上,一个哨兵可以监控多个主节点,通过配置多条sentinel monitor即可实现。原创 2023-05-31 15:08:18 · 48 阅读 · 0 评论 -
十年老架构带你深入学习Redis(2):持久化
持久化的功能:Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;当下次Redis重启时,利用持久化文件实现数据恢复。除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程位置。Redis持久化分为RDB持久化和AOF持久化:前者将当前数据保存到硬盘,后者则是将每次执行的写命令保存到硬盘(类似于MySQL的binlog);原创 2023-05-31 15:02:40 · 43 阅读 · 0 评论 -
原京东架构师一步步教你如何搭建K8S集群(保姆级教程)
这个命令我在主节点上执行了三次,第一次是工作节点还没加入前,第二次是工作节点加入后,可以看到 node01 状态是 NotReady,过了几分钟后,我又执行了一次,node01 的状态变成了 Ready。此时我再在工作节点执行该命令,还是会发生上面的报错。上面说是 Docker 和 kubelet 的 cgroup driver 不一样,kubelet 的是 systemd,docker 的是 cgroupfs。很遗憾的是我的虚拟机上的主节点突然宕机了,并且之后换了一个 IP,然后我又立马给它起起来了。原创 2023-05-30 16:26:44 · 161 阅读 · 0 评论 -
你的Mysql很慢?MySQL慢查询分析和性能优化
这边仅仅是从查询语句的角度进行分析,实际上缓存服务变慢的可能性很多,不仅仅是慢查询怎么分析(Slow Log、Explain命令)。还应该全面的分析原因,并给出处理方案,如 分析SQL脚本合理性、建立索引或优化索引、读写分离、垂直+水平分区)、多读少写/冷数据 做缓存、优化数据库的锁竞争、数据库配置调优、硬件资源升级 等等,后面几篇我们慢慢说。原创 2023-05-30 15:50:23 · 1205 阅读 · 0 评论 -
阿里P7大佬带你深入理解熔断、降级的Hystrix实现
前面的章节,我们学习了微服务中对熔断降级的原理,参考这篇《了解了固定窗口算法、滑动窗口算法、 漏桶原理和令牌桶原理,本文对Hystrix做进一步的分析。Hystrix是Netflix开源的一款具备熔断、限流、降级能力的容错系统,设计目的是将应用中的系统访问、多链路服务调用、第三方依赖服务的调用,通过流量资源控制的方式隔离开。避免了在分布式系中的某个服务故障沿着调用链向上传递,出现整体的服务雪崩,并以此提升系统的稳定性和健壮性。原创 2023-05-30 14:59:04 · 438 阅读 · 0 评论 -
美团大厂架构师带你了解MySQL索引实现和使用
表中的数据发生变更的时候,会影响其他记录地址的变化,如果辅助索引中记录数据的地址,此时会受影响,而主键的值一般是很少更新的,当页中的记录发生地址变更的时候,对辅助索引是没有影响的。也是B+树结构,MyISM使用的是非聚簇索引,如下图,非聚簇索引的两棵B+树看上去没什么不同,节点的结构完全一致只是存储的内容不同而已,主键索引B+树的节点存储了主键,根据我们之前的了解,每个磁盘块(disk)存储的内容是有限的,如果一个页中可以存储的索引记录越多,那么查询效率就会提高,所以我们可以指定索引的字段长度。原创 2023-05-30 14:45:02 · 141 阅读 · 0 评论 -
字节大佬架构师带你深入RocketMQ 顺序消费机制
同一分区内的消息保证顺序,不同分区之间的消息顺序不做要求。如上图所示,A1、B1、A2、A3、B2、B3 是订单 A 和订单 B 的消息产生的顺序,业务上要求同一订单的消息保持顺序,例如订单 A 的消息发送和消费都按照 A1、A2、A3 的顺序。顺序消息是指对于一个指定的 Topic ,消息严格按照先进先出(FIFO)的原则进行消息发布和消费,即先发布的消息先消费,后发布的消息后消费。消费者消费消息时,使用单线程消费重平衡已分配的消息队列,保证消息消费顺序和存储顺序一致,最终实现消费顺序和发布顺序的一致。原创 2023-05-30 10:45:24 · 98 阅读 · 0 评论 -
面试实际场景题:订单30分钟未支付自动取消怎么实现?
这样可以看出定时轮由个 3 个重要的属性参数,ticksPerWheel(一轮的 tick 数),tickDuration(一个 tick 的持续时间)以及 timeUnit(时间单位),例如当 ticksPerWheel=60,tickDuration=1,timeUnit=秒,这就和现实中的始终的秒针走动完全类似了。结合以上两个特性,就可以模拟出延迟消息的功能,具体的,我改天再写一篇文章,这里再讲下去,篇幅太长。因此,方案二不是太推荐。对上述的任务,我们给一个专业的名字来形容,那就是延时任务。原创 2023-05-29 15:56:31 · 475 阅读 · 0 评论 -
Java类加载原理解析
但在JVM中一个类用其全名和一个加载类ClassLoader的实例作为唯一标识,不同类加载器加载的类将被置于不同的命名空间.我们可以用两个自定义类加载器去加载某自定义类型(注意,不要将自定义类型的字节码放置到系统路径或者扩展路径中,否则会被系统类加载器或扩展类加载器抢先加载),然后用获取到的两个Class实例进行java.lang.Object.equals(…通俗的讲,就是某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,依次递归,如果父类加载器可以完成类加载任务,就成功返回;原创 2023-05-26 11:45:23 · 51 阅读 · 0 评论 -
40个多线程的问题汇总,看看你都会吗
前言这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问题讲的不对,能指正的希望大家不吝指教。40个问题汇总1、多线程有什么用?一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。原创 2023-05-26 11:38:27 · 380 阅读 · 0 评论 -
69道Spring面试题以及答案,轻松应对spring面试
Spring 是个Java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。原创 2023-05-26 11:01:29 · 864 阅读 · 0 评论 -
程序员必须要理解的Spring Boot
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。多年以来,Spring IO平台饱受非议的一点就是大量的XML配置以及复杂的依赖管理。原创 2023-05-26 10:23:45 · 94 阅读 · 0 评论 -
价值20k的文章:分布式MySQL集群方案的探索
首先分布式事务涉及到的一致性和CAP中一致性是两个概念,事务ACID属性中的一致性不涉及最终一致性,对于关系型数据库中事务的概念,我的理解都是强一致的(通过原子性和隔离型保证)。只有涉及到某一个节点(内容是相同的情况)多副本之间的复制问题才会涉及到弱一致性或者最终一致性(CAP中C)的问题。而分布式事务本身如果保证了原子性和隔离性,数据库层面就提供了一致性保证,其余的是应用逻辑层面保证。原创 2023-05-26 10:12:32 · 49 阅读 · 0 评论 -
Java高级技术之RabbitMQ生产故障问题分析
就相当于死循环了,所以容易导致消费端资源占用过高,特别是TCP连接数、线程数、IO飙升,如果个别程序带事务或数据库操作等连接资源得不到释放也会占满,导致应用假死状态(出现问题的时候,查看问题应用出现大量的connection timeout错误报错日志)。那么问题来了,这是为什么呢?: 服务端调用Basic.Deliver方法,和第一次Basic.Deliver方法不同的是,此时的redeliver参数为true,表示重新投递消息到监听队列的消费者,然后这两步会一直重复下去。原创 2023-05-26 09:56:22 · 886 阅读 · 0 评论 -
Mybatis面试18问,你想知道的都在这里了!
与JDBC批处理相同。原理是,Mybatis解析A标签,发现A标签引用了B标签,但是B标签尚未解析到,尚不存在,此时,Mybatis会将A标签标记为未解析状态,然后继续解析余下的标签,包含B标签,待所有标签解析完毕,Mybatis会重新解析那些被标记为未解析的标签,此时再解析A标签时,B标签已经存在,A标签也就可以正常解析完成了。另一种是使用嵌套查询,嵌套查询的含义为使用join查询,一部分列是A对象的属性值,另外一部分列是关联对象B的属性值,好处是只发一个sql查询,就可以把主对象和其关联对象查出来。原创 2023-05-25 15:14:17 · 29 阅读 · 0 评论 -
谈谈为什么项目中要拆分数据库?有哪些方法?
垂直切分是根据业务来拆分数据库,同一类业务的数据表拆分到一个独立的数据库,另一类的数据表拆分到其他数据库。比如说一个新零售的电商数据库,我们可以把跟商品相关的数据表拆分成一个数据库,然后在这些数据表的基础之上,构建出商品系统。比如用JAVA或者PHP语言,创建出一个商城系统。然后把跟进销存相关的数据表拆分到另外一个数据库上,再用程序构建出仓库系统。垂直切分解决了什么问题垂直切分可以降低单节点数据库的负载。原创 2023-05-25 14:54:43 · 70 阅读 · 0 评论 -
面试官必问的:Java集合框架 8 连问,你有被问过吗?
以下是大纲:HashMap和HashTable的区别?说一下 HashMap 的底层结构?为什么HashMap是线程不安全的ArrayList 和 LinkedList 的区别是什么?ArrayList 和 Vector 的区别是什么?Array 和 ArrayList 有何区别?说一下 HashSet 的实现原理?List、Set、Map 之间的区别是什么?原创 2023-05-25 14:40:16 · 67 阅读 · 0 评论 -
价值25K的阿里面试题:说说你知道的关于BeanFactory和FactoryBean的区别
如XMLBeanFactory就是一种典型的BeanFactory。原始的BeanFactory无法支持spring的许多插件,如AOP功能、Web应用等。ApplicationContext包含BeanFactory的所有功能,通常建议比BeanFactory优先。原创 2023-05-25 14:09:20 · 38 阅读 · 0 评论 -
面试必问的常用六种设计模式
这种方式的好处是比较符合人类的思维习惯,一条主线讲到底,代码阅读起来没有太大难度,只要顺着藤就能摸到瓜,但是缺点也很明显,一旦故事线中需要插入一些新的元素,比如:加入一个新的人物角色、新的时间线,都会需要大量更改故事线以配合这个新元素的融入,甚至对原有文章造成破坏性的影响。小明追妹子的时候,请她喝了不少咖啡,她爱喝卡布奇诺,每次去咖啡店,只要跟服务员说“来杯卡布奇诺”就行了,虽然各家的口味有些不同,但是不管是星爸爸还是Costa,都能够提供卡布奇诺这种咖啡。”,然后拿去礼品店装了个相框,再包上礼盒。原创 2023-05-24 11:37:30 · 1317 阅读 · 0 评论 -
三分钟搞懂Redis持久化机制
在 Redis 中,RDB 持久化就是充分的利用了这项技术,Redis 在持久化时调用 glibc 函数 fork 一个子进程,全权负责持久化工作,这样父进程仍然能继续给客户端提供服务。那么 Redis 服务器在执行 AOF 重写操作时,就会像执行 BGSAVE 命令那样,根据数据库当前的状态生成出相应的 RDB 数据,并将这些数据写入新建的 AOF 文件中,至于那些在 AOF 重写开始之后执行的 Redis 命令,则会继续以协议文本的方式追加到新 AOF 文件的末尾,即已有的 RDB 数据的后面。原创 2023-05-24 11:19:04 · 101 阅读 · 0 评论 -
全面解析Spring配置项问题
本文就Spring配置项解析问题展开分析,这其中涉及到bean定义注册表后置处理、bean工厂后置处理、工厂bean等Spring相关的概念。本文将以上述问题作为切入点,进行分析和展开介绍。问题背景介绍我们的项目中某次依赖了某个第三方包及其中的XML文件,相关代码如下所示:XML文件中定义了Mybatis相关的bean,以及对自定义数据源myDataSource的引用。在@Configuration配置类中,我们引入了XML文件,并通过@Bean注解的方式声明了数据源bean。 <!原创 2023-05-24 10:41:39 · 96 阅读 · 0 评论