- 博客(26)
- 收藏
- 关注
原创 过滤器和拦截器的区别?
摘要:过滤器(Filter)和拦截器(Interceptor)是JavaWeb中处理请求的两种组件,主要区别在于:1)技术归属不同,Filter属Servlet规范,Interceptor属Spring框架;2)作用范围不同,Filter拦截所有请求,Interceptor仅处理SpringMVC请求;3)执行时机不同,Filter在Servlet层面处理,Interceptor在Controller前后执行;4)功能不同,Filter可修改请求/响应,Interceptor能访问SpringBean。实际
2025-08-29 20:00:00
529
原创 项目中为什么使用SpringBoot?
摘要: SpringBoot通过自动配置和约定优于配置原则,大幅减少传统Spring项目中的冗余配置(如XML、框架集成),使开发者聚焦业务逻辑。其起步依赖(Starter)机制统一管理版本兼容性,避免依赖冲突。嵌入式服务器支持一键部署,提升迭代效率。此外,无缝集成Spring生态组件(如Redis、Security),并内置Actuator监控、日志等生产级工具,降低运维成本。SpringBoot以优化开发效率、部署便捷性和生态兼容性为核心,成为Java后端开发的事实标准,适用于从单体到微服务的各类项目。
2025-08-29 15:21:17
982
原创 Spring Boot有哪些优点?
SpringBoot通过自动配置、起步依赖和嵌入式服务器等特性简化开发流程。自动配置根据依赖自动设置组件(如Tomcat、SpringMVC),起步依赖整合相关库避免版本冲突。内置服务器支持直接运行JAR包,外部化配置支持动态调整参数。同时提供生产级监控和简化测试功能,显著提升开发效率,降低配置成本,适用于从原型到生产环境的全流程开发。
2025-08-22 17:10:36
473
原创 什么是Java中的ABA问题?
Java并发编程中的ABA问题是指当变量值从A变B再变回A时,CAS操作会误认为未变化而错误执行。典型场景是链表节点被复用导致逻辑错误。解决方案是引入版本号机制,确保CAS操作同时验证值和版本号。Java的AtomicStampedReference类通过绑定值和版本号有效解决ABA问题,即使值相同但版本号不同也会使CAS失败。这种方法既能保持CAS的高效性,又能避免ABA问题带来的数据一致性问题。
2025-08-22 16:01:29
512
原创 Spring框架中用到了哪些设计模式,作用是什么?
摘要:Spring框架核心设计模式解析:1)工厂模式(BeanFactory)实现对象创建与使用解耦;2)单例模式(DefaultSingletonBeanRegistry)管理无状态组件;3)代理模式(AOP)实现无侵入增强;4)模板方法模式(JdbcTemplate)封装固定流程;5)观察者模式(ApplicationEvent)支持事件驱动;6)适配器模式(HandlerAdapter)兼容不同处理器。这些模式共同构建了Spring的灵活架构,支持IOC、AOP等核心功能,体现了框架"高内聚
2025-08-21 15:04:53
475
原创 重载和重写的区别?
Java中重载(Overload)和重写(Override)的核心区别在于:重载是同一类中多个同名方法(参数列表不同),解决相似功能命名问题;重写是子类覆盖父类方法(方法名、参数列表、返回值相同),实现行为个性化。重载要求参数列表不同,返回值可不同;重写则要求参数和返回值相同,且子类访问权限不能更严格。重载是编译时多态,重写是运行时多态。简言之,重载看"同名不同参",重写看"父子类同名同参"。
2025-08-18 14:37:01
327
原创 线程和进程区别是什么?
进程和线程是操作系统管理程序执行的核心概念。进程是资源分配的基本单位,拥有独立内存空间,开销大但隔离性强;线程是CPU调度的基本单位,共享进程资源,开销小但相互影响。进程间通信需要系统机制,线程可直接共享内存。进程适合独立任务,线程适合并发子任务。简言之,进程提供独立执行环境,线程实现轻量级并发,二者在资源占用、隔离性和通信方式上各有特点。
2025-08-18 09:00:07
171
原创 JDK 动态代理和 CGLIB 动态代理有什么区别?
JDK和CGLIB动态代理对比:JDK代理基于接口反射实现,需目标类实现接口,生成快但效率较低;CGLIB通过继承目标类生成子类,不依赖接口但无法代理final类/方法,生成慢但运行快。Spring框架会根据目标类自动选择代理方式,JDK8后两者性能差距缩小。关键区别在于实现原理(接口vs继承)、适用条件(有无接口)和性能特点(生成/执行速度)。
2025-08-15 21:30:00
645
原创 JDK8 有哪些新特性?
JDK8是Java的重要里程碑版本,引入了多项革命性特性:1)Lambda表达式简化函数式编程;2)函数式接口支持单抽象方法;3)Stream API实现高效集合操作;4)接口支持默认和静态方法;5)方法引用简化代码;6)全新线程安全的日期时间API;7)Optional类避免空指针异常;8)Nashorn JS引擎提升性能;9)Base64支持、并行数组等改进。这些特性以函数式编程为核心,显著提升了开发效率和代码质量,使JDK8成为长期广泛使用的经典版本。
2025-08-15 15:45:00
857
原创 Java 中的序列化和反序列化是什么?
Java序列化与反序列化是将对象转换为字节流(持久化/网络传输)及反向恢复的过程。需实现Serializable接口,使用ObjectOutputStream/ObjectInputStream操作。注意serialVersionUID保证兼容性,transient字段不参与序列化。应用包括分布式系统、对象持久化等场景,但需注意安全风险。
2025-08-15 09:47:22
419
原创 Java引用拷贝、浅拷贝、深拷贝区别是什么?
Java对象复制有三种方式:1.引用拷贝仅复制引用地址,新旧引用指向同一对象;2.浅拷贝复制对象但不复制引用字段,基本类型独立但引用类型共享;3.深拷贝完全复制对象及所有引用字段,实现完全隔离。引用拷贝效率最高但共享性强,浅拷贝适合无引用字段或允许共享的场景,深拷贝则确保对象完全独立但性能开销较大。选择时应根据实际需求权衡独立性与性能,避免因对象关联导致意外修改。
2025-08-14 10:33:35
685
原创 IDEA 修改插件安装位置
IDEA 默认的配置文件均安装在C盘,使用时间长会生成很多文件,这些文件会占用挤兑C盘空间,所以我们需要修改默认配置文件位置。
2025-02-10 11:54:10
1108
原创 解决element-ui表格添加show-overflow-tooltip后鼠标移入无法复制内容的问题
在element ui的表格组件中,当表格内容超过列宽后,可以使用show-overflow-tooltip属性设置悬浮内容,但是当鼠标移入到悬浮窗时,悬浮窗却直接消失,从而导致超过列宽的内容无法复制。如果需要临时禁用tooltip,将绑定值设为false即可。false可以替换为判定表达式。2、在main.js中引入。如果只在组件中部分使用。在table组件中使用。
2025-02-10 11:53:43
876
1
原创 ImportError: Missing required dependencies [‘numpy‘] 解决办法
pandas 升级后 报上述错误,看网上的介绍基本方法都是卸载重装numpy,卸载重装pandas,甚至卸载重装Anaconda,其实哪种方法核心都是卸载numpy。只所以很多方法都不行,还是因为卸载numpy不彻底,pip uninstall numpy 后,最好去Anaconda3\Lib\site-packages\numpy\目录下看一下,是否有文件没有删除干净,有的话直接删除numpy目录,再pip install numpy,问题应该就解决了。
2025-01-03 09:23:35
503
原创 Python环境搭建(Windows)【超详细】
本文主要讲述如何安装python环境,包括:1.python的安装2.编辑器的安装3.python库的管理4.anaconda的安装。
2025-01-03 09:20:17
6095
原创 Error saving license data.C:\Users\1\AppData\Roaming\JetBrains\IntelliJIdea2024.1\idea.key(拒绝访问。)
idea常见问题
2025-01-02 17:18:24
2736
2
原创 【java.lang.ClassNotFoundException:javax.xml.bind.DatatypeConverter(解决办法)】
方案一:如果jdk版本是8以上的,就降低jdk版本。自己换的版本低点的jdk就可以了,jdk8即可。方案二:在maven中添加依赖。方案三:在maven种添加依赖。
2024-12-28 15:40:04
489
原创 【Please check the Redis logs for details about the RDB error.】
解决redis常用问题
2022-08-20 10:55:14
1488
原创 kali 安装所有工具软件
kali 2020安装所有工具软件(所有工具软件超10G)sudo apt-get install kali-linux-everythingkali2020以前的版本安装sudo apt-get install kali-linux-all
2021-06-26 22:06:13
5424
1
原创 Kali 系统 apt-get update更新失败解决方案
报错信息:root@bogon:/etc/apt# apt-get update && apt-get upgrade && apt-get dist-upgrade Ign:1 http://mirrors.ustc.edu.cn/kali kali InReleaseIgn:2 http://mirrors.ustc.edu.cn/kali-security kali/updates InReleaseErr:3 http://mirrors.ustc.edu.c
2021-06-26 21:57:33
3258
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅