
技术文档
文章平均质量分 82
架构师三狼
努力 奋斗 加油!
展开
-
28 | 如何使用设计模式优化并发编程?
在我们使用多线程编程时,很多时候需要根据业务场景设计一套业务功能。其实,在多线程编程中,本身就存在很多程数得功能设计模式,学好它们,用好它们,那就是如虎添翼了。今天我就带你了解几种并发编程中的常用的设计模式。线程上下文设计模式线程上下文是指贯穿线程整个生命周期的对象中的一些全局信息。例如,我们比较熟悉的 Spring 中的 ApplicationContext 就是一个关于上下文的类,它在整个系统的生命周期中保存了配置信息、用户信息以及注册的 bean 等上下文信息。这样的解释可能有点抽象,我们不妨通原创 2021-04-22 18:16:45 · 190 阅读 · 0 评论 -
20 |磨刀不误砍柴工:欲知JVM调优先了解JVM内存模型
从今天开始,我将和你一起探讨 Java 虚拟机(JVM)的性能调优。JVM 算是面试中高频问题了,通常情况下总会有人问到:请你讲解下 JVM 的内存模型,JVM 的性能调优做过吗?为什么 JVM 在 Java 中如此重 要?首先你应该指导,运行一个 Java 应用程序,我们必须要先安装 JDK 或者 JRE 包。这是因为 Java 应用在编译后会变成字节码,然后通过字节码运行在 JVM中,而 JVM 是 JRE 的核心组成部分。JVM 不仅承担了 Java 字节码的分析(JIT compiler)和.原创 2021-04-20 07:27:55 · 187 阅读 · 0 评论 -
Java 架构师路线图
一、框架源码专题 1.1 应用框架 Spring 1.1.1 Spring IOC源码剖析 1.1.1.1 整体认知Spring体系 1.1.1.2 理解Spring IOC容器设计原理 1.1.1.3 掌握Bean的生命周期 1.1.1.4 Spring Context装载过程源码分析 1.1.1.4.1 BeanFactoryPostProcessor源码分析 1.1.1.4.2 BeanDefinitionRegistryPostProcess原创 2021-04-04 09:05:39 · 151 阅读 · 0 评论 -
26 | 单例模式:如何创建单一对象优化系统性能
从这一讲开始,我们将仪器探讨设计模式的性能调优。在《Design Patterns:Elements of Reusable Object-Orinented Software》(书见下图)一书中,有23种设计模式的描述,其中,单例设计模式是常用的设计模式之一。无论是在开源框架,还是在我们的日常开发中,单例模式几乎无处不在。什么是单例模式?它的核心在于,单例模式可以保证一个类仅创建一个示例,并提供一个访问它的全局访问点。由于在一个系统中,一个类经常会被使用在不同的地方,通过单例模式,我们可以避免多.原创 2021-02-03 08:56:39 · 365 阅读 · 0 评论 -
06 | Stream如何提高遍历集合效率?
上一讲中,我在讲List集合类,那我想你一定也知道集合的顶端接口Collection,在Java8中,Collection新增了两个流方法,分别时stream()和parallealStream()。 default Stream<E> stream() { return StreamSupport.stream(spliterator(), false); } default Stream<E> parallelStream() { .原创 2021-02-07 09:58:48 · 212 阅读 · 0 评论 -
面试专题:为什么使用线程池?线程池参数原理
为什么使用线程池?降低资源消耗:提高线程的利用率,降低线程创建和销毁的资源消耗提高响应速度:任务来了,直接有线程可用可执行,不需要先创建线程,再执行。对线程进行统一管控处理:线程是稀缺资源,使用线程池可以统一分配调优监控。线程池参数详解corePoolSize 代表核心线程数,也就是正常情况下创建工作的线程数。这些线程创建后并不会消除,而是一种常驻线程。maxinumPoolSize 代表的是最大线程数,它与核心线程数相对应,表示最大允许被创建的线程数,比如当前任务较多,将核心线程数都用完原创 2021-02-27 17:24:03 · 339 阅读 · 0 评论 -
面试专题:sleep()、wait()、join()、yield()的区别
1.锁池所有需要竞争同步锁的线程都会放在锁池当中,比如当前对象的锁已经被其中一个线程得到,则其它线程需要在这个锁池进行等待,当前面的线程释放同步锁侯锁池中的线程去竞争同步锁,当某个线程得到后会进入就绪队列进行等待cpu资源分配。2.等待池当我们调用wait() 方法后,线程会放到等待池中,等待池的线程是不会去竞争同步锁。只有调用了notify() 或notifyAll() 后等待池的线程才会开始去竞争锁,notify() 是随机从等待池选出一个线程放到锁池,而notifyAll() 是将等待池的所有线原创 2021-02-26 16:10:35 · 291 阅读 · 1 评论 -
阿里巴巴Java性能调优实战(2021华山版)
目录一、概述01 | 如何制定性能调优标准?02 | 如何制定性能调优策略?二 、Java 编程性能调优03 | 字符串性能优化不容小觑,百M内存轻松存储几十G数据04 | 慎重使用正则表达式05 | ArrayList还是LinkedList?使用不当性能差千倍06 | Stream如何提高遍历集合效率?07 | 深入浅出HashMap的设计与优化三、多线程性能调优08 | 网络通信优化之I/O模型:如何解决高并发下I/O瓶颈?09 | 网络通信优化之序列化:避免使用Java序.原创 2021-02-04 08:52:28 · 1045 阅读 · 2 评论 -
05 | ArrayList还是LinkedList?使用不当性能差千倍
集合作为一种存储数据的容器,是我们日常开发中使用最频繁的对象类型之一。JDK为开发者提供了一系列的集合类型,这些集合类型使用不同的数据结构来实现。因此,不同的集合类型,使用场景也不同。很多同学在面试的时候,进场会被问到集合的相关问题,比较常见的有ArrayList和LinkedList的区别。相信大部分同学都能回答上:“ArratList是基于数组实现,LinkedList是基于链表实现。”。而在回答使用场景的时候,我发现大部分同学的答案是:“ArrayList和LinkedList在新增、删除元素.原创 2021-02-03 18:58:30 · 431 阅读 · 0 评论 -
03 | 字符串性能优化不容小觑,百M内存轻松存储几十G数据
03 | 字符串性能优化不容小觑,百M内存轻松存储几十G数据从第二个模块开始,我将带你学习Java编程的性能优化。今天我们就从最基础的String字符串优化讲起。String对象是我们使用最频繁的一个对象类型,但它的性能问题却是最容易被忽略的。String作为Java语言中最重要的数据类型,时内存中占据空间最大的一个对象。高效地使用字符串,可以提升系统的整体性能。接下来我们就从String对象的实现、特性以及实际使用中的优化这三个方面入手,深入了解。在开始之前,我想先问你一个效问题,也是我在招聘时原创 2021-01-26 08:04:29 · 252 阅读 · 0 评论 -
Lambda表达式介绍和Stream API解析
Java从0实战WebFluxlambda表达式百度百科:Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包。Lambda 表达式是Java8推出的重要的特性之一(java8新特性介绍),允许把函数作为一个方法的参数传入,是面向函数式编程的思想,一定程度上可以使代码更简洁,它的本质就是一个语法糖。原创 2021-01-19 14:02:56 · 211 阅读 · 0 评论