- 博客(54)
- 资源 (3)
- 收藏
- 关注
原创 【亲测可用】idea设置mvn默认版本路径,setting路径,仓库路径
摘要:解决IDEA新建项目仍使用旧Maven配置的问题,需分三步操作:1)在欢迎界面通过"Customize→All settings→Maven"设置模板配置并"Save as Default";2)清理用户目录下的旧配置文件;3)检查系统环境变量。验证时需重启IDEA并拉取全新项目检查配置路径。若仍无效可尝试重置默认设置(会清除所有个性化配置)。核心在于正确设置"新项目模板"的默认值。(149字)
2025-12-15 09:01:19
402
原创 CSDN还有人用吗?现在各种AI对话都能解决不少问题
AI助手DeepSeek在解决技术问题(如IDEA的Maven配置)时展现出高效精准的优势,相比传统搜索引擎能更快提供正确答案。这表明技术社区CSDN等平台的用途正在缩小,未来可能只有经过验证的高质量内容才能保持用户关注。AI工具的效率提升正在改变技术问题解决方式。
2025-12-15 08:57:08
94
原创 记一次顽固eazyExcel异常排查
【摘要】本文记录了解决EasyExcel与POI版本冲突问题的过程。错误提示NoMethodError:Font.getIndex()表明POI版本不兼容,解决方案是统一POI版本至5.2.3。通过pom.xml显式指定依赖版本,并排除EasyExcel自带的POI依赖。但后续出现NoClassDefFoundError,发现子模块存在3.2.1版本残留。最终将依赖管理提升至父模块,清除本地仓库旧版本,通过mvn dependency:tree验证版本统一后问题解决。整个处理过程凸显了Maven多模块项目中
2025-10-13 09:25:28
280
原创 IDEA创建SpringBoot项目使用JDK1.8
由于现在还有大量项目使用的jdk版本是1.8,所以今天记录下IDEA创建JDK1.8版本SpringBoot项目的记录。
2025-09-29 11:12:21
700
原创 IDEA启动异常
IDEA启动异常排查记录 首次报错"not point to a valid JVM",更换为JDK11后解决 出现VM配置异常,发现是Helper修改的xms参数问题,最终在环境变量IDEA_VM_OPTIONS中找到并还原配置 IDEA无响应,通过idea.bat加pause排查,确认需升级至JDK17 最后解决任务栏白色图标问题:取消固定后重启 (注:排查过程中保持修改留痕)
2025-09-18 10:27:47
402
原创 详解 Spring 的核心概念:IoC(控制反转)、DI(依赖注入)、AOP(面向切面编程)
本文详细介绍了Spring框架的三个核心概念:IoC(控制反转)、DI(依赖注入)和AOP(面向切面编程)。IoC通过容器管理对象创建和依赖关系,降低耦合度,提高可维护性;DI作为IoC的实现方式,提供构造器、Setter方法和字段三种注入方式。AOP则通过切面、通知、切点等概念实现横切关注点的模块化,支持日志、事务等功能。三者共同构成了Spring框架的基础架构,显著提升了代码的可维护性、可扩展性和复用性。
2025-06-30 09:31:57
827
原创 Springboot之AOP面向切片编程代码demo
摘要:本文介绍了Spring AOP的基本实现方法。首先在pom.xml中添加spring-aop、aspectjweaver和spring-context依赖;然后创建UserService业务类作为切入点;接着定义LoggingAspect切面类,使用@Before注解实现方法调用前日志记录;通过AppConfig配置类启用AspectJ自动代理;最后在Application主类中测试调用。运行时会先执行切面日志再执行业务方法,展示了AOP在不修改业务代码情况下实现横切关注点的能力,提高了代码模块化和可
2025-06-30 09:31:11
313
原创 Springboot 之 DI 依赖反转 代码demo
本文展示了一个Java手动实现依赖注入(DI)的简单示例。通过定义Service接口及其两个实现类(ServiceImplA和ServiceImplB),构建了一个基本DI容器(Container类),使用Map存储接口与实现类的映射关系。客户端代码演示了如何注册服务实现(如ServiceImplA)并通过容器获取实例。该实现允许在不修改客户端代码的情况下切换不同实现(如改用ServiceImplB),体现了DI的核心优势:解耦接口与实现,提高代码灵活性和可维护性。运行结果验证了通过容器注入不同实现会产生相
2025-06-30 09:25:47
346
原创 Springboot 之 IoC(控制反转)代码demo
首先,确保你已经安装了 Java 和 Maven。然后创建一个 Spring Boot 项目,可以通过 Spring Initializr 生成,或者手动创建。实现的简单 IoC(控制反转)示例。这个示例展示了如何通过 Spring 容器管理对象的创建和依赖关系,从而降低代码耦合度。通过这个简单的示例,你可以快速理解 Spring 中的 IoC 和 DI 概念,并将其应用到实际项目中。
2025-06-27 16:41:08
329
原创 JAVA如何三天内成为技术大牛
Java 是一门庞大且复杂的编程语言,想在成为“技术大牛”几乎是不可能的(除非有深厚的基础或天赋异禀)。但如果你的目标是,或者(如面试、项目突击),以下是一个,帮你在有限时间内最大化学习效果。
2025-06-27 15:00:45
233
原创 java的Springboot+mybatis如何平行分表
在Spring Boot + MyBatis项目中实现按月分表(如那么 跨表分页怎么处理呢?比如根据里边一个userId,查询他相关信息并分页。
2025-06-27 14:23:41
1170
原创 JAVA解决超卖问题
Java中防止超卖的常见方案包括:1. 悲观锁(SELECT FOR UPDATE)保证独占访问但性能较低;2. 乐观锁(版本控制)适合读多写少,需处理重试;3. 分布式锁(Redis等)适用于分布式系统但需管理锁;4. 数据库原子操作(UPDATE直接扣减)简单高效;5. 消息队列异步处理实现顺序消费。选择方案需考虑并发量、系统架构和业务需求,如高并发写优先悲观锁或原子操作,分布式环境需采用分布式锁或消息队列。
2025-06-26 16:27:56
588
原创 如何判断java程序是cpu密集还是io密集以及线程池配置
判断Java程序是CPU密集型还是IO密集型的核心方法包括代码分析和性能监测。CPU密集型通常表现为大量计算操作、高CPU使用率及线程处于RUNNABLE状态;IO密集型则多涉及文件/网络操作、低CPU使用率及线程处于等待状态。针对不同类型任务,线程池配置也不同:CPU密集型建议线程数等于CPU核心数;IO密集型可为CPU核心数的1-2倍,并根据I/O性能调整最大线程数。合理配置线程池参数对优化程序性能至关重要。
2025-06-24 11:14:56
784
原创 java线程池核心线程什么时候销毁
默认情况:核心线程不会销毁,除非调用shutdown()或。特殊情况:如果启用了,核心线程会在空闲时间超过后被销毁。强制销毁:通过shutdown()或可以显式销毁所有线程(包括核心线程)。
2025-06-24 10:47:03
647
原创 CompletableFuture介绍
接口,提供了更强大的异步任务编排能力,支持链式调用、异常处理、任务组合等特性。是 Java 8 引入的异步编程核心类,位于。:同步消费结果(无返回值)。:无论成功或失败均处理结果。),并且可以组合多个任务。:创建带返回值的异步任务。:创建无返回值的异步任务。:异步转换结果(默认使用。:任意一个任务完成即触发。:同步执行无输入的任务。:捕获异常并返回默认值。)、支持异步回调(如。:合并两个任务的结果。:等待所有任务完成。
2025-06-21 17:33:22
850
原创 小解简单工厂和抽象工厂
总的来说,简单工厂模式适合于创建单一对象,而抽象工厂模式适合于创建一系列相关对象的家族。两者都能有效地封装对象的创建过程,提高了代码的可维护性和扩展性。简单工厂模式和抽象工厂模式都属于工厂模式的范畴,它们都用于对象的创建,但在实现上有所不同。
2024-02-28 15:25:39
450
原创 小问题详解:OSI七层模型
OSI(Open Systems Interconnection)开放系统互联模型是一个基于通信系统互连的标准化框架,用于不同计算机系统之间的通信。OSI模型将计算机网络通信划分为七个层次,每个层次都有特定的功能和责任,便于理解和管理网络通信。
2024-02-28 14:54:32
1233
原创 2024Java面试题二
可以使用 Collections.unmodifiableXXX() 方法创建一个只读的集合,或者使用 CopyOnWriteArrayList、ConcurrentHashMap 等线程安全的集合类。LinkedList 是基于链表实现的,支持快速插入和删除,适用于写入操作较多的场景。HashMap 和 HashTable 都是键值对存储的集合类,但前者不是线程安全的,后者则是线程安全的。ConcurrentHashMap 是线程安全的 HashMap 实现,它使用了分段锁的思想,可以支持更高的并发度。
2024-02-27 16:30:54
511
原创 2024Java面试题一
重载是指在同一个类中,方法名相同但参数列表不同的多个方法,编译器根据参数列表选择调用不同的方法;多态性指的是同一个方法调用可以有不同的行为,具体表现为父类类型的引用指向子类对象时,通过该引用调用被子类重写的方法,实际上会调用子类的方法。接口是一种更加抽象的类,只包含常量和抽象方法,类似于约定或协议。集合框架提供了一组接口和类用于存储和操作对象集合,常用的集合类包括ArrayList、LinkedList、HashMap等。反射是在运行时获取类的信息并操作类的属性和方法,常用于框架和工具开发。
2024-02-27 16:25:25
1019
原创 SpringBoot事务传播机制
事务传播机制是指在数据库系统中,当多个事务同时存在时,系统需要确定这些事务之间的交互关系和影响范围。在实际应用中,事务传播机制可以用于控制事务的边界和范围,确保事务之间的隔离性和一致性。需要注意的是,不同的数据库和编程框架可能对事务传播机制有所差异,开发人员需要结合具体的技术栈和需求来选择合适的事务传播规则,并确保事务的正确性和稳定性。方法将会加入同一个事务中,如果当前已经存在事务,则加入该事务;:以非事务方式执行操作,如果当前存在事务,则挂起当前事务。:创建一个新事务,如果当前存在事务,则挂起当前事务。
2024-02-23 15:35:32
579
原创 Java架构师之路十三、项目实战:通过实际项目的经验,提高架构师的实战能力和经验
总之,通过参与多样化项目、承担责任和挑战、寻求反馈和总结经验、学习最佳实践、跨学科合作、持续学习和更新知识以及主动承担新的挑战,你可以通过实际项目的经验提高架构师的实战能力和经验。参与多样化项目:尽可能参与各种不同类型的项目,包括规模大小、技术栈、行业领域等方面的多样化项目。持续学习和更新知识:由于技术领域不断发展变化,你需要保持学习的状态,不断更新自己的知识和技能,以适应新的挑战和需求。主动承担新的挑战:在项目中主动寻找新的机会和挑战,比如尝试新的技术、方法或工具,以拓展自己的技术视野和实战经验。
2024-02-22 14:20:04
607
原创 Java架构师之路十二、技术领导力:具备团队管理和技术领导能力,能够带领团队完成复杂的技术项目
总之,通过建立良好的沟通和协作氛围、设定清晰的目标、发挥团队成员的优势、提供支持和资源、管理风险和挑战、激励团队以及持续学习和改进,你可以具备团队管理和技术领导能力,带领团队完成复杂的技术项目。持续学习和改进:作为技术领导者,你需要不断学习和更新自己的技术知识,并不断改进自己的领导能力。设定清晰的目标和期望:明确定义项目的目标、范围和时间表,并向团队传达清晰的期望。发挥团队成员的优势:了解团队成员的技能、兴趣和动机,并根据他们的优势安排任务和责任。管理风险和挑战:在复杂的技术项目中,会遇到各种风险和挑战。
2024-02-22 14:18:13
706
原创 Java架构师之路十一、业务理解:深入理解业务领域,能够将技术应用于业务解决方案中
持续学习和更新知识:由于业务领域和技术都在不断发展变化,要保持对行业动态的关注,进行持续学习和更新知识。实践和经验积累:通过实践项目和参与实际业务案例,提升自己在业务领域的理解和技术应用能力。通过与客户的沟通和交流,深入了解他们的业务目标和期望,从而确定如何将技术应用于解决问题。总之,通过深入了解业务领域、与客户合作、掌握相关技术、跨部门合作、实践经验和持续学习,你可以将技术应用于业务解决方案中,为业务带来更大的价值。通过与不同团队的合作,可以更好地理解业务需求,并找到合适的技术解决方案。
2024-02-22 14:16:32
523
原创 Java架构师之路十、框架和工具:Spring Framework、Spring Boot、Spring Cloud、MyBatis、Hibernate、Dubbo、Zookeeper、Redis等
总的来说,Spring框架是一个功能强大、灵活且广泛应用的Java框架,它提供了丰富的功能和组件,帮助开发者构建高效、可扩展和易维护的企业级应用程序。总的来说,Spring Cloud是一个强大的微服务解决方案,通过提供丰富的工具和框架,使得开发人员能够更加便捷地构建、部署和管理分布式系统。总的来说,Dubbo是一个强大且易于使用的分布式服务框架,通过提供完善的服务治理功能和高性能的RPC通信机制,帮助开发者构建稳定、高效的微服务架构。通过Spring的数据访问模块,开发者可以更加方便地访问和操作数据库。
2024-02-22 14:11:51
1306
原创 Java架构师之路九、设计模式:常见的设计模式,如单例模式、工厂模式、策略模式、桥接模式等
抽象工厂模式提供一个接口,用于创建一系列相关或相互依赖的对象。
2024-02-22 14:04:13
2105
原创 Java架构师之路八、安全技术:Web安全、网络安全、系统安全、数据安全等
组织和个人应采取系统安全的综合措施,以确保系统的可靠性、完整性和保密性,同时持续关注系统安全领域的最新发展,提升系统安全的防护能力。数据安全涉及技术、策略、流程和人员等多个方面,需要综合考虑数据的保密性、完整性和可用性,以及合规性和风险管理等因素。组织和个人应采取综合的网络安全措施,以保护自己的网络资产和敏感信息,并不断跟进最新的安全威胁和解决方案,以持续提升网络安全防护能力。:对数据的整个生命周期进行管理,包括数据收集、存储、传输、处理和销毁等环节,确保数据安全合规,避免数据被滥用或泄露。
2024-02-22 13:47:31
1622
原创 Java架构师之路七、大数据:Hadoop、Spark、Hive、HBase、Kafka等
Hive提供了一种类SQL语言,称为HiveQL,以便将结构化数据映射到Hadoop分布式文件系统中的表中,并提供了数据查询、转换和分析的功能。由于其分布式、高可靠性和高性能的特点,HBase在大数据领域得到了广泛的应用。:Spark提供了丰富的API,支持多种编程语言(如Scala、Java、Python、R等),并提供了交互式的Shell,使得用户可以方便地进行数据处理和分析。此外,Hadoop还有一些其他的相关组件,如Hive、Pig、HBase等,用于支持数据查询、数据清洗和实时数据处理等任务。
2024-02-22 13:39:29
4178
4
原创 Java架构师之路六、高并发与性能优化:高并发编程、性能调优、线程池、NIO、Netty、高性能数据库等。
支持 scatter/gather: Java NIO 提供了分散(scatter)和聚集(gather)的操作方式,允许一个通道的数据同时读入到多个缓冲区中,或者将多个缓冲区中的数据同时写出到一个通道中,这样可以更加灵活地处理数据。keepAliveTime: 非核心线程的存活时间,当线程数超过核心线程数时,多余的空闲线程的存活时间,超过该时间将被销毁。总的来说,Java 线程池是多线程编程中的重要工具,能够提高程序性能、降低资源消耗,并且能够有效地管理线程,确保系统的稳定性和可靠性。
2024-02-22 13:23:35
2223
原创 Java架构师之路五、微服务:微服务架构、服务注册与发现、服务治理、服务监控、容器化等。
在基于Zookeeper的服务注册与发现中,服务提供者将自己的服务注册到Zookeeper中,服务消费者从Zookeeper中获取服务提供者的信息。在基于Nacos的服务注册与发现中,服务提供者将自己的服务注册到Nacos中,服务消费者从Nacos中获取服务提供者的信息。容器化技术的核心是容器,它是一个轻量级、独立的运行单元,包含了应用程序的代码、运行时环境、系统工具和依赖库等,能够在不同的计算环境中保持一致的运行。服务注册与发现:服务注册与发现是服务治理的基础,通过服务注册中心(如Nacos)实现。
2024-02-22 11:26:39
2431
原创 Java架构师之路四、分布式系统:分布式架构、分布式数据存储、分布式事务、分布式锁、分布式缓存、分布式消息中间件、分布式存储等。
锁的实现方式:常见的分布式锁实现方式包括基于数据库的实现(使用行级锁或乐观锁)、基于缓存的实现(使用Redis、Memcached等分布式缓存)、基于ZooKeeper、etcd等分布式协调服务的实现,以及基于分布式锁算法的自定义实现等。缓存穿透和雪崩:分布式缓存需要考虑缓存穿透(即请求的数据在缓存中不存在,导致请求直接访问数据库)和缓存雪崩(即大量缓存同时失效,导致请求集中访问后端存储)等问题,通常通过预热、降级、限流等手段来应对。分布式锁通常用于控制对共享资源的访问,以确保系统的一致性和正确性。
2024-02-22 10:53:50
2473
原创 Java架构师之路三、网络通信:TCP/IP协议、HTTP协议、RESTful API、WebSocket、RPC等。
它使用HTTP协议中的请求方法(GET、POST、PUT、DELETE等)和状态码(200、404、500等)来表示资源的状态和操作,使得API接口具有简单、灵活、可扩展、易于开发等优点。TCP/IP协议栈:TCP和IP协议是互联网通信的核心协议,它们与其他协议(如HTTP、FTP、SMTP等)一起构成了TCP/IP协议栈。与HTTP协议兼容:RESTful API与HTTP协议兼容,使得它可以使用HTTP协议中的各种特性,如缓存、安全性等,提高API接口的性能和安全性。
2024-02-22 10:32:52
2119
原创 Java架构师之路二、数据库:SQL语言、关系型数据库、非关系型数据库、数据一致性、事务管理等。
它们提供了可靠的数据存储和高效的数据查询功能,是传统数据库领域的主要技术。最终一致性(Eventual Consistency):最终一致性是弱一致性的一种形式,它允许系统中的不同节点之间在一段时间内存在数据的不一致,但最终会达到一致的状态。使用INSERT INTO语句可以向表中插入新的数据,使用UPDATE语句可以更新表中的数据,使用DELETE FROM语句可以删除表中的数据。灵活的数据模型和查询语言:非关系型数据库提供了灵活的数据模型和查询语言,可以根据具体的应用场景进行定制化的数据存储和查询。
2024-02-22 10:17:34
1612
原创 Java架构师之路一、Java基础知识:Java语言特性、集合框架、IO流、多线程、反射、注解等基础知识。
Java语言特性是Java编程中非常重要的一部分,包括自动内存管理、跨平台、异常处理、泛型、Lambda表达式等。下面对这些特性进行详细解释:自动内存管理:Java通过垃圾回收机制实现自动内存管理。程序员可以通过new关键字创建对象,不需要手动分配和释放内存,由垃圾回收机制自动回收无用的对象。这种自动内存管理机制可以减少内存泄漏和野指针等问题,提高程序的健壮性和安全性。跨平台:Java程序可以在不同的操作系统上运行,这得益于Java虚拟机(JVM)的存在。
2024-02-22 09:38:46
1192
原创 Java架构师之路前言、确定学习方案
框架和工具:Spring Framework、Spring Boot、Spring Cloud、MyBatis、Hibernate、Dubbo、Zookeeper、Redis等常用框架和工具。框架和工具:Spring Framework、Spring Boot、Spring Cloud、MyBatis、Hibernate、Dubbo、Zookeeper、Redis等常用框架和工具。Java架构师需要具备广泛的知识和技能,包括Java编程、数据库、网络通信、分布式系统、微服务、容器化、性能调优等方面的知识。
2024-02-22 08:58:51
1085
原创 java 基本类型的引用传递方法
String: 用 StringBuffer(线程安全的)基本类型想要引用传递需要用原子类,布尔值:AtomicBoolean。整形:AtomicInteger。
2023-08-11 16:07:32
270
微信公众号蓝牙连接php实现(原生)
2018-12-20
phpExcel二次封装简单调用备用留存
2018-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅