自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(744)
  • 收藏
  • 关注

原创 一张Java学习路线图告诉你,从零基础到就业你都需要掌握什么技能。(最新版)

Java作为稳坐当下互联网行业龙头老大位置的热门语言,被广泛应用于Android、网站开发、金融服务、高频金融空间等众多领域。因此,一直以来,Java也是新人入行、跳槽转行者的首要选择。什么才是学习Java最合适的方法?实践会产生完全不同的结果。实践的好处不胜枚举:实践会带来专业精神通过反复不断练习。 实践能帮助学习知识应用实际可以增强您的能力。 练得越多,发现越多,包括您尚未发觉的知识。 实际动手编码比起花哨的工具和框架,实践能提供更多技能。让您更好地理解代码逻辑。 解决实际问题.

2020-08-24 11:09:27 247

原创 八股文骚套路之Spring

在大家强烈的呼声下,这周推出八股文骚套路之 Spring 篇。虽然现在 SpringBoot 很火,用起来也很方便,不过我还是建议你先看下 Spring。一个原因是,Spring 是经典了,应该好好把他的原理搞明白。另一个原因是,SpringBoot 八股文不如 Spring 好背~准备面试的话 Spring这部分是可以在短时间内做针对性准备的。这篇文章中我说下 Spring 和 SpringMV...

2021-08-19 14:10:10 43

原创 3.5W 字详解 Java 集合

数据结构作为每一个开发者不可回避的问题,而 Java 对于不同的数据结构提供了非常成熟的实现,这一个又一个实现既是面试中的难点,也是工作中必不可少的工具,在此,笔者经历漫长的剖析,将其抽丝剥茧的呈现出来,在此仅作抛砖引玉,望得诸君高见,若君能有所获则在下甚是不亦乐乎,若有疑惑亦愿与诸君共求之!本文一共 3.5 W字,25 张图,预计阅读 2h。可以收藏这篇文章,用的时候防止找不到,这可能是你能看到...

2021-08-19 10:22:55 39

原创 10个经典场景带你玩转SQL优化

前言在应用开发的早期,数据量少,开发人员开发功能时更重视功能上的实现,随着生产数据的增长,很多SQL语句开始暴露出性能问题,对生产的影响也越来越大,有时可能这些有问题的SQL就是整个系统性能的瓶颈。SQL优化一般步骤1、通过慢查日志等定位那些执行效率较低的SQL语句2、explain 分析SQL的执行计划需要重点关注type、rows、filtered、extra。type由上至下,效率越来越高A...

2021-08-12 11:08:07 26

原创 Redis高性能、高可用、可扩展的生产级架构如何设计?(高频面试题)

我们在设计Redis架构时,我们会去想一个问题,生产环境如何设计一套高性能、高可用、可扩展的Redis架构?接下来我会带着大家从单机到集群,一步一步演进。01Redis单机版在网站最初时,用户量和并发量都比较小,我们采用SpringBoot + MyBatis + Redis架构,写个单体应用就行,此时Redis我们也采用单机版,系统很快就可以构建起来,并且维护成本低。存在问题:①如果Redis宕...

2021-08-12 11:03:29 34

原创 谁说专科学历找不到Java工作?自学Java,第一份工作13k。

现在经常会在网上看到说Java饱和了,专科找不到工作,不是科班找不到工作之类的话。作为已经成功转行的我,现在明白了一个道理:那些顺利转行成功的,不会去网上说自己转行有多么容易;但是那些转行不成功的,就会到网上宣传行业饱和了,专科找不到工作。现在学的人确实越来越多了,但是学的好,达到公司招聘标准的却没有几个。这是一个技术行业,最终能不能找到工作,找到什么样的工作主要还是看技术学的怎么样,学历,专业对...

2021-08-10 17:02:19 84

原创 16 条 yyds 的代码规范

如何更规范化编写Java 代码Many of the happiest people are those who own the least. But are we really so happy with our IPhones, our big houses, our fancy cars?忘川如斯,拥有一切的人才更怕失去。背景:如何更规范化编写Java 代码的重要性想必毋需多言,其中最重要的...

2021-08-10 09:56:20 21

原创 临近毕业,如何系统自学Java为秋招做准备?

秋招马上就要开始了,最后有很多同学私信问我秋招应该如何做准备?由于学生在学校没有机会接触到实际项目,在学习方向,内容,就业的标准方向都不是很明确,现在公司招人的标准越来越高,而大学里面的内容过于基础,且偏重理论,所以学到的往往和公司需要的技术不匹配。很多学生虽然在学校很努力的学习,但是临近毕业,才发现自己所学内容并不能找到一份满意的工作。本文将结合我面试实习生和毕业生的标准,给大家全面的分析一下如...

2021-08-07 11:33:45 90

原创 老生常谈:学习Java自学好还是报培训班?

无论你是大学生还是在职人员,想学Java时,都会面临两个选择,自学或者报班。报班通常太费钱,时间又不自由;自学又不知道如何下手,担心自己坚持不下来。怎么办?我们先分析一下自学和培训班的优点。我们先讲自学优点:①会养成自我分析解决问题的好习惯,这是做开发需要掌握的必要因素。②学习时间和节奏比较灵活,可以根据自己的情况自行安排,可以半工半学,利用闲暇时间学习。③学习成本小,零投入。缺点:①学到的技术不...

2021-08-02 17:29:39 30

原创 趣谈 23 种设计模式(多图 + 代码)

一直想写一篇介绍设计模式的文章,让读者可以很快看完,而且一看就懂,看懂就会用,同时不会将各个模式搞混。自认为本文还是写得不错的 ,花了不少心思来写这文章和做图,力求让读者真的能看着简单同时有所收获。设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属 Gang of Four (GoF) 的分类了,他们将设计模式分类为 23 种经典的模式,根据用途我们又可以分为三大类,...

2021-08-02 10:46:22 26

原创 按照这个方法系统自学Java,轻松拿大厂offer

现在想要自学java的伙伴们,肯定都关心一个问题“如何系统的的自学java”自学真的不容易很多自学的小伙伴都放弃了,有的没办法后来参加培训去了。在自学的过程中遇到问题无人请教,觉得自己的付出与收获不成正比,学了很多觉得自己会的很少等等!这些苦,只有真正自学过的人才懂得!那么我们该如何系统的自学Java呢?①切记不要开始就只看书,这样比较容易放弃。书上的内容过于生硬,对于零基础的小白非常不友好,看书...

2021-07-29 17:28:24 19

原创 面试官:Redis用过是吧?那你讲讲Redis都有哪些监控指标?

监控指标性能指标: Performance内存指标: Memory基本活动指标:Basic activity持久性指标: Persistence错误指标: Error性能指标:Performance| Name| Description| -------- | -------- | -------- || latency |Redis响应一个请求的时间| instantaneous_ops_per...

2021-07-13 11:05:22 27

原创 【非广告】2021 入门级的 Java 程序员学习路线图 1.0

Hello,大家好,我是阿粉,最近看文章发现一个 Java 学习路线图的资料,觉得很不错就拿过来分享给大家,目前这个版本是 1.0 的,之所以说这个是 1.0 的版本主要是因为还有一些高级内容没有加进去,比如 JVM,容器,消息队列,云原生等都还没有提到,不过对于初学者来说这个路线图已经可以上手完成工作了。作为 Java 程序员的阿粉不得不说,现在的小伙伴们是真的很幸福,互联网如此的发达,网上各种...

2021-07-10 11:09:14 24 1

原创 Java 线程池原理及最佳实践(1.5W字,面试必问)

1. 概述1.1 线程池是什么线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。创建线程本身开销大,反复创建并销毁,过多的占用内存。所以有大量线程创建考虑使用线程池。线程池不用反复创建线程达到线程的复用,更具配置合理利用cpu和内存减少了开销,性能会得到提高,还能统一管理任务比如服务器收到大量请求,每个请求都分配线程去处理,对服务器性能考验就...

2021-07-06 10:57:56 33

原创 Redis和Mysql如何保证数据一致?面试可以这样说自己的看法

Redis 和 MySQL 搭配使用在什么地方?缓存量大但又不常变化的数据也就是说,当我们在使用 Redis 和 MySQL 的时候,搭配使用的地方就是,数据量比较大,但是这个数据不会经常的变换的位置,比如说,某些商品信息的评论数据,也就是让 Redis 充当 MySQL 的缓存服务器,而要实现的目标也是比较简单的,当客户要查询数据的时候,先访问我们的 Redis ,当 Redis 里面没有数据的...

2021-06-23 10:34:07 27

原创 如何系统自学Java成功就业?

随着传统行业的没落,越来越多的人准备进军互联网行业,如何学好Java成功就业的问题在网上越来越热,在知乎上面看了好多介绍学习方法的文章和一些优秀答主的高赞回答。多数创作都是围绕着学习什么技术比较专业性的话题,虽然写的很专业,但是对于一个从来没接触过的小白来说,你去给他讲要学习SpringBoot、 SpringCloud这样的技术,这是市场主流,他根本就不知道是什么。罗列了一大堆专业的技术,专业的...

2021-06-22 11:05:16 35

原创 你为什么学不好Java?系统学习Java的七大因素

随着传统行业的没落,越来越多的人准备进军互联网行业,如何学好Java成功就业的问题在网上越来越热,在知乎上面看了好多介绍学习方法的文章和一些优秀答主的高赞回答。多数创作都是围绕着学习什么技术比较专业性的话题,虽然写的很专业,但是对于一个从来没接触过的小白来说,你去给他讲要学习SpringBoot、 SpringCloud这样的技术,这是市场主流,他根本就不知道是什么。罗列了一大堆专业的技术,专业的...

2021-06-18 17:07:49 24

原创 Java中关于内存泄漏分析和解决方案,都在这里了!

最近正在熟悉Java内存泄漏的相关知识,上网查阅了一些资料,在此做个整理算是对收获的一些总结,希望能对各位有所帮助,有问题可以文末留言探讨、补充。如下是整篇文章的结构,所需阅读时间大约20min1. 什么是内存泄漏?内存泄漏:对象已经没有被应用程序使用,但是垃圾回收器没办法移除它们,因为还在被引用着。在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点,首先,这些对象是可达的,即...

2021-06-17 10:00:20 18

原创 2021学Java如何进大厂?10年P8大佬透露方法!

本人普通二本国贸毕业生,大二开始自学Java,一路升级打怪,从实习9k薪资,到现在年薪55W,成功入职蚂蚁金服。这工资是不是少了点?没少哈,蚂蚁的工资和其他的不一样,一半银行卡一半支付宝,这也算是给自家产品拉业绩了~进入程序员这个行业,你会发现更多人会选择自学,作为过来人会告诉你,如果你自学的能够坚持,你反而比培训班出来的更容易获得大厂的青睐,因为自学的小伙伴大的基础更加扎实,而且更乐于动手操作。...

2021-06-16 10:39:30 67

原创 微服务架构设计总结实践

微服务架构介绍微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的类上应用很多SOLID原则。微服务架构是个很有趣的概念,它的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。概念:把一个大型的单个应用程序和服务拆分为数个甚至数十个...

2021-06-10 11:41:15 43

原创 面试题:说说Redis的三大问题和解决方案

Redis经常用于系统中的缓存,这样可以解决目前IO设备无法满足互联网应用海量的读写请求的问题。一、缓存穿透缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起id为-1的数据或者特别大的不存在的数据。有可能是黑客利用漏洞攻击从而去压垮应用的数据库。1. 常见解决方案对于缓存穿透问题,常见的解决方案有以下三种:验证拦截:接口层进行校验,如鉴定用户权限,对ID之类的字段做基础的校验,如...

2021-06-10 11:09:56 178

原创 别再纠结线程池大小 + 线程数量了,没有固定公式的!

线程数和CPU利用率的小测试线程数和CPU利用率的小总结线程数规划的公式真实程序中的线程数附录Java 获取CPU核心数Linux 获取CPU核心数可能很多人都看到过一个线程数设置的理论:CPU 密集型的程序 - 核心数 + 1I/O 密集型的程序 - 核心数 * 2不会吧,不会吧,真的有人按照这个理论规划线程数?线程数和CPU利用率的小测试抛开一些操作系统,计算机原理不谈,说一个基本的理论(不用...

2021-06-08 11:26:01 26

原创 微服务架构及其最重要的 10 个设计模式

软件设计模式是解决软件设计中常见问题的通用、可复用的解决方案。设计模式让我们可以分享通用词汇并使用经实战检验的方案,以免重复造轮子。现在,我将介绍一系列设计模式来实现这些最佳实践。微服务架构的设计模式独享数据库(Database per Microservice)当一家公司将大型单体系统替换成一组微服务,首先要面临的最重要决策是关于数据库。单体架构会使用大型中央数据库。即使转移到微服务架构许多架构...

2021-06-04 11:17:16 26

原创 mybatis plus 看这篇就够了,一发入魂

MyBatis-plus 是一款 Mybatis 增强工具,用于简化开发,提高效率。下文使用缩写 mp来简化表示 MyBatis-plus,本文主要介绍 mp 搭配 Spring Boot 的使用。注:本文使用的 mp 版本是当前最新的3.4.2,早期版本的差异请自行查阅文档官方网站:http://baomidou.com/快速入门1. 创建一个Spring Boot项目,本教程是 mp 搭配 S...

2021-06-04 11:08:55 22

原创 图解Git,从原理上搞懂

基本用法上面的四条命令在工作目录、暂存目录(也叫做索引)和仓库之间复制文件。git add files 把当前文件放入暂存区域。git commit 给暂存区域生成快照并提交。git reset -- files 用来撤销最后一次git add files,你也可以用git reset 撤销所有暂存区域文件。git checkout -- files 把文件从暂存区域复制到工作目录,用来丢弃本地修...

2021-06-04 10:42:28 25

原创 你知道 Redis 服务器接收到一条命令是如何执行的吗?

Hello 大家好,我是阿粉,Redis 作为工作中不可缺少的缓存组件,相信很多小伙伴都会使用到,我们日常使用的时候都是通过代码或者客户端去链接 Redis 服务器来操作数据的。那么一条简单的set name ziyou 命令是如何执行的,中间都经历了哪些过程想必很少会有人去了解。今天阿粉就带大家看一下一条简单的set name ziyou 命令是如何执行的。我们可以看到在执行set name z...

2021-06-03 10:51:15 35

原创 9道很棘手的面试题,大部分人只会3道

棘手的Java面试问题是那些有一些惊喜元素的问题。如果你试图用常识回答一个棘手的问题,你很可能会因为需要一些特定的知识而失败。大多数棘手的Java问题来自于令人困惑的概念,如函数重载和覆盖,多线程,掌握非常棘手,字符编码,检查与未检查的异常和Integer溢出等微妙的Java编程细节。回答棘手的Java问题最重要的是态度和分析思维,即使你不知道答案也会有所帮助。在这篇Java文章中,我们将看到下面...

2021-06-02 10:51:19 19

原创 产品高阶能力:架构图的设计与画法

今天作者和大家分享的是产品架构图的设计与画法,架构图将可视化的具象产品和服务,抽象成信息化、模块化、层次结构以及关联关系清晰的架构,并通过不同分层的交互关系、功能模块的组合、数据和信息的流转,来传递产品的业务流程、商业模式和设计思路。文章结构:基于抽象和复杂对产品架构图的一些思考;产品架构图的设计思考与画法。一、基于抽象和复杂对产品经理个人能力的一些思考日常的工作中,假如你身边坐了一个女程序猿,为...

2021-05-28 09:49:56 42

原创 Spring中毒太深,离开Spring我居然连最基本的接口都不会写了

随着 Spring 的崛起以及其功能的完善,现在可能绝大部分项目的开发都是使用 Spring(全家桶) 来进行开发,Spring也确实和其名字一样,是开发者的春天,Spring 解放了程序员的双手,而等到 SpringBoot出来之后配置文件大大减少,更是进一步解放了程序员的双手,但是也正是因为Spring家族产品的强大,使得我们习惯了面向 Spring 开发,那么假如有一天没有了 Spring,...

2021-05-25 10:58:38 27

原创 美团面试题:缓存一致性,我是这么回答的!

前言一道之前的面试题:如何保证缓存和数据库的一致性?下面介绍几种方案(大家回答的时候最好根据自己的业务,结合下面的方案)文章较长,可以点赞在看方案分析更新缓存策略方式常见的有下面几种:先更新缓存,再更新数据库先更新数据库,再更新缓存先删除缓存,再更新数据库先更新数据库,再删除缓存下面一一介绍!方案一:更新缓存,更新数据库这种方式可轻易排除,因为如果先更新缓存成功,但是数据库更新失败,则肯定会造成数...

2021-05-24 11:53:34 80

原创 使用Spring 原生注解来快速实现 策略模式 + 工厂模式

前言这阵子在做项目组重构的工作,工作中的一部分就是就目前代码库中与企业交互的逻辑抽离出来,单独做一个微服务,实现企业交互逻辑的关注点分离。在这里面我很自然而然的就用到了策略模式 + 工厂模式的方式,包装内部实现细节,向外提供统一的调用方式,有效的减少if/else的业务代码,使得代码更容易维护,扩展。之前看过一些文章,是使用自定义注解+自动BeanProcessor的方式来实现,个人感觉有点麻烦。...

2021-05-21 10:09:29 26

原创 还在写大量 if 来判断?试试用一个规则执行器来替代它

业务场景近日在公司领到一个小需求,需要对之前已有的试用用户申请规则进行拓展。我们的场景大概如下所示:if (是否海外用户) { return false;}if (刷单用户) { return false;}if (未付费用户 && 不再服务时段) { return false}if (转介绍用户 || 付费用户 || 内推用户) { return ...

2021-05-18 10:38:58 24

原创 Java中对象池的本质是什么?(实战分析版)

简介对象池顾名思义就是存放对象的池,与我们常听到的线程池、数据库连接池、http连接池等一样,都是典型的池化设计思想。对象池的优点就是可以集中管理池中对象,减少频繁创建和销毁长期使用的对象,从而提升复用性,以节约资源的消耗,可以有效避免频繁为对象分配内存和释放堆中内存,进而减轻jvm垃圾收集器的负担,避免内存抖动。Apache Common Pool2 是Apache提供的一个通用对象池技术实现,...

2021-05-18 10:25:44 50 1

原创 方法调用:一看就懂,一问就懵?

方法调用是不是很熟悉?那你真的了解它吗?今天就让我们来盘一下它。首先大家要明确一个概念,此处的方法调用并不是方法中的代码被执行,而是要确定被调用方法的版本,即最终会调用哪一个方法。class字节码文件中的方法的调用都只是符号引用,而不是直接引用(方法在实际运行时内存布局中的入口地址),要实现两者的转化,就不得不提到解析和分派了。解析我们之前说过在类加载的解析阶段,会将一部分的符号引用转化为直接引用...

2021-05-14 11:12:25 17

原创 MySQL分表时机:100w?300w?500w?都对也都不对!

导读以交友平台用户中心的user表为例,单表数据规模达到千万级别时,你可能会发现使用用户筛选功能查询用户变得非常非常慢,明明查询命中了索引,但是,部分查询还是很慢,这时候,我们就需要考虑拆分这张user表了。如果此时,我们才去做分表,可能已经太晚了,为什么呢?我以最典型的应用场景:用户筛选功能,以查询年龄在18到24岁的100位女性用户为例:在单表的情况下,我们的SQL是这么写的:SELECT *...

2021-05-14 10:49:55 33

原创 异步编程的几种方式,你知道几种?

近期尝试在搬砖专用语言 Java 上实现异步,起因和过程就不再详述了,总而言之,心中一万头草泥马奔过。但这个过程也没有白白浪费,趁机回顾了一下各种异步编程的实现。这篇文章会涉及到回调、Promise、反应式、async/await、用户态线程等异步编程的实现方案。如果你熟悉它们中的一两种,那应该也能很快理解其他几个。为什么需要异步?操作系统可以看作是个虚拟机(VM),进程生活在操作系统创造的虚拟世...

2021-05-13 11:17:41 44

原创 Switch竟然会报空指针异常,学到了!

前言前几天重新看 《阿里巴巴Java开发手册》有一条这样的规约:出于好奇,打算研究一下!,强迫症,没办法!我们先用一个案例测试一下:public class Test { public static void main(String[] args) { String param = null; switch (param) { cas...

2021-05-12 10:29:14 211

原创 在项目中使用c3p0作为数据库连接池,被技术总监怼了

一、介绍数据库连接是一项非常关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。记得之前做的一个项目,当时的应用程序配置的c3p0数据库连接池,最大允许的连接数是500,结果上线没多久,并发量直接上来了,导致大量的数据插入失败,当晚的心情可想而知~从那一次事故之后,让我对应用程序的数据库连接数有了一次深刻的认识,为了防止再次栽跟头,特意抽了一个时间来编写程序测试案例,用于测试...

2021-05-12 10:00:15 26

原创 SpringCloud 微服务开发JWT认证流程

在微服务开发中中我们首先会通过认证中心获取JWT,然后每次发起后端请求都会将JWT放在请求头中,这时候我们后端需要对这个JWT进行验证判断是否合法及是否有对应请求权限,这一过程主要有两种方案:服务端自主验签方案API网关统一验签方案服务端自主验签方案首先咱们来看服务端验签的架构图。首先梳理下执行流程:第一步,认证中心微服务负责用户认证任务,在启动时从 Nacos 配置中心抽取 JWT 加密用私钥;...

2021-05-11 10:41:06 68

原创 害怕面试被问HashMap?这一篇就搞定了!

搞定HashMap作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java==集合中的精髓==了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白白的,没有足够的内力怕是一时半会...

2021-05-10 10:15:04 37

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除