![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序员
文章平均质量分 92
Python进阶者。
这个作者很懒,什么都没留下…
展开
-
Java技术功底不够,面试十家九家难,面霸究竟是怎样炼成的?
Java技术功底不够,面试十家九家难,面霸究竟是怎样炼成的?《Java面试通关手册》已经很全面很详细了,程序员必备。最近在网上看许多面经的文章,有拿到Offer的,也有凉凉的,这些文章中都有一个共同的特点,就是单单的只有面试题目。而没有面试过程中需要注意的细节和面试心得。导致有些面试者们在面试来临,就去盲目的去刷这些题目,而没有结合自己做过的那些项目中,遇到的一些技术问题会被面试官问道,回答不上导致面试落选或者薪资上不去。不过确实,因为疫情情况一些公司倒闭,有部分Java开发者直接原地失业,也有另外一原创 2021-06-29 17:28:56 · 186 阅读 · 1 评论 -
Java内存区域与垃圾收集算法
Java内存区域与垃圾收集算法前言好几天不更新了,之前说的设计模式相关文章暂时搁置了,因为我发现了一本好书,是由小傅哥编写的《重学Java设计模式》,推荐想学习设计模式的可以购买一本,里面对常见设计模式讲解的非常透彻,提供了设计模式的应用场景以及正反面例子,以及DDD领域驱动设计相关概念。目前我也在学习中,所以设计模式就暂时鸽了,让我先学习学习再说。前些天也没闲着,主要在看Java虚拟机相关的知识,接下来几篇文章主要系统的整理一下这些天接触到的关于Java虚拟机相关的知识点(来源:《深入理解Java虚原创 2021-06-29 17:28:10 · 82 阅读 · 0 评论 -
Docker 搭建 Nginx + Tomcat 负载均衡
Docker 搭建 Nginx + Tomcat 负载均衡前言随着微服务和容器化技术的兴起,大家或多或少的都听过docker。docker相对于虚拟机来说是一种轻量级的虚拟技术,它的隔离性和可移植性也让它有了更多的应用场景。工作闲暇之余,也曾学习过docker,所以就尝试在一台ECS上用docker搭建一台nginx + 2台tomcat的负载均衡,加深一下对docker的理解。通常在一台机器上搭建负载均衡的时候,需要两个端口不一样的tomcat,但webapps下应用必须一致,一个应用在修改了之后需原创 2021-06-29 17:26:08 · 468 阅读 · 0 评论 -
95% 的算法都是基于这 6 种算法思想
95% 的算法都是基于这 6 种算法思想算法思想是解决问题的核心,万丈高楼起于平地,在算法中也是如此,95% 的算法都是基于这 6 种算法思想,结下了介绍一下这 6 种算法思想,帮助你理解及解决各种算法问题。1 递归算法1.1 算法策略递归算法是一种直接或者间接调用自身函数或者方法的算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。优缺点:优点:实现简单易上手缺点:递归算法对常用的算法如原创 2021-06-29 17:25:20 · 321 阅读 · 0 评论 -
3种缓存读写策略都不了解?面试很难让你通过啊兄弟!
3种缓存读写策略都不了解?面试很难让你通过啊兄弟!看到很多小伙伴简历上写了“熟练使用缓存”,但是被我问到“缓存常用的 3 种读写策略”的时候却一脸懵逼。造成这个问题的原因是我们在学习 Redis 的时候,可能只是简单了写一些 Demo,并没有去关注缓存的读写策略,或者说压根不知道这回事。但是,搞懂 3 种常见的缓存读写策略对于实际工作中使用缓存以及面试中被问到缓存都是非常有帮助的!下面我会简单介绍一下自己对于这 3 种缓存读写策略的理解。另外,这 3 种缓存读写策略各有优劣,不存在最佳,需要我们根原创 2021-06-29 17:24:33 · 108 阅读 · 0 评论 -
Java内存区域与垃圾收集算法
Java内存区域与垃圾收集算法前言好几天不更新了,之前说的设计模式相关文章暂时搁置了,因为我发现了一本好书,是由小傅哥编写的《重学Java设计模式》,推荐想学习设计模式的可以购买一本,里面对常见设计模式讲解的非常透彻,提供了设计模式的应用场景以及正反面例子,以及DDD领域驱动设计相关概念。目前我也在学习中,所以设计模式就暂时鸽了,让我先学习学习再说。前些天也没闲着,主要在看Java虚拟机相关的知识,接下来几篇文章主要系统的整理一下这些天接触到的关于Java虚拟机相关的知识点(来源:《深入理解Java虚原创 2021-06-25 17:28:42 · 76 阅读 · 0 评论 -
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 阅读 · 0 评论 -
Docker 搭建 Nginx + Tomcat 负载均衡
Docker 搭建 Nginx + Tomcat 负载均衡前言随着微服务和容器化技术的兴起,大家或多或少的都听过docker。docker相对于虚拟机来说是一种轻量级的虚拟技术,它的隔离性和可移植性也让它有了更多的应用场景。工作闲暇之余,也曾学习过docker,所以就尝试在一台ECS上用docker搭建一台nginx + 2台tomcat的负载均衡,加深一下对docker的理解。通常在一台机器上搭建负载均衡的时候,需要两个端口不一样的tomcat,但webapps下应用必须一致,一个应用在修改了之后需原创 2021-06-25 17:26:39 · 423 阅读 · 0 评论 -
95% 的算法都是基于这 6 种算法思想
95% 的算法都是基于这 6 种算法思想算法思想是解决问题的核心,万丈高楼起于平地,在算法中也是如此,95% 的算法都是基于这 6 种算法思想,结下了介绍一下这 6 种算法思想,帮助你理解及解决各种算法问题。1 递归算法1.1 算法策略递归算法是一种直接或者间接调用自身函数或者方法的算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。优缺点:优点:实现简单易上手缺点:递归算法对常用的算法如原创 2021-06-25 17:25:51 · 283 阅读 · 0 评论 -
3种缓存读写策略都不了解?面试很难让你通过啊兄弟!
3种缓存读写策略都不了解?面试很难让你通过啊兄弟!看到很多小伙伴简历上写了“熟练使用缓存”,但是被我问到“缓存常用的 3 种读写策略”的时候却一脸懵逼。造成这个问题的原因是我们在学习 Redis 的时候,可能只是简单了写一些 Demo,并没有去关注缓存的读写策略,或者说压根不知道这回事。但是,搞懂 3 种常见的缓存读写策略对于实际工作中使用缓存以及面试中被问到缓存都是非常有帮助的!下面我会简单介绍一下自己对于这 3 种缓存读写策略的理解。另外,这 3 种缓存读写策略各有优劣,不存在最佳,需要我们根原创 2021-06-25 17:25:03 · 58 阅读 · 0 评论 -
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 · 90 阅读 · 0 评论 -
Java 并发包之CountDownLatch
Java 并发包之CountDownLatch前言CountDownLatch适用场景一个主任务由多个子任务组成主任务需要等待子任务完成才能继续执行在正常情况下,主线程是不会等待子线程的代码class CountDownLatchT2 { public static void main(String[] args) throws InterruptedException { Runnable runnable = () -> { t原创 2021-06-24 13:54:31 · 442 阅读 · 0 评论 -
2021-06-24
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-06-24 13:53:30 · 52 阅读 · 0 评论 -
CountDownLatch:几道锁的保险箱
CountDownLatch:几道锁的保险箱CountDownLatch 是什么?CountDownLatch 一般称为闭锁、计数器,是一种多线程同步工具,属于 AQS 体系的一员。常用于让协调线程等待一组工作线程全部“完成工作“或“满足特定条件"后继续进行下去。但其实也可以和 CyclicBarrier让一组线程全部到达指定点后才继续执行,不过不如 CyclicBarrier简单且不可重用,所以一般一组线程自等待的场景我们倾向于直接使用 CyclicBarrier。CountDownLatch原创 2021-06-24 13:51:45 · 155 阅读 · 0 评论 -
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 · 103 阅读 · 0 评论 -
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 · 553 阅读 · 0 评论 -
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 · 439 阅读 · 0 评论 -
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 · 357 阅读 · 0 评论 -
Spring源码分析和总结
Spring源码分析和总结Spring源码分析和总结我以下呢 就模拟一个请求 从代码上 简单说说 SpringMVC一个请求得流程先来个图image当一个请求(request)过来,进入DispatcherServlet中,里面有个方法叫 doDispatch方法 里面包含了核心流程源码如下:image然后往下看:(DispatcherServlet.java)imagemapperHandler是 ** HandlerExecutionChain (处理器调用链) **类Han原创 2021-06-23 14:28:49 · 697 阅读 · 0 评论 -
spring源码分析从零到学会调优(一)
spring源码分析从零到学会调优(一) 第一,什么是spring 其实spring是一个公司,而spring公司旗下有很多产品:spring framework,spring boot,spring cloud等等还有续许多产品,如图: 而spring framework是spring公司旗下非常重要的一个主流项目,面试官会问原创 2021-06-23 14:27:28 · 76 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 · 95 阅读 · 0 评论 -
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 · 939 阅读 · 0 评论 -
spring5 源码深度解析-----Spring的整体架构和环境搭建
spring5 源码深度解析-----Spring的整体架构和环境搭建目录概述spring的整体架构1. Core Container2. Data Access/Integration3. Web4. AOP5. Test环境搭建gradle安装源码链接获取源码下载及 IDEA 导入 导入项目遇见问题创建测试项目正文回到顶部概述Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应原创 2021-06-22 15:23:54 · 278 阅读 · 0 评论 -
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 阅读 · 0 评论