随笔分类 - Java
摘要:Java里面的当前工作目录 要解决“new FileOutputStream(KEY_PROPERTIES_FILE)生成的文件位置”问题,核心结论是:文件会生成在[当前工作目录](Current Working Directory,CWD),即启动Spring Boot应用的目录。 一、关键概念:
阅读全文
摘要:AOP的用途-动态代理 Spring提供约定,我们只需要使用约定就行了。 AOP最为典型的应用就是对数据库事务的管控。 在获取数据库事务连接、操控事务和释放数据库事务连接的过程中,都需要使用大量的try...catch...finally...语句进行操作,这显然存在大量重复的工作。是否可以替换这些
阅读全文
摘要:CGLIB(Code Generation Library)动态代理的实现原理基于字节码生成技术和继承机制,其核心在于运行时生成目标类的子类,通过方法重写实现代理逻辑。以下是具体实现原理和示例的详细说明: 一、核心实现机制 子类继承 CGLIB通过ASM框架在内存中生成目标类的子类,代理类继承目标类
阅读全文
摘要:以下是关于Java中 BlockingQueue(阻塞队列)的详细总结,涵盖其核心概念、实现类、工作原理及典型应用场景: 一、BlockingQueue 的核心概念 BlockingQueue 是一个支持阻塞操作的线程安全队列,主要用于生产者和消费者模型。其核心特点是: 队列为空时,消费者线程尝试获
阅读全文
摘要:synchronized 的可见性 在 Java 中,synchronized 关键字通过 隐式内存屏障(Memory Barrier) 和 锁机制 自动保障可见性。这些操作是由 JVM(Java 虚拟机)在底层自动实现 的,开发者无需手动干预。以下是具体解释: 一、synchronized 的可见
阅读全文
摘要:https://mp.weixin.qq.com/s/CV_OfVRHgcCsMmNxWK9dMw 1.Future接口 1.1 什么是Future? 在jdk的官方的注解中写道 A {@code Future} represents the result of an asynchronous *
阅读全文
摘要:本文整理完善自下面这两篇优秀的文章: Java 魔法类:Unsafe 应用解析 - 美团技术团队 -2019 Java 双刃剑之 Unsafe 类详解 - 码农参上 - 2021 阅读过 JUC 源码的同学,一定会发现很多并发工具类都调用了一个叫做 Unsafe 的类。 那这个类主要是用来干什么的呢
阅读全文
摘要:原文链接: https://javaguide.cn/java/basis/spi.html 本文来自 Kingshion 投稿。欢迎更多朋友参与到 JavaGuide 的维护工作,这是一件非常有意义的事情。详细信息请看:JavaGuide 贡献指南 。 面向对象设计鼓励模块间基于接口而非具体实现编
阅读全文
摘要:异常 Java 异常类层次结构图概览: Exception 和 Error 有什么区别? 在 Java 中,所有的异常都有一个共同的祖先 java.lang 包中的 Throwable 类。Throwable 类有两个重要的子类: Exception :程序本身可以处理的异常,可以通过 catch
阅读全文
摘要:面向对象基础 面向对象和面向过程的区别 面向过程编程(Procedural-Oriented Programming,POP)和面向对象编程(Object-Oriented Programming,OOP)是两种常见的编程范式,两者的主要区别在于解决问题的方式不同: 面向过程编程(POP):面向过程
阅读全文
摘要:回顾一下字节码 在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运行时比较高效,
阅读全文
摘要:线程 什么是线程和进程? 何为进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,
阅读全文
摘要:位运算符 在Java中,|= 是一个位运算符,称为按位或赋值运算符。它的作用是将左侧变量与右侧表达式进行按位或(OR)操作,并将结果赋值给左侧变量。 对于 config |= system; 这行代码,它的意思是: config 是一个整数变量,用来存储当前的配置状态。 system 是一个整数,代
阅读全文
摘要:Servlet 容器(如 Apache Tomcat)负责管理和运行 Servlet。Tomcat 通过一系列的机制来加载、初始化、处理请求和销毁 Servlet。以下是 Tomcat 如何支持 Servlet 的详细过程: 1. 加载 Servlet 读取 web.xml 配置文件: Tomcat
阅读全文
摘要:在 Java 中,对象的引用管理可以通过四种不同的引用类型来实现,这些引用类型提供了不同程度的内存回收控制。这些引用类型分别是强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)。每种
阅读全文
摘要:线程安全-复合操作 在讨论 boolean 变量的原子性时,需要区分基本操作(如读取和写入)与复合操作(如条件判断和状态更新)。 基本操作的原子性 在 Java 中,对 boolean 变量的基本读取和写入操作是原子性的。这意味着单个的读取或写入操作不会被其他线程中断。例如: boolean fla
阅读全文
摘要:# FFmpeg ## 安装 ## Springboot对FFFmpeg继承 jave2 > https://github.com/a-schild/jave2 依赖: ```xml ws.schild jave-all-deps 3.3.1 ``` 命令: ## 将 实时流 转换为 m3u8文件
阅读全文
摘要:# JNA ## 嵌套Struct的指针的数组的C函数 现在给大家看看最复杂的Struct的例子。 Struct中嵌套的是一个结构体的指针的数组。 C语言代码 ```c struct CompanyStruct2{ long id; wchar_t* name; UserStruct* users[
阅读全文
摘要:1.概念 2.协议 Java发送邮件 简介 JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。虽然JavaMail是
阅读全文

浙公网安备 33010602011771号