Git命令 引言本文将系统地介绍 Git 在实际开发中常用的命令及其用法,包括仓库初始化、配置管理、远程操作、分支和标签管理、子模块使用等。对于刚入门的读者,本文能帮助快速了解基础操作;对于已经熟悉 Git 的开发者,也可将其当作一份全面的参考手册或速查表。 创建及配置git init作用git init 用于在当前目录下创建一个新的 Git 仓库。执行后,该目录会被 Git 识别为仓库,并创建 .git 目 2022-04-21 Git Git 版本管理 命令大全
Stream API 引言Java 8引入了StreamAPI,它标志着Java对函数式编程支持的一大步。Stream提供了一个高级抽象,使得集合操作更为简洁,同时提高了多核处理能力的利用。 2022-03-14 JavaSE JavaSE Java8 Stream API
Java8的日期时间类 引言在Java 8之前,日期和时间的管理一直是Java开发中的痛点。java.time包的推出彻底改变了这一局面,提供了一套全新的日期和时间API,解决了旧API如Date和Calendar中存在的问题。 2022-02-15 JavaSE JavaSE Java8
简单了解Vue.nextTick 引言在日常开发中,理解前端框架处理数据和视图更新的机制是非常重要的,尤其是在处理复杂交互和动态内容时。本文通过一个具体的问题实例,探讨了Vue.js中的nextTick函数的重要性和应用。 2022-02-07 Vue Vue 前端
Java并发编程——线程池 引言在高并发环境下,线程创建与销毁的频繁切换会带来额外的开销。线程池通过对线程的复用、可控的队列和多种灵活的拒绝策略,让并发编程在性能、可维护性和扩展性上达到平衡。本文系统介绍了 Java 并发编程中的线程池概念和关键实现方式:从 ThreadPoolExecutor 核心原理到常见线程池类型的应用场景,再到 Fork/Join 框架、线程池管理与调优策略,全方位助力开发者编写更高效的并发程序。 2021-08-23 Java并发编程 JavaSE Java并发编程 线程池
Java并发编程——其他工具类补充 引言在 Java 并发编程中,JDK 除了提供锁、线程池、并发容器等常见核心内容,还包含了一些用于特殊场景的工具类,以满足多线程协同工作的多种需求。LockSupport、CyclicBarrier、Phaser 与 Exchanger 等便是其中典型代表。它们在底层同步机制上各有巧妙设计,在不同应用场景下能发挥巨大作用。本文将带你系统认识这些工具类的工作原理、使用场景与常见示例,为日后编写更高效 2021-08-19 Java并发编程 JavaSE Java并发编程 并发工具类
Java并发编程——Copy-On-Write 引言在高并发读场景下,如果读操作远多于写操作,传统的互斥锁可能成为瓶颈。Copy-On-Write(COW)机制旨在充分利用“读多写少”的特性:对数据结构的写操作时才进行复制,从而极大地降低读操作的竞争与锁开销。本文将从 COW 的原理、在 Java 中的具体实现(CopyOnWriteArrayList、CopyOnWriteArraySet)以及使用注意事项等方面展开,帮助你在特定场景下写出更 2021-08-17 Java并发编程 JavaSE Java并发编程 Copy-On-Write COW
Java并发编程——AQS 引言Java 并发包(java.util.concurrent)为开发者提供了种类丰富的同步工具与并发数据结构,极大简化了多线程编程的难度。其中,AQS(AbstractQueuedSynchronizer)作为核心框架,为各种锁与同步器提供了统一的基础。理解 AQS 的设计理念与工作机制,有助于深入掌握如 ReentrantLock、Semaphore、CountDownLatch、Blocki 2021-08-15 Java并发编程 JavaSE Java并发编程 AQS
Java并发编程——不可变设计 引言在多线程编程中,如何保证数据的一致性与安全性往往是一大挑战。不可变对象在这方面提供了一种极其简洁有效的思路:如果一个对象从创建到销毁都不能被修改,那么不同线程之间自然无需为它的读写发生竞争。本文将由浅入深地讲解不可变对象在 Java 中的定义及实现方式,并结合实际应用场景,说明它为何在高并发下能带来显著的安全与性能优势。 定义不可变对象是指一旦创建后,其内部状态(即成员变量)无法被修改的对象。 2021-08-11 Java并发编程 JavaSE Java并发编程 不可变设计
Java并发编程——无锁 引言在高并发应用中,传统的锁(synchronized、ReentrantLock 等)容易成为性能瓶颈,不仅会造成线程阻塞,也可能引入死锁、优先级反转等问题。无锁编程正是针对这一痛点而生,通过底层的原子操作(尤其是 CAS)实现线程安全,尽可能减少阻塞和上下文切换,使系统在多核环境下保持较高的可扩展性和吞吐量。 概述定义无锁编程是一种在多线程环境中实现线程安全的方法,它通过原子操作来保证数据一致 2021-08-09 Java并发编程 JavaSE Java并发编程 无锁