自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 这里有8个流行的Python可视化工具包,你喜欢哪个?

喜欢用 Python 做项目的小伙伴不免会遇到这种情况:做图表时,用哪种好看又实用的可视化工具包呢?之前文章里出现过漂亮的图表时,也总有读者在后台留言问该图表时用什么工具做的。下面,作者介绍了八种在 Python 中实现的可视化工具包,其中有些包还能用在其它语言中。快来试试你喜欢哪个?用 Python 创建图形的方法有很多,但是哪种方法是最好的呢?当我们做可视化之前,要先明确一些关于图像目标的问题:你是想初步了解数据的分布情况?想展示时给人们留下深刻印象?也许你想给某人展示一个内在的形象,一个中庸的形.

2021-12-09 22:55:20 146

原创 面试高频算法难题:数组中的第K个最大元素

面试高频算法难题:数组中的第K个最大元素目是什么意思呢?比如给定的无序数组如下:如果 k=6,也就是要寻找数组中的第6大元素,这个元素是哪一个呢?显然,数组中第一大的元素是24,第二大的元素是20,第三大的元素是17 …第6大的元素是9。让我想想啊……对了,我可以先把无序数组排序,然后数出排序后的第k个元素!方法1:排序法这是最容易想到的方法,先把无序数组从大到小进行排序,排序后的第k个元素,自然就是数组中的第k大元素。先进行排序的话,算法时间复杂度是O(nlogn),性能有些差,有

2021-07-01 17:03:25 267

原创 Java应用诊断工具】「BTrace」基本概念和原理的介绍(1)

Java应用诊断工具】「BTrace」基本概念和原理的介绍(1)系列文章「BTrace」基本概念和初步介绍(1)「BTrace」安装介绍和使用原理(2)- 未完成「BTrace」实战代码进行调试使用(3)- 未完成「BTrace」运行时异常原因分析(4)- 未完成背景说明(痛点分析)线上遇到了问题?服务上线出问题,想增加打印日志怎么办?线上怀疑某个接口慢,想打印接口耗时怎么办?线上某个接口报错,想看看调用的参数和谁调用了怎么办?线上出错了,想看某个对象的数据怎么办?线上出错了,

2021-07-01 16:32:20 268

原创 Java多线程实战 synchronized 锁升级过程

Java多线程实战| synchronized 锁升级过程前言在 JDK 1.6之前,synchronized 还是一个重量级锁,是一个效率比较低下的锁,但是在JDK 1.6后,Jvm为了提高锁的获取与释放效率对(synchronized)进行了优化,引入了 偏向锁 和 轻量级锁 ,从此以后锁的状态就有了四种(无锁、偏向锁、轻量级锁、重量级锁),并且四种状态会随着竞争的情况逐渐升级,而且是不可逆的过程,即不可降级,也就是说只能进行锁升级(从低级别到高级别),不能锁降级(高级别到低级别),意味着偏向锁升级

2021-07-01 16:31:30 192

原创 HashMap中的hash算法中的几个疑问

HashMap中的hash算法中的几个疑问HashMap中哈希算法的关键代码//重新计算哈希值static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);//key如果是null 新hashcode是0 否则 计算新的hashcode}//计算数组槽位 (n - 1) & hashHashMap的细

2021-07-01 16:30:40 282

原创 aop+反射实现电话号加密

aop+反射实现电话号加密背景线上项目涉及大量查询接口中,存在电话号明文展示不合规的问题。如果对每个接口返回结果中电话号相关字段修改相关代码逻辑,则工作量较大花费时间多。因此设计电话号加密注解,减少工作量。1. 引入依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.1

2021-07-01 16:29:19 119

原创 2021最新Spring Security知识梳理

2021最新Spring Security知识梳理一、SpringSecurity 框架简介Spring 是非常流行和成功的 Java 应用开发框架,Spring Security 正是 Spring 家族中的成员。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。 正如你可能知道的关于安全方面的两个主要区域是“认证”和“授权”(或者访问控制),一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorizat

2021-07-01 16:27:38 645

原创 Java技术功底不够,面试十家九家难,面霸究竟是怎样炼成的?

Java技术功底不够,面试十家九家难,面霸究竟是怎样炼成的?《Java面试通关手册》已经很全面很详细了,程序员必备。最近在网上看许多面经的文章,有拿到Offer的,也有凉凉的,这些文章中都有一个共同的特点,就是单单的只有面试题目。而没有面试过程中需要注意的细节和面试心得。导致有些面试者们在面试来临,就去盲目的去刷这些题目,而没有结合自己做过的那些项目中,遇到的一些技术问题会被面试官问道,回答不上导致面试落选或者薪资上不去。不过确实,因为疫情情况一些公司倒闭,有部分Java开发者直接原地失业,也有另外一

2021-06-29 17:28:56 189 1

原创 Java内存区域与垃圾收集算法

Java内存区域与垃圾收集算法前言好几天不更新了,之前说的设计模式相关文章暂时搁置了,因为我发现了一本好书,是由小傅哥编写的《重学Java设计模式》,推荐想学习设计模式的可以购买一本,里面对常见设计模式讲解的非常透彻,提供了设计模式的应用场景以及正反面例子,以及DDD领域驱动设计相关概念。目前我也在学习中,所以设计模式就暂时鸽了,让我先学习学习再说。前些天也没闲着,主要在看Java虚拟机相关的知识,接下来几篇文章主要系统的整理一下这些天接触到的关于Java虚拟机相关的知识点(来源:《深入理解Java虚

2021-06-29 17:28:10 82

原创 Docker 搭建 Nginx + Tomcat 负载均衡

Docker 搭建 Nginx + Tomcat 负载均衡前言随着微服务和容器化技术的兴起,大家或多或少的都听过docker。docker相对于虚拟机来说是一种轻量级的虚拟技术,它的隔离性和可移植性也让它有了更多的应用场景。工作闲暇之余,也曾学习过docker,所以就尝试在一台ECS上用docker搭建一台nginx + 2台tomcat的负载均衡,加深一下对docker的理解。通常在一台机器上搭建负载均衡的时候,需要两个端口不一样的tomcat,但webapps下应用必须一致,一个应用在修改了之后需

2021-06-29 17:26:08 468

原创 95% 的算法都是基于这 6 种算法思想

95% 的算法都是基于这 6 种算法思想算法思想是解决问题的核心,万丈高楼起于平地,在算法中也是如此,95% 的算法都是基于这 6 种算法思想,结下了介绍一下这 6 种算法思想,帮助你理解及解决各种算法问题。1 递归算法1.1 算法策略递归算法是一种直接或者间接调用自身函数或者方法的算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。优缺点:优点:实现简单易上手缺点:递归算法对常用的算法如

2021-06-29 17:25:20 322

原创 3种缓存读写策略都不了解?面试很难让你通过啊兄弟!

3种缓存读写策略都不了解?面试很难让你通过啊兄弟!看到很多小伙伴简历上写了“熟练使用缓存”,但是被我问到“缓存常用的 3 种读写策略”的时候却一脸懵逼。造成这个问题的原因是我们在学习 Redis 的时候,可能只是简单了写一些 Demo,并没有去关注缓存的读写策略,或者说压根不知道这回事。但是,搞懂 3 种常见的缓存读写策略对于实际工作中使用缓存以及面试中被问到缓存都是非常有帮助的!下面我会简单介绍一下自己对于这 3 种缓存读写策略的理解。另外,这 3 种缓存读写策略各有优劣,不存在最佳,需要我们根

2021-06-29 17:24:33 109

原创 Java内存区域与垃圾收集算法

Java内存区域与垃圾收集算法前言好几天不更新了,之前说的设计模式相关文章暂时搁置了,因为我发现了一本好书,是由小傅哥编写的《重学Java设计模式》,推荐想学习设计模式的可以购买一本,里面对常见设计模式讲解的非常透彻,提供了设计模式的应用场景以及正反面例子,以及DDD领域驱动设计相关概念。目前我也在学习中,所以设计模式就暂时鸽了,让我先学习学习再说。前些天也没闲着,主要在看Java虚拟机相关的知识,接下来几篇文章主要系统的整理一下这些天接触到的关于Java虚拟机相关的知识点(来源:《深入理解Java虚

2021-06-25 17:28:42 76

原创 Java 的 hashCode 值怎么生成的?和对象的内存地址有关系?

Java 的 hashCode 值怎么生成的?和对象的内存地址有关系?先看一个最简单的打印System.out.println(new Object());会输出该类的全限定类名和一串字符串:java.lang.Object@6659c656@符号后面的是什么?是 hashcode 还是对象的内存地址?还是其他的什么值?其实@后面的只是对象的 hashcode 值,16进制展示的 hashcode 而已,来验证一下:Object o = new Object();int hashcode

2021-06-25 17:27:55 360

原创 Docker 搭建 Nginx + Tomcat 负载均衡

Docker 搭建 Nginx + Tomcat 负载均衡前言随着微服务和容器化技术的兴起,大家或多或少的都听过docker。docker相对于虚拟机来说是一种轻量级的虚拟技术,它的隔离性和可移植性也让它有了更多的应用场景。工作闲暇之余,也曾学习过docker,所以就尝试在一台ECS上用docker搭建一台nginx + 2台tomcat的负载均衡,加深一下对docker的理解。通常在一台机器上搭建负载均衡的时候,需要两个端口不一样的tomcat,但webapps下应用必须一致,一个应用在修改了之后需

2021-06-25 17:26:39 424

原创 95% 的算法都是基于这 6 种算法思想

95% 的算法都是基于这 6 种算法思想算法思想是解决问题的核心,万丈高楼起于平地,在算法中也是如此,95% 的算法都是基于这 6 种算法思想,结下了介绍一下这 6 种算法思想,帮助你理解及解决各种算法问题。1 递归算法1.1 算法策略递归算法是一种直接或者间接调用自身函数或者方法的算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。优缺点:优点:实现简单易上手缺点:递归算法对常用的算法如

2021-06-25 17:25:51 284

原创 3种缓存读写策略都不了解?面试很难让你通过啊兄弟!

3种缓存读写策略都不了解?面试很难让你通过啊兄弟!看到很多小伙伴简历上写了“熟练使用缓存”,但是被我问到“缓存常用的 3 种读写策略”的时候却一脸懵逼。造成这个问题的原因是我们在学习 Redis 的时候,可能只是简单了写一些 Demo,并没有去关注缓存的读写策略,或者说压根不知道这回事。但是,搞懂 3 种常见的缓存读写策略对于实际工作中使用缓存以及面试中被问到缓存都是非常有帮助的!下面我会简单介绍一下自己对于这 3 种缓存读写策略的理解。另外,这 3 种缓存读写策略各有优劣,不存在最佳,需要我们根

2021-06-25 17:25:03 58

原创 Java知识总结-文件流使用详情

Java知识总结-文件流使用详情文件流字节流:FileIntputStream、FileOutputStream字符流:FileReader、FileWriter对于文本文件(.txt , .java, .c),使用字符流处理对于非文本文件(.jpg , .mp3, .mp4, .avi, .doc, .ppt),使用字节流处理文件字节流输入txt文件package FileInputOutputTest;import java.io.*;import java.io.IOEx

2021-06-24 13:55:11 92

原创 Java 并发包之CountDownLatch

Java 并发包之CountDownLatch前言CountDownLatch适用场景一个主任务由多个子任务组成主任务需要等待子任务完成才能继续执行在正常情况下,主线程是不会等待子线程的代码class CountDownLatchT2 { public static void main(String[] args) throws InterruptedException { Runnable runnable = () -> { t

2021-06-24 13:54:31 444

原创 2021-06-24

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-06-24 13:53:30 52

原创 CountDownLatch:几道锁的保险箱

CountDownLatch:几道锁的保险箱CountDownLatch 是什么?CountDownLatch 一般称为闭锁、计数器,是一种多线程同步工具,属于 AQS 体系的一员。常用于让协调线程等待一组工作线程全部“完成工作“或“满足特定条件"后继续进行下去。但其实也可以和 CyclicBarrier让一组线程全部到达指定点后才继续执行,不过不如 CyclicBarrier简单且不可重用,所以一般一组线程自等待的场景我们倾向于直接使用 CyclicBarrier。CountDownLatch

2021-06-24 13:51:45 156

原创 BIO、NIO、AIO,还傻傻分不清?

BIO、NIO、AIO,还傻傻分不清?我们知道java的I/O模型一共有四种,分别是:传统的BIO,伪异步I/O,NIO和AIO。为了澄清概念和分清区别,我们还是先简单的介绍一下他们的概念,然后再去比较优劣。1.概念澄清1.1 BIOBIO,即Blocking I/O。网络编程的基本模型是Client/Server 模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的Ip 地址和监听端口) ,客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,如果连接建在成功

2021-06-24 13:50:52 105

原创 Arthas 应用诊断利器学习及使用(十一) arthas-boot的默认启动过程

Arthas 应用诊断利器学习及使用(十一) arthas-boot的默认启动过程本文内容基于arthas 3.5.2 版本,介绍arthas-boot的默认启动过程。一.开始使用arthas官网文档中推荐使用arthas-boot.jar的方式来使用arthas。命令如下:curl -O https://arthas.aliyun.com/arthas-boot.jarjava -jar arthas-boot.jar复制代码二.如何debug arthas-boot通过githu

2021-06-24 13:50:04 555

原创 Spring源码环境-5.2.2.RELEASE版本

Spring源码环境-5.2.2.RELEASE版本前言该文章不包括Gradle的安装,并且在源码构建过程中需要翻404,否则容易失败。下载源码如果下载源码时卡住或失败,需要翻过404,或者参考该文章(推荐):www.jianshu.com/p/c72473ad9…git clone git@github.com:spring-projects/spring-framework.git<!--切换tag-->cd spring-frameworkgit checkout v5.2

2021-06-23 14:30:22 440

原创 Spring源码分析(一):从哪里开始看spring源码(系列文章基于Spring5.0)

Spring源码分析(一):从哪里开始看spring源码(系列文章基于Spring5.0)一、概述对于大多数第一次看spring源码的人来说,都会感觉不知从哪开始看起,因为spring项目源码由多个子项目组成,如spring-beans,spring-context,spring-core,spring-aop,spring-web,spring-webmvc等,整个项目结构如图:可能有人会觉得,既然spring是一个IOC容器或者说是一个bean的容器,那么应该从spring-beans看

2021-06-23 14:29:36 358

原创 Spring源码分析和总结

Spring源码分析和总结Spring源码分析和总结我以下呢 就模拟一个请求 从代码上 简单说说 SpringMVC一个请求得流程先来个图image当一个请求(request)过来,进入DispatcherServlet中,里面有个方法叫 doDispatch方法 里面包含了核心流程源码如下:image然后往下看:(DispatcherServlet.java)imagemapperHandler是 ** HandlerExecutionChain (处理器调用链) **类Han

2021-06-23 14:28:49 698

原创 spring源码分析从零到学会调优(一)

spring源码分析从零到学会调优(一) 第一,什么是spring 其实spring是一个公司,而spring公司旗下有很多产品:spring framework,spring boot,spring cloud等等还有续许多产品,如图: 而spring framework是spring公司旗下非常重要的一个主流项目,面试官会问

2021-06-23 14:27:28 79

原创 Spring源码分析——源码分析环境搭建

Spring源码分析——源码分析环境搭建1.在Windows上安装Gradle​ gradle工具类似于maven,用于项目的构建,此处主要用于构建spring源码,以便我们将spring源码导入eclipse。开发环境Java:JDK8(必须是JDK或JRE7以上,使用java -version查看当前电脑java版本)操作系统:Windows安装步骤下载最新的Gradle压缩包:Gradle官网:https://gradle.org/,当前最新版本下载地址:h

2021-06-23 14:26:38 154

原创 Spring源码分析

Spring源码分析一、Spring依赖注入有三种实现方式:1.构造器注入2.Setter注入3.FactoryBean接口注入二、Spring三种配置方式:1.XML2.注解3.Java的配置三、Spring初始化过程:1.初始化beanFactory,加载BeanDefinition的核心类和方法2.初始化bean一个普通分支3.Aop的实现原理这个在getBean里面的AbstractAutowireCapableBeanFactory.initializeBean();里面

2021-06-23 14:25:51 97

原创 spring5.3.x源码阅读环境搭建-gradle构建编译

spring5.3.x源码阅读环境搭建-gradle构建编译文章目录spring5.3.x源码阅读环境搭建-gradle构建编译一、依赖工具二、下载源码三、开始构建四、编译源码五、源码测试六、问题及解决方案附:spring源代码各个模块作用结语码炫课堂技术交流q群:963060292Spring系列生态十分丰富,涉及到各个方面。但是作为Spring生态的核心基础Spring,是最重要的环节,需要理解Spring的设计原理,就需要深度研读Spring源码。本文着重

2021-06-22 15:24:43 945

原创 spring5 源码深度解析-----Spring的整体架构和环境搭建

spring5 源码深度解析-----Spring的整体架构和环境搭建目录概述spring的整体架构1. Core Container2. Data Access/Integration3. Web4. AOP5. Test环境搭建gradle安装源码链接获取源码下载及 IDEA 导入 导入项目遇见问题创建测试项目正文回到顶部概述Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应

2021-06-22 15:23:54 281

原创 Spring 源码编译遇到的坑

Spring 源码编译遇到的坑系统 : Macidea版本 :2019.3gradle :两个版本,4.10.3 和 5.5.1Spring 版本:v5.1.17.RELEASE按照官方给的说明:下载源码,先不要打开,进入源码目录,执行 ./gradlew :spring-oxm:compileTestJava,这个时候它会自动下载gradle 4.10.3 (好吧,我得承认,前前后后,gradle的版本我下载了n个, Spring 的源码版本我也下载了n个, 只有这个编译通过了)导入项目 Impor…

2021-06-22 15:23:07 418

原创 一个线程协同问题,解法多种,趁还没被玩坏赶快开动小脑瓜解决掉他,你应该没问题吧??

###前言不知道大家有没有感觉,小学初中读的一些书,看的一些文章,到现在都印象深刻,反倒是高中学的知识,高考后就慢慢消散,直到遗忘。我想说的是,记得初中学过鲁迅的《藤野先生》,里面有一段话,大意是:久了不联系,有时候想联系,却又无从下笔,到最后就更是不了了之了。我找了下原文:将走的前几天,他叫我到他家里去,交给我一张照相,后面写着两个字道:“惜别”,还说希望将我的也送他。但我这时适值没有照相了;他便叮嘱我将来照了寄给他,并且时时通信告诉他此后的状况。我离开仙台之后,就多年没有照过相,又因为状况也

2021-05-23 22:34:30 149

原创 3年Java开发经验如何要到30W年薪?

3年Java开发经验如何要到30W年薪?这个问题可能很多人会说这只是大企业或者互联网企业工程师才能拿到。也许是的,小公司或者非互联网企业拿两万的不太可能是码农了,应该已经转管理。还有区域问题,这个不在我的考虑范围内,因为这方面除了北上广深杭,其他的地方一般也很难达到。还有人提到这个水平不止2w,其实工资是跟面试表现有关的,也跟其他综合水平有关,比如你是985,top10,或者研究生学历,也或者懂点node,懂点大数据等等,或者表达能力强,击中面试官痛点都会加分。如果你达到我说的水准,起薪就是2w,有其他

2021-05-22 20:06:23 677 1

空空如也

空空如也

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

TA关注的人

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