自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 为什么前后端分离了,我们比从前更痛苦?咋整呢!

目录为什么前后端分离了,你比从前更痛苦?为什么接口会频繁变动? 为什么接口文档永远都是不对的? 为什么测试工作永远只能临近上线才能开始?怎么破? aml-mocker开始 配置 .raml-config.json 入门篇:Mock Server 高级篇:动态 Server总结你有没有遇到过:前端代码刚写完,后端的接口又变了。 接口文档永远都是不对的。 测试工作永远只能临近上线才能开始。为什么前后端分离了,你比从前更痛苦?前后端分离早已经不是新闻,当真正分离之后确遇到了

2020-07-14 14:10:06 240

原创 靠一个HashMap的讲解打动了头条面试官,我的秘诀是

最近收集了一份github标星81.6k的Java面试突击手册,文末查看关注 转发+转发+转发 私信回复关键词 【学习】即可获取~预备知识位运算知识位运算操作是由处理器支持的底层操作,底层硬件只支持01这样的数字,因此位运算运行速度很快。尽管现代计算机处理器拥有了更长的指令流水线和更优的架构设计,使得加法和乘法运算几乎与位运算一样快,但是位运算消耗更少的资源。常用的位运算如下:位与 &(1&1=1 1&0=0 0&0=0)位或 |(...

2020-07-13 15:07:27 655 1

原创 真香定律!用过Gradle之后发现真好用,有点嫌弃Maven了

工作之前,Guide 也是一直使用 Maven 。别人向我安利 Gradle 的时候,我总是不屑一顾,觉得这东西肯定没有 Maven 好,毕竟 Maven 这么多人用对吧!后面,在工作中真正用到它之后,才真正感受到它的好用。我想表达意思是:当我们想要去评判一件事情的好坏之前,比如你的项目技术负责人把构建工具从 Maven 换成了 Gradle ,我们一定要首先了解这件事情的本质。个人感觉 Gradle 很多方面都比 Maven 要更好用!比如 Gradle 的项目依赖文件build.Gradle .

2020-07-13 09:50:35 468

原创 给 Spring Boot 项目减减肥!18.18M 到 0.18M 是如何做到的?

一、前言SpringBoot部署起来虽然简单,如果服务器部署在公司内网,速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼:编译出来的 Jar 包很大,如果工程引入了许多开源组件(SpringCloud等),那就更大了。这个时候如果想要对线上运行工程有一些微调,则非常痛苦二、瘦身前的Jar包添加小助手VX:xuanwo008即可获取独家整理的学习资料!Tomcat在部署Web工程的时候,可以进行增量更新,SpringBoot...

2020-07-11 14:47:15 219

原创 MySQL怎么学习?年薪近百万架构师送“满级“笔记,封神之路重燃

数据库是一个综合系统,其背后是发展了几十年的数据库理论。也许你会觉得数据库并不难,因为你可以熟练地写出SQL,也可以在各个客户端里玩得游刃有余。但就以最常见的MySQL为例,作为程序员,你在使用MySQL的过程中,是不是曾经遇到过类似的问题:为什么我的count(*)这么慢? 为什么我建了索引,却根本没有效果? 为什么我只查一行的语句,也执行这么慢? MySQL对于大表要怎么优化?前段时间,有个大佬面上了某大厂,送给我一批学习资料,整理出来,就形成了以下文档(数据库方面),主要包括MySQL面试

2020-07-11 09:26:16 149

原创 Spring Boot API 接口文档 Swagger 入门(上)

1. 概述 2. 快速入门 Swagger 3. 更好看的 Swagger UI 界面 4. 更强大的 YApi1. 概述目前,大多数系统都采用前后端分离。在享受前后端分离的好处的同时,接口联调往往成为团队效率的瓶颈,甚至产生前后端的矛盾。简单归结来说,有几方面的原因:问题一,接口设计滞后。后端团队往往不喜欢 API 接口设计先行,提前和前端沟通好接口。而在开发阶段的中后期,在后端提供 API 接口后,而这些接口和前端的预期有一些偏差,很容易就产生抱怨,特别是项目周期比较紧张的情况下。 .

2020-07-10 20:16:27 387

原创 腾讯T9纯手写基于SpringCloud+Boot+Docker开发源码笔记

这份笔记中的电商平台移动商城开发+商家管理后台与sso设计+平台管理后台开发是基于Spring Cloud+Spring Boot+Docker开发的,同时每个项目的源代码也是在笔记当中(已上传GitHub)!9 电商平台移动商城开发(源码已上传GitHub)移动商城是电商平台一个非常重要的组成部分,它面向终端用户,为用户提供商品浏览、选购、订单查询和个人信息管理等服务,这些服务分布在不同的应用中,这些应用的设计也分散在各个微服务工程的“wap" 模块中。本章介绍怎么将这些分散的应用合并在一起使用,

2020-07-10 14:22:50 277

原创 面试官常问的31道Java核心面试题,熬夜整理好送给你

这次我花了一周的时间,准备了 31 道 Java 核心面试题,希望能够帮助到读者。01、请说出 Java 14 版本中更新的重要功能Java 14 发布于 2020 年 3 月 17 日,更新的重要功能有:switch 表达式 instanceof 增强表达式,预览功能 文本块,第二次预览 Records,预览功能02、请说出 Java 13 版本中更新的重要功能Java 13 发布于 2019 年 9 月 17 日,更新的重要功能有:文本块,预览功能 switch...

2020-07-08 14:24:23 261

原创 MySQL的索引是什么?怎么优化?

索引类似大学图书馆建书目索引,可以提高数据检索的效率,降低数据库的IO成本。MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说500~800w记录,所以大数据量建立索引是非常有必要的。MySQL提供了Explain,用于显示SQL执行的详细信息,可以进行索引的优化。一、导致SQL执行慢的原因:1.硬件问题。如网络速度慢,内存不足,I/O吞吐量小,磁盘空间满了等。2.没有索引或者索引失效。(一般在互联网公司,DBA会在半夜把表锁了,重新建立一遍索引,因为当你删除某个数据的时候,索引.

2020-07-08 09:32:42 207

转载 Java集合总结

文章目录概述 List ArrayList LinkedList Vector CopyOnWriteArrayList Set HashSet LinkedHashSet TreeSet CopyOnWriteArraySet Queue Map HashMap LinkedHashMap Hashtable TreeMap ConcurrentHashMap概述说起集合,算是三顾茅庐了,在我初学Java的时候,曾接触过集合,那个时候只会用像Collectio

2020-07-07 14:58:14 82

原创 面试官:如何使用缓存优化系统性能?

缓存是我们提高系统性能的一项必不可少的技术,无论是前端、还是后端,都应用到了缓存技术。前端使用缓存,可以降低多次请求服务的压力;后端使用缓存,可以降低数据库操作的压力,提升读取数据的性能。我们将从前端到服务端,系统了解下各个层级的缓存实现,并分别了解下各类缓存的优缺点以及应用场景。前端缓存技术如果你是一位 Java 开发工程师,你可能会想,我们有必要去了解前端的技术吗?不想当将军的士兵不是好士兵,作为一个技术人员,不想做架构师的开发不是好开发。作为架构工程师的话,我们就很有必要去了解.

2020-07-07 09:42:50 1145

原创 教你完美搞定 Spring Boot 反爬虫、防止接口盗刷

kk-anti-reptile 是适用于基于 spring-boot 开发的分布式系统的反爬虫组件。系统要求基于 spring-boot 开发(spring-boot1.x, spring-boot2.x均可) 需要使用 redis工作流程kk-anti-reptile 使用基于 Servlet 规范的的 Filter 对请求进行过滤,在其内部通过 spring-boot 的扩展点机制,实例化一个 Filter,并注入到 Spring 容器 FilterRegistrationBean 中,

2020-07-06 20:23:16 1403

原创 没有微服务项目经验,就别去面试官那里送人头了

又是跟技术战斗的一天!后台都是在问微服务架构的面试题怎么答,想聊聊微服务架构了。微服务架构一跃成为 IT 领域炙手可热的话题也就这两年的事,大量一线互联网公司因为庞大的业务体量和业务需求,纷纷投入了微服务架构的建设中,像阿里巴巴、百度、美团等大厂,很早就已经开始了微服务的实践和应用。一线大厂的带动,让微服务成为了 Java 系程序员面试的必备考点。其中是否具有 Spring Cloud 技术能力的程序员,也是企业招聘中影响薪资的核心要素之一。招聘要求基本都有微服务架构..

2020-07-06 15:26:59 986

原创 什么是UML?为什么要用UML?

什么是UML?UML是Unified Model Language的缩写,中文是统一建模语言,是由一整套图表组成的标准化建模语言。为什么要用UML?通过使用UML使得在软件开发之前, 对整个软件设计有更好的可读性,可理解性,从而降低开发风险。同时,也能方便各个开发人员之间的交流。UML提供了极富表达能力的建模语言,可以让软件开发过程中的不同人员分别得到自己感兴趣的信息。Page-Jones在《Fundamental Object-Oriented Design in UML》 一书中总.

2020-07-06 09:35:01 24352

原创 这份Java学习文档如何做到让面试官都眼红的?让你一路架构冲云霄

JavaGuide 诞生2018-5-7 这一天 ,JavaGuide正式诞生。不知不觉,JavaGuide目前已经接近 81k 的 star 了。实际上,本身开源就不单纯是开源源代码。Github 上也有很多非常不错的非代码类别的项目,感兴趣的可以看看《Github 上 Star 数最多的 10 个项目,看完之后很意外!》这篇文章。《How to Contribute to Open Source(如何为开源做出贡献?)》这篇文章中也指出说:“虽然“开源”通常指软件,但你可以在任何事...

2020-07-03 19:36:49 270

原创 System.gc如何做到暂停整个进程?SystemGC完全解读篇一定要看

JVM的GC一般情况下是JVM本身根据一定的条件触发的,不过我们还是可以做一些人为的触发,比如通过jvmti做强制GC,通过System.gc触发,还可以通过jmap来触发等,针对每个场景其实我们都可以写篇文章来做一个介绍,本文重点介绍下System.gc的原理 或许大家已经知道如下相关的,需要源码的添加小助手VX:xuanwo008 备注好“CSDN”信息概述JVM的GC一般情况下是JVM本身根据一定的条件触发的,不过我们还是可以做一些人为的触发,比如通过jvmti做强制GC,通过System.

2020-07-03 17:35:12 908

转载 《吐血整理》-顶级程序员书单集

你知道的越多,你不知道的越多给岁月以文明,而不是给文明以岁月前言王潇:格局决定了一个人的梦想,梦想反过来决定行为。那格局是什么呢?格局是你能够看见的深度、广度和密度。王潇认为,格局是一本本书搭建起来的,正如她所言:“读书让我知道世界很大,然后才知道推开门去看看这个世界。”之前有一篇文章我写到了几乎是一个技术人从0到1的整个生涯了,其实大家发现根本就没有终点。《程序人生》风雨十年-从大学到技术专家我做了啥?我们的一生其实也基本上都在学习,那提到学习,我第一时间..

2020-07-03 10:39:31 798

原创 这些Mysql索引底层知识你不知道?那还想进大厂?

前言上一篇总结了Mysql的锁机制,通过读者的反映和阅读量显示,总体还是不错的,感兴趣的可以阅读一下[]。写了那么多的Mysql文章,有读者问我是不是dba,工作真的需要掌握那么深吗。我想说的是:我是一名Java全职开发人员不是dba。假如你只满足于日常的crud,你可以放弃这些底层的知识,可以不必学的那么深,若是你想往高处走,这些底层的知识,是你必备的。话不多说,这一篇总结是讲解Mysql的索引,之前写过一篇关于索引的,主要是讲解索引的底层的数据结构B+tree。这一篇是讲解Mysql

2020-07-02 19:55:12 170

转载 Attach机制实现完全解读

Attach是什么在讲这个之前,我们先来点大家都知道的东西,当我们感觉线程一直卡在某个地方,想知道卡在哪里,首先想到的是进行线程dump,而常用的命令是jstack ,我们就可以看到如下线程栈了//添加小助手VX:xuanwo008 即可领取全套资料2014-06-18 12:56:14Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode):"Attach Listener" dae..

2020-07-02 14:48:57 2459

原创 JDK8下的僵尸(无法回收)类加载器

概述现象是有一些类加载器是作为key放到WeakHashMap里的,但是经历过多次full gc之后,依然坚挺地存在内存里,但是从代码上来说这些类加载器是应该被回收的,因为没有任何强引用可以到达这些类加载器了,于是我们做了内存dump,分析了下内存,发现除了一个WeakHashMap外并没有别的GC ROOT途径达到这些类加载器了,那这样一来经过多次FULL GC肯定是可以被回收的,但是事实却不是这样,为了让这个问题听起来更好理解,还是照例先上个Demo,完全模拟了这种场景。Demo首先我们创建

2020-07-01 19:55:05 508

原创 JVM源码分析——Jstat工具怎么用?看这篇就够啦

概述jstat是hotspot自带的工具,和java一样也位于JAVA_HOME/bin下面,我们通过该工具可以实时了解当前进程的gc,compiler,class,memory等相关的情况,具体我们可以通过jstat -options来看我们到底支持哪些类型的数据,譬如JDK8下的结果是:-class-compiler-gc-gccapacity-gccause-gcmetacapacity-gcnew-gcnewcapacity-gcold-gcoldcapacity-gc

2020-07-01 08:57:04 221

空空如也

空空如也

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

TA关注的人

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