- 博客(25)
- 资源 (6)
- 收藏
- 关注
原创 反射、注解、泛型深度应用
通过getFields()和getDeclaredFields()可以获取字段信息,前者只能获取公共字段(包括继承的),后者可以获取所有声明的字段(不包括继承的)。@Retention注解决定了注解信息的保留级别,SOURCE级别的注解只在源码中存在,CLASS级别的注解保留到字节码中,RUNTIME级别的注解可以在运行时通过反射获取。每个类在加载时,JVM都会为其创建一个对应的Class对象,这个对象包含了类的完整元数据信息,包括类名、父类、接口、字段、方法、构造器等。通过有界通配符可以实现协变和逆变。
2025-07-23 21:48:12
879
原创 并发编程与线程安全
synchronized还具有内存可见性保证,即在释放锁时,会将工作内存中的变量刷新到主内存,在获取锁时,会从主内存重新读取变量值。一个Lock可以关联多个Condition,不同的条件可以精确唤醒特定的等待线程,避免了传统wait/notify机制中的"虚假唤醒"问题。线程池是管理和复用线程的重要工具,它解决了频繁创建和销毁线程带来的性能开销。Compare-And-Swap(CAS)是现代处理器提供的一种原子操作,它比较内存位置的值与期望值,如果相等则更新为新值,整个操作是原子的。
2025-07-23 21:39:50
336
原创 Java高级程序员知识体系
《Java全栈技术体系进阶指南》系统梳理了从语言基础到架构设计的全链路知识体系。内容涵盖:1)Java高阶特性与JVM调优;2)Spring生态与主流中间件;3)分布式理论与微服务实践;4)关系型/NoSQL数据库深度应用;5)DevOps工程化与云原生部署;6)系统架构设计方法论与技术选型策略;7)技术团队协作与管理实践。本框架既包含JVM内存模型、CAP定理等底层原理,又整合了Kubernetes、DDD等现代技术栈,适合中高级开发者构建完整技术认知体系,实现从编码到架构的能力跃迁。
2025-07-23 21:24:51
429
原创 最简单的敏捷的Spring Boot系统开发流程
文章摘要: 本文详细介绍了系统开发全流程,包含六个关键阶段:1)需求分析,包括需求收集、梳理和优先级排序;2)系统设计,涵盖架构设计、数据库设计和接口设计;3)编码实现,从环境搭建到功能开发与测试;4)测试环节,包含单元测试、集成测试和系统测试;5)部署上线,涉及环境配置、应用部署和监控;6)维护优化,包括问题修复、性能提升和持续迭代。每个阶段均以电商系统为例进行说明,提供了SpringBoot框架、MySQL数据库等具体技术方案和实践方法。(150字)
2025-06-02 21:38:16
828
原创 Java 知识系列教程文档
System.out.println("方法执行前的日志:" + joinPoint.getSignature().getName());System.out.println("加密结果: " + Base64.getEncoder().encodeToString(encrypted));System.out.println("加密结果: " + Base64.getEncoder().encodeToString(encrypted));系统左下角搜索框输入“环境变量”,选择“编辑系统环境变量”。
2025-02-20 23:56:34
472
原创 Java 知识系列教程文档
成员变量和成员方法构造方法(有参构造和无参构造)this 关键字的使用静态成员(静态变量、静态方法)集合与数组的区别集合的体系结构(Collection、List、Set、Map 等)IO 流的概念和分类(字节流、字符流)IO 流的体系结构线程的概念和特点线程的创建方式(继承 Thread 类、实现 Runnable 接口)反射的概念和作用反射的优缺点泛型的概念和作用泛型的语法格式注解的概念和作用注解的分类(内置注解、元注解、自定义注解)自定义注解的定义和使用注解处理器的实现。
2025-02-20 23:44:19
753
原创 arthas 阿尔萨斯-1
Arthas 的 trace 命令是一个非常强大的功能,它可以追踪方法的内部调用路径,并输出方法的调用树,同时展示每个方法的调用耗时。例如,假设我们有一个名为 com.example.demo.service.UserService 的类,其中有一个 createUser 的方法,我们想要追踪这个方法的内部调用路径,可以使用 trace com.example.demo.service.UserService createUser。trace 命令每次只能跟踪一级方法的调用链路。
2024-12-04 10:50:19
832
原创 CPU使用率和CPU负载的概念和原理
CPU使用率CPU使用率是指在一定时间内,CPU被使用的时间占总时间的百分比。它反映的是CPU在一段时间内工作状态的忙碌程度。
2024-09-24 14:07:39
870
原创 IntelliJ IDEA | Eclipse 快捷键 对比【按eclipse排序版】
功能 IntelliJ IDEA 快捷键 Eclipse 快捷键 跳转到类 Ctrl + N Ctrl + Shift + T 跳转到文件 Ctrl + Shift + N Ctrl + Shift + R 跳转到符号 Ctrl + Alt + Shift + N Ctrl + O(快速概览) 文件结构弹出窗口 Ctrl + F12 Ctrl + O 返回到上一个工具窗口 F12 Alt + F7 跳转到编辑器(
2024-09-19 11:56:45
1086
原创 IntelliJ IDEA 快捷键 | Eclipse 快捷键 对比
全部展开/全部折叠 | Ctrl + Shift + NumPad+/- | Ctrl + Shift + * / Ctrl + Shift + - || 展开/折叠代码块 | Ctrl + NumPad+/- | Ctrl + Shift + + / Ctrl + Shift + - || 查找下一个/上一个 | F3 / Shift + F3 | Ctrl + K / Ctrl + Shift + K || 跳转到文件 | Ctrl + Shift + N | Ctrl + Shift + R |
2024-09-15 22:11:12
921
原创 设计模式[22种]
设计模式遵循六⼤设计原则;单⼀职责( ⼀个类和⽅法只做⼀件事 )、⾥⽒替换( 多态,⼦类可扩展⽗类 )、依赖 倒置( 细节依赖抽象,下层依赖上层 )、接⼝隔离( 建⽴单⼀接⼝ )、迪⽶特原则( 最少知道,降低耦合 )、开闭 原则( 抽象架构,扩展实现 )设计模式[22种]归类:创建型模式提供创建对象的机制, 能够提升已有代码的灵活性和可复⽤性。 创建者模式包括:⼯⼚⽅法、抽象⼯⼚、⽣成器、原型、单例,这5类。...
2022-04-10 22:33:13
354
原创 异常but was actually of type ‘com.sun.proxy.$Proxy7’
原因:由于找不到准确的代理类可能原因:@Async 的类 没有实现接口,只是一个实现类@EnableAsync 默认使用的是JDK动态代理【只能针对接口】,所以可以通过 @EnableAsync(proxyTargetClass = true)强制指定CGLIB方式【针对类实现代理,主要是对指定的类生成一个子类】如下解释:spring对AOP的支持*如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP* 如果目标对象实现了接口,可以强制使用CGLIB实现AOP
2022-03-07 17:25:27
915
原创 解决 RequestContextHolder.getRequestAttributes()异常
参考文章:(1)空指针异常:解决 RequestContextHolder.getRequestAttributes()为空的问题(2)https://www.cnblogs.com/vae860514/p/11047201.html
2022-03-01 09:54:53
3519
原创 spring设置dao层多個路径
spring设置dao层多個路径記錄一下: <!-- DAO接口所在包名,Spring会自动查找其下的类 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.xxxx.dao,com.xx.xxxxxxxx.dao" /> </be...
2022-02-25 09:45:04
577
转载 覆盖重写 原有SPRING BEAN的几种方式
目录场景方法1 直接在自己工程中建同包同类名的类进行替换方法2 采用@PRIMARY注解方法3 排除需要替换的JAR包中的类方法4 @BEAN 覆盖方法5 使用BEANDEFINITIONREGISTRYPOSTPROCESSOR场景什么情况下要覆写原有的Spring Bean ? 例如引入的第三方jar包中的某个类有些问题,然有没有源码提供或者嫌编译源码太费事,这个时间可以考虑覆写原有的类。方法1 直接在自己工程中建同包同类名的类进行替换方式简单粗暴,可以直接覆..
2021-12-03 16:19:13
5675
1
原创 in unnamed module of loader
in unnamed module of loader记录一下,碰到这个问题,莫名其妙。后来发现是parent的pom的版本低了1个版本。 修正后可以正常!
2021-11-18 09:48:45
2936
转载 STS启动Spring Boot服务的时候无法启动,报错,错误: 找不到或无法加载主类的解决办法
STS(spring tool suite4)启动Spring Boot服务的时候无法启动,报错,错误: 找不到或无法加载主类的解决办法在使用STS(Spring Tools Suite)开发Spring Boot应用的时候,一般来说,只要在pom.xml中的指定SpringBoot的启动类, com.XXXX.Application 然后选中项目,右键Debug As 或者Run As 选择Spring Boot App即可启动服务,但升级了一次STS以后所有服务都无法启动报错,错误: 找不到
2021-11-12 10:00:13
3468
原创 MYSQL语句中的ON DUPLICATE KEY UPDATE使用
主键索引主键索引是唯一索引的特殊类型。数据库表通常有一列或列组合,其值用来唯一标识表中的每一行。该列称为表的主键。在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引时,它还允许快速访问数据。主键索引不能为空。每个表只能有一个主键实例:如INSERT INTO user_bind (`userid`,`type`,`area`,`veri_phone`,`veri_code`) VALUES (2350..
2021-11-09 14:46:54
680
原创 Tomcat启动报ClassFormatException: Invalid byte tag in constant pool: 19错误
更改Tomcat版本为8.5.31(在这之前我用的是7版本,改了版本后就不报错了,因为版本较低造成的错误
2021-09-29 15:54:51
236
原创 spring源码解析之AOP原理(学习)
流程: 1)、传入配置类,创建ioc容器 2)、注册配置类,调用refresh()刷新容器; 3)、registerBeanPostProcessors(beanFactory);注册bean的后置处理器来方便拦截bean的创建; 1)、先获取ioc容器已经定义了的需要创建对象的所有Bean...
2020-01-19 10:21:31
267
触摸屏点菜系统概要设计说明书
2012-03-05
windows下的redis-sentinel集群配置(非常难得哦)
2016-05-19
Visual_SourceSafe简明培训教程
2012-03-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅