![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA基础讲解与总结
文章平均质量分 96
张彦峰ZYF
不断努力,不断提升!
展开
-
解放代码:识别与消除循环依赖的实战指南
本文讨论软件开发中常见的循环依赖问题及其解决方法。首先介绍了循环依赖在代码中的形成原因,并提出了避免循环依赖的基本原则。其次,详细介绍了使用工具如JDepend来识别项目中的循环依赖,并通过具体案例分析了三种消除循环依赖的方法:提取中介者、转移业务逻辑和采用回调接口。每种方法都结合了实际的代码改造示例和测试用例,帮助读者理解和应用这些技术以优化自己的软件架构和设计。主要思想的编排思路来自极客时间《如何有效识别和解决代码中存在的循环依赖问题?》,当然也有其他的参考和自身的一些思考和优化。原创 2024-06-17 23:05:33 · 6838 阅读 · 0 评论 -
实战指南:理解 ThreadLocal 原理并用于Java 多线程上下文管理
探讨如何基于实现一个高效的上下文管理组件,以解决多线程环境下的数据共享和上下文管理这些问题。通过具体的代码示例和实战展示如何为多线程编程提供一种简洁而高效的上下文管理方案。原创 2024-06-14 00:11:37 · 6539 阅读 · 2 评论 -
Java锁之舞:性能分析与优化之路
在多线程编程中,锁是保证线程安全的重要手段之一,但如何选择合适的锁并进行优化,一直是我们面临的挑战。本博客探讨Java中同步锁的性能分析与优化之路,从使用同步锁和不使用同步锁的性能对比入手,逐步展开对锁的优化手段和技术原理的解析,帮助读者更好地理解和应用Java中的锁机制。原创 2024-06-12 00:22:36 · 6702 阅读 · 0 评论 -
聚焦新版综合编程能力面试考查汇总
业务性编程能力指的是开发人员在理解和实现具体业务需求方面的能力。这不仅包括对编程语言、框架和工具的熟练掌握,还涉及对业务逻辑、流程和领域知识的深入理解和灵活运用。在编程结束后或过程中需要扩展分析考查面试者的知识广度。本文总结常考的几类大题分享来说明具体的内容原创 2024-06-11 00:07:36 · 6414 阅读 · 0 评论 -
超越并发瓶颈:CAS与乐观锁的智慧应用
synchronized 是 Java 内置的同步机制,依赖 JVM 实现,通过进入和退出监视器锁(Monitor Lock)来保证线程的安全性。在高并发情况下,线程可能会频繁地在 BLOCKED 状态和 RUNNABLE 状态之间切换,导致用户态和内核态的频繁切换,从而影响性能。CAS和乐观锁作为两种重要的并发控制机制备受关注。CAS机制直接利用硬件保证原子性,而乐观锁则基于乐观的思想进行并发控制。本文将学习这两种机制的原理、应用及性能特点来进行体会原创 2022-04-25 21:18:46 · 17362 阅读 · 4 评论 -
JDK 19 协程新特性:Project Loom 项目的延续
探讨了协程的定义、发展史和 JDK 19 中的实现原理。协程是一种轻量级的并发编程工具,通过 Continuation 控制流、Scheduler 调度和阻塞操作的改造,实现了非阻塞、高效的并发编程。历史回顾包括协程在不同编程语言中的应用和 Java 协程的发展。JDK 19 中的协程原理深入分析了创建协程的方法、非阻塞 IO 改造、Continuation 的作用以及协程的唤醒机制。总结了协程的核心原理和重要组件。原创 2024-04-25 23:48:15 · 10203 阅读 · 2 评论 -
QLExpress学习使用总结
QLExpress(Quick Language Express)是阿里巴巴开源的一门动态脚本引擎解析工具,起源于阿里巴巴的电商业务,旨在解决业务规则、表达式、数学计算等动态脚本的解析问题。线程安全:QLExpress被设计为线程安全的动态脚本引擎,它使用类型的临时变量,确保在引擎运算过程中的并发场景下的线程安全性。高效执行:为了提高执行效率,QLExpress在编译过程中可以将比较耗时的脚本编译结果缓存到本地机器。原创 2023-11-12 23:39:13 · 29053 阅读 · 1 评论 -
认真来看下正则表达式
快速学习正则基础原创 2023-10-14 20:31:28 · 29773 阅读 · 0 评论 -
深入理解多线程概念、同步与无锁机制
介绍多线程编程的相关概念、同步机制以及无锁编程。从线程的基础概念出发,包括逻辑线程和硬件线程的比较,以及线程、核心和函数的关系。随后,我们探讨了多线程编程的基本原则,包括时间分片、上下文切换、线程安全函数和可重入函数等。接着,我们讨论了为什么需要多线程同步、什么情况需要进行同步以及多线程同步的方式,包括串行化、原子操作和锁等。我们还深入研究了非阻塞的无锁同步机制,如CAS循环和无锁数据结构。最后,我们解释了程序序、内存序、乱序执行、存储缓冲区和失效队列等概念,以帮助更好地理解多线程编程。原创 2023-10-14 20:02:37 · 30175 阅读 · 0 评论 -
Java高频面试基础知识点整理
Java高频面试知识点总结:覆盖高频基础知识考点+高频集合知识点深入分析+高频多线程与并发编程面试题汇总+其他扩展考察等。原创 2016-11-04 14:00:37 · 1677618 阅读 · 2 评论 -
分析SpringBoot启动配置原理
分析SpringBoot启动配置原理:给出整体初步分析和对应流程图,并从三方面进行展开分析(SpringApplication构造过程分析+SpringApplication启动过程分析+SpringBoot自动配置分析)原创 2023-05-27 17:31:59 · 16312 阅读 · 2 评论 -
揭秘CAS:深入理解与应用解析
在并发编程中,Compare-And-Swap(CAS)机制作为一种无锁算法,凭借其高效性和避免线程阻塞的优势,受到广泛关注。CAS不仅在底层实现上有着重要地位,还在实际开发中发挥着关键作用。本文将从CAS的工作原理、在Java中的实现及其增强机制来回顾和加深理解一下CAS。原创 2019-01-17 00:12:31 · 811747 阅读 · 1 评论 -
CompletableFuture回调机制的设计与实现
CompletableFuture回调机制的设计与实现:首先分析Future原理总述与局限性,再次分析CompletableFuture原理与回调机制总结,最后从类图分析、整体流程分析和算法实现分析CompletableFuture回调机制设计,结尾给出简单的使用CompletableFuture注意方面原创 2023-05-02 20:03:33 · 15733 阅读 · 0 评论 -
Reactive Streams介绍与应用分析
Reactive Streams基本知识和具体代码应用举例,加入Reactor原理分析和业务应用中的建议原创 2023-05-01 20:19:36 · 15425 阅读 · 0 评论 -
探索CompletableFuture:高效异步编程的利器
随着现代软件系统的复杂性和用户需求的多样化,异步编程成为了提升系统性能和响应速度的重要手段。在Java领域,CompletableFuture作为Java 8引入的新特性,提供了强大的异步编程能力,极大地简化了多线程和并发任务的处理。本文将深入探讨CompletableFuture的基本功能和使用方法,介绍如何利用其提升程序的并发性能和代码的可维护性。原创 2019-01-22 15:54:29 · 1657786 阅读 · 2 评论 -
guava平时基本常用的基本操作整理
主要针对平时开发中最常用的guava操作做基本的操作总结,并不完善,只整理平时使用较多的地方!原创 2020-07-28 14:51:35 · 17271 阅读 · 6 评论 -
工厂模式和策略模式的综合使用
其实在很多的开发设计中,将工厂模式和策略模式的综合使用的案例是很多的,而且解决的实际问题也一样很多,本次对基本的简单工厂模式和策略模式做简单介绍,重点放在两者结合后的具体应用上做分析和讲解。原创 2020-06-24 14:34:37 · 21511 阅读 · 8 评论 -
Spring AOP理解与研发使用
Spring AOP理解与研发使用:基本理论(基本术语总结+具体开发注意事项+切点正则和指示器规则)+AOP开发应用与分析原创 2020-05-12 22:14:53 · 1645689 阅读 · 3 评论 -
Java中常用的锁总结与理解
对java锁相关内容进行整理分析:乐观锁 VS 悲观锁+自旋锁 VS 适应性自旋锁+无锁 VS 偏向锁 VS 轻量级锁 VS 重量级锁+公平锁 VS 非公平锁+可重入锁 VS 非可重入锁+独享锁 VS 共享锁原创 2020-05-12 17:36:44 · 1662561 阅读 · 3 评论 -
从ReentrantLock理解AQS的原理及应用总结
对AQS做基本的总结,并给出应用案例,然后从ReentrantLock理解AQS的原理及应用(开发中的基本应用指导+框架中的应用展示举例+开发应用举例),重点在AQS原理分析原创 2020-05-12 17:30:44 · 1666059 阅读 · 5 评论 -
对Java线程池ThreadPoolExecutor的理解分析
对Java线程池ThreadPoolExecutor的理解分析:介绍线程池的使用分析和建议,并展开分析线程池的设计和实现,给出常用的四种线程池推荐和举例,最后扩展线程池在业务中的实践分析原创 2020-05-12 17:24:37 · 1665335 阅读 · 3 评论 -
Java中的阻塞队列学习与总结体会
Java中的阻塞队列学习与总结体会:介绍几种阻塞队列的基本知识以及他们的应用,常见的几种加入相关源码分析和应用分析举例原创 2020-05-12 17:10:39 · 1665897 阅读 · 1 评论 -
对红黑树的认识总结
当在红黑树中执行插入操作时,需要考虑两个主要方面:保持二叉搜索树性质和保持红黑性质。以下是插入操作的详细步骤,包括可能的旋转操作和颜色调整。插入操作的基本步骤:首先,将新节点插入到红黑树中,就像在普通的二叉搜索树中一样。新节点会被标记为红色,因为它可能会破坏红黑性质的第一个性质(根节点必须是黑色)。插入新节点后,可能会破坏红黑性质。需要通过一系列的操作来调整以确保所有的红黑性质得到满足。在进行旋转操作之前,需要进行颜色调整以满足红黑性质。原创 2020-05-12 17:06:50 · 1708463 阅读 · 41 评论 -
Optional实战与源码分析
Java 8 引入的新特性Optional类,主要解决空指针异常(NullPointerException)问题。从实际使用来看,Optional对多层判空嵌套有奇效,但如果只是简单的单层判空,确实没有必要去引入Optional。原创 2020-05-12 17:03:32 · 17499 阅读 · 1 评论 -
快速应用模板方法设计模式
模版模式应该是工作中最常用的设计模式之一,直白的讲就是如果的一些处理方式是有一定的模版流程处理的,那么在应用中使用该模式在合适不过了。对于其基本的业务应用,我简单写了以下三个基本的通用模版(业务失败重试机制、业务前置检查流程模版、Thrift远程调用处理模版)来展示,有问题的可以留言纠正,谢谢————————————————版权声明:本文为CSDN博主「张彦峰ZYF」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。.........原创 2020-05-12 16:50:49 · 1659831 阅读 · 5 评论 -
设计模式:快速理解原型模式和应用
一、原型模式的定义与理解(一)基本定义(二)基本理解分析(三)在Spring中的具体体现二、具体简单实现方式(一)实现原型类具备的三个条件(二)具体举例三、深拷贝、浅拷贝与原型模式的解决方案(一)理解复制的含义,去除原有的误解(二)浅拷贝及其带来的问题1.新建一个上司类作为员工类的某个属性2.测试浅拷贝带来的问题(三)通过深拷贝来解决问题四、原型模式的应用场景分析原创 2020-05-12 16:46:00 · 1664863 阅读 · 3 评论 -
SpringBoot启动扩展应用:干预优化+加快启动时间
给出SpringBoot启动配置原理详解分析,并介绍Spring Boot启动过程中可以实现的干预工作,最后给出如何缩短SpringBoot项目的启动时间原创 2020-04-20 13:54:07 · 1728960 阅读 · 10 评论 -
掌握装饰器模式:概念、用法及商品价格策略优化案例
本文系统性地介绍了装饰器模式,从基本概念到实际应用,逐步展开。首先,阐述了装饰器模式的定义和功能,配合结构图和具体实例进行说明。接着,深入探讨了装饰器模式的基本用法,包括接口定义、具体对象初始化、装饰类设计以及其他具体装饰类的实现。在实际案例分析部分,我们通过构建一套商品价格策略优化方案,展示了装饰器模式的强大灵活性。案例步骤包括订单和商品属性类的建立、计算支付金额的接口和基本类设计、优惠券和红包计算类的实现,以及工厂类的组合应用。最后,通过实际操作演示,为读者提供了详实的学习参考和实践指导。原创 2020-04-19 12:36:44 · 1695521 阅读 · 4 评论 -
高频面试题基本总结回顾(含笔试高频算法整理)
1.自我介绍+项目介绍+项目细节/难点提问-------这个主要看个人的经历了,每个人都不一样2.基础知识点考核---------还是可以去增强自己的,也是这次的主要的一些总结思路3.算法题-----------一般都是LeetCode高频题,这个得在找工作之前的好好的练习(d对常见的高频题进行总结分析,见对应的链接提示)原创 2020-04-03 18:13:53 · 1723847 阅读 · 46 评论 -
布隆过滤器介绍和业务使用说明
布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。原创 2019-02-14 14:21:17 · 1646669 阅读 · 2 评论