Loading...
守株阁Java中的条件编译 Back to Home

Java中的条件编译

Created2022-01-12|Updated2026-01-24
|Word Count:7|Reading Time:1mins|Post Views:

Java中的条件编译

Author: magicliang
Link: https://magicliang.github.io/2022/01/12/Java%E4%B8%AD%E7%9A%84%E6%9D%A1%E4%BB%B6%E7%BC%96%E8%AF%91/
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Java
Related Articles
cover
2021-12-08
JDBC 问题
JDBC URL参数解析 参考《mysql JDBC URL参数解析》 JDBC数据源配置.xmind jdbc 调用层次 在创建事务的时候,调用 createTransaction 会先 getConnection。一开始的时候先试用发出两条语句:select 1;set autocommit=1;测试连接可用性。 12345678910112 = {StackTraceElement@24652} "com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)"3 = {StackTraceElement@24653} "com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2482)"4 = {StackTraceElement@24654} "com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.j...
cover
2025-07-29
Java 浮点数精度问题深度解析——从 IEEE 754 到 BigDecimal
0.1 + 0.2 != 0.3——这可能是编程世界中最令人困惑的"Bug"之一。但它不是 Bug,而是 IEEE 754 浮点数标准的必然结果。本文将从二进制表示的底层原理出发,深入剖析浮点数精度丢失的根本原因,并给出 Java 中精确计算的完整解决方案。 Part 1: IEEE 754 标准详解 历史背景 在 IEEE 754 标准(1985 年首版,2008 年修订为 IEEE 754-2008)出现之前,不同的计算机厂商使用不同的浮点数格式,导致同一个程序在不同机器上运行结果不同。IEEE 754 统一了浮点数的表示和运算规则,成为几乎所有现代处理器和编程语言的基础。 浮点数的三个组成部分 IEEE 754 浮点数由三部分组成: 12345(-1)^S × 1.M × 2^(E - bias)S: 符号位(Sign) —— 0 正,1 负E: 指数位(Exponent) —— 偏移后的指数M: 尾数位(Mantissa) —— 小数部分(隐含前导 1) float 与 double 的内存布局 类型 总位数 符号位 指数位 尾数位...
cover
2020-03-01
Java 平台历代特性
Java 9 模块化,JDK 只依赖于 PATH 不依赖于 CLASSPATH。
cover
2026-01-24
Java 线程池笔记
从执行器到线程池(from executor interface to thread pool implementation) Pooling is the grouping together of resources (assets, equipment, personnel, effort, etc.) for the purposes of maximizing advantage or minimizing risk to the users. The term is used in finance, computing and equipment management. ——wikipedia “池化”思想不仅仅能应用在计算机领域,在金融、设备、人员管理、工作管理等领域也有相关的应用。 在计算机领域中的表现为:统一管理IT资源,包括服务器、存储、和网络资源等等。通过共享资源,使用户在低投入中获益。除去线程池,还有其他比较典型的几种使用策略包括: 内存池(Memory Pooling):预先申请内存,提升申请内存速度,减少内存碎片。 连接池(Connection Poo...
cover
2026-02-17
Gradle 完全指南
Gradle 完全指南 全景导图 mindmap root((Gradle)) 核心概念 Project模型 Task系统 生命周期 插件机制 依赖管理 Configuration 依赖解析 版本冲突 传递依赖 构建脚本 Groovy DSL Kotlin DSL 多项目构建 插件生态 Java插件 Spring Boot插件 自定义插件 性能优化 构建缓存 并行构建 增量构建 测试管理 单元测试 集成测试 覆盖率 什么是 Gradle Gradle 是新一代的自动化构建工具,基于 Apache Ant 和 Apache Maven 的概念发展而来。与 Maven 使用 XML 配置不同,Gradle 采用基于 Groovy 或 Kotlin 的领域特定语言(DSL)来声明项目配置,大幅简化了...
cover
2020-04-01
ThreadLocal 的设计模式
ThreadLocal 是 Java 并发编程中实现**线程封闭(Thread Confinement)**的核心工具。本文将从原理到实践,系统性地讲解 ThreadLocal 的设计哲学、内部机制、使用模式以及跨线程传递方案。 原理篇:ThreadLocal 的内部机制 核心设计理念:为什么不用 Map<Thread, Value>? 很多人初次设计线程本地存储时,会想到用一个全局的 Map<Thread, Value> 来存储每个线程的数据。但这种设计有致命缺陷:Thread 对象会被 Map 强引用,导致线程无法被 JVM 回收,造成严重的内存泄漏。 ThreadLocal 采用了相反的设计:让 Thread 持有 Map,而不是让 Map 持有 Thread。每个 Thread 内部都有一个 ThreadLocalMap,用于存储该线程的所有线程本地变量。这样设计的好处是: 线程销毁时,ThreadLocalMap 随之销毁,数据自动清理 ThreadLocal 对象可以被显式管理(如声明为静态变量) 线程内部的存储容器是隐式的,由线程自己管理 ...
avatar
magicliang
关于技术以及人生
Articles
374
Tags
317
Categories
22
Github
Announcement
人生只是,守株待兔
Recent Posts
共和党还剩几个派系?——MAGA、Freedom Caucus 与特朗普的党内权力
共和党还剩几个派系?——MAGA、Freedom Caucus 与特朗普的党内权力2026-04-25
美国警察暴力与大规模监禁深度调查
美国警察暴力与大规模监禁深度调查2026-04-24
沉默的杀手:美军在东南亚留下的未爆弹药深度调查
沉默的杀手:美军在东南亚留下的未爆弹药深度调查2026-04-22
苹果印度产能转移深度调查:一场价值千亿美元的制造业大迁徙
苹果印度产能转移深度调查:一场价值千亿美元的制造业大迁徙2026-04-22
Java栈帧省略机制详解:为什么异常堆栈会消失?
Java栈帧省略机制详解:为什么异常堆栈会消失?2026-04-19
© 2017 - 2026 By magicliangFramework Hexo 8.1.1|Theme Butterfly 5.5.4