自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 收藏
  • 关注

原创 逆向工程API和无头浏览器的区别

(模拟人类操作浏览器的完整过程,不知道数据存放的位置然后查看静态代码里面你需要爬取数据的位置里面没有数据的存放)的区别。这两种方法在爬取动态网页数据时存在本质区别,主要体现在。(需要知道数据真实存在的API位置)和。

2025-06-02 17:42:35 811

原创 判断使用什么技术来爬取数据详细讲解

熟练掌握开发者工具,尤其是Network面板的使用,是高效识别数据来源的不二法门。遇到困难时,按上述流程一步步排查,绝大多数网站的数据加载方式都能被准确识别。判断目标网站使用哪种数据加载形式是爬虫开发的第一步,也是最关键的一步。这是区分服务器端渲染和纯客户端渲染的终极方法之一。判断的核心在于 View Source。

2025-06-02 17:28:05 1053

原创 爬虫的几种方式(使用什么技术来进行一个爬取数据)

千方百计寻找并模拟API请求,这是最有效的方式。仔细研究Network面板。Cookie、Token、动态签名是爬取动态内容的核心门槛。掌握模拟登录和会话保持。requests(+ 逆向API)。websockets。Pillow。JS逆向:浏览器调试工具 +execjsnode.js子进程。查看robots.txt,控制请求频率,避免对目标网站造成过大负担。了解相关法律法规。反爬技术不断进化,爬虫也需要不断调整策略。调试和分析能力是关键。

2025-06-02 17:26:18 1113

原创 爬虫工具链的详细分类解析

以下是针对爬虫工具链的详细分类解析,涵盖和。

2025-06-01 22:19:39 690

原创 介绍一下什么是反射(面试题详细讲解)

反射是 Java 中强大的动态编程工具,广泛应用于框架、动态代理、序列化等场景。合理使用反射可以大幅提升代码的灵活性和扩展性,但需权衡性能和安全问题。

2025-05-24 17:36:52 926

原创 介绍一下java里面的静态变量,静态方法,静态代码块(面试题)

静态方法(Static Methods)和静态变量(Static Variables)是面向对象编程中与直接关联的成员(而非类的实例)。它们的设计目的是为了实现和。。

2025-05-24 16:39:05 479

原创 抽象类、普通类和接口的区别详细讲解(面试题)

抽象类、普通类和接口是面向对象编程中三个核心概念,它们在设计模式、代码复用和扩展性上有不同的作用。下面用详细的对比和示例来讲解它们的区别。通过合理使用抽象类、普通类和接口,可以设计出高内聚、低耦合、易于扩展的代码结构。

2025-05-24 10:57:16 698

原创 Java代码从编写到运行的详细讲解(跨平台,JVM,字节码,机器码)

Java 的跨平台能力通过JVM 隔离操作系统差异编写符合规范的 Java 源码。编译为平台无关的字节码。确保目标系统安装对应版本的 JRE。处理路径、编码等平台相关细节。通过打包和依赖管理简化部署。这种设计使 Java 成为企业级跨平台应用(如 Hadoop、Android 开发)的首选语言。

2025-05-23 15:12:49 1339

原创 SQL语句面试题

ONWHEREUNIONWHEREWHERE:按指定列分组,常与聚合函数(如COUNT、SUM)结合使用。:对分组后的结果进行过滤(类似WHERE,但针对分组)。

2025-05-22 23:20:58 1759

原创 数据库基础面试题(回答思路和面试建议)

以下是针对这些数据库基础问题的详细回答思路和面试回答建议,结合理论、应用场景和实际项目经验展开说明:回答思路:示例回答:加分点:回答思路:示例回答:加分点:回答思路:示例回答:加分点:回答思路:示例回答:加分点:希望这些思路能帮你在面试中清晰展现技术深度!

2025-05-22 23:15:23 1241

原创 深入讲解 Python 中的类与对象

逻辑模块化代码复用复杂系统建模明确区分类属性和实例属性合理使用继承与组合善用特殊方法实现 Pythonic 对象遵循面向对象设计原则注意 Python 特有的实现细节(如 self 参数、MRO 等)

2025-05-16 18:54:19 568

原创 JSON格式(类似于英语在语言中的地位)

JSON 确实是软件开发领域的“数据英语”,其简单性、灵活性和广泛的生态支持使其成为跨系统、跨团队协作的通用语言。然而,就像英语不是所有场景的唯一选择(如学术论文可能用 LaTeX,某些地区用本地语言),JSON 也需要根据实际需求与二进制协议、强类型格式等互补使用。

2025-05-16 14:07:07 872

原创 Python模块和包的详细讲解

是一种用于组织多个模块的层级结构,它通过目录和特殊文件来实现代码的模块化管理。以下是 Python 模块,包的详细讲解。文件的目录(Python 3.3+ 后可以省略,但显式定义更清晰)(模块 A 导入模块 B,同时模块 B 又导入模块 A,会导致错误。是代码组织的基本单位,用于将相关功能封装为可复用的文件。文件即为一个模块,模块名是文件名(不含。Python 会缓存已导入的模块(存储在。包用于组织多个模块,形成层次化结构。在 Python 中,在 Python 中,中),避免重复加载。

2025-05-16 10:57:16 880

原创 Python里面操作文件

在 Python 中,操作文件和本地磁盘主要通过内置的 open()、os、shutil和面向对象的 pathlib实现。

2025-05-15 20:08:16 233

原创 Python里面函数和方法的区别(类比java里面的方法来讲解)

好的!下面我会结合 Python的方法与函数 的对比,并类比 Java的静态方法和实例方法,详细讲解它们的区别和联系,帮助理解两种语言的异同。总得来说就是在类里面的属于方法,因为他需要依存于类。但是函数就不一样了。在java里面没有函数一说。因为所有的都在类里面也都是方法了。在Java里面方法分为静态方法和实例方法。静态方法可以直接通过函数名来直接调用,不需要创造类。实例方法需要创造出实例才能调用类里面的方法。如果交给IOC容器管理,在默认情况下是一个创造一个实例类的。2. 方法(Method)

2025-05-15 00:32:50 1078

原创 Python函数的详细讲解

使用defdef 函数名(参数列表) : """文档字符串(可选)""" 代码块 return 返回值提高代码复用性模块化编程支持多种参数传递方式支持高阶函数和函数式编程通过装饰器灵活扩展功能通过合理使用函数,可以让代码更简洁、更易维护。

2025-05-14 23:51:53 282

原创 在Python里面循环语句的讲解

for循环:适合已知迭代次数或遍历容器。while循环:适合不确定次数的条件循环。灵活使用breakcontinueelse控制流程。掌握推导式、生成器、zip()等高级工具提升效率。通过合理选择循环结构,可以高效处理重复性任务,是Python编程的核心技能之一!

2025-05-14 18:19:17 617

原创 Python里面if语句的讲解

if语句通过条件表达式控制代码执行路径。合理使用elif和else处理多分支逻辑。注意Python的缩进规则和真值测试特性。复杂条件建议拆分为多个变量或使用括号明确优先级。通过掌握这些内容,你可以高效编写基于条件的Python程序逻辑。

2025-05-14 16:40:51 714

原创 Python的(常量池在java里面的叫法)

实现了类似 Java 常量池的内存优化,但机制更简单且范围有限。这些优化是解释器为了提升性能而设计的隐式策略,并非严格的“常量池”结构。开发者应理解这些行为以避免依赖对象标识(在 Python 中,不可变数据类型(如整数、字符串、元组)的某些优化机制确实与 Java 的“常量池”有相似之处,但它们的实现方式和触发条件存在显著差异。Python 对小整数进行了全局缓存,Python 的不可变数据类型通过。)进行逻辑判断,始终使用值比较()以确保代码的健壮性。

2025-05-14 16:28:06 794

原创 Python里面字符串的拼接方法讲解

方法适用场景性能可读性运算符少量、简单拼接低高str.join()大量字符串拼接高中f-string格式化字符串(Python 3.6+)高高复杂格式或旧版本兼容中中操作符旧代码维护低低自动拼接字面值代码中的长字符串拆分高高根据实际需求选择最合适的方法,确保代码高效且易维护。

2025-05-13 21:47:27 339

原创 Python的数据结构详细讲解

类型系统Python 动态类型,所有值均为对象;Java 静态类型,区分基本类型和对象类型。内存与性能Java 的基本类型(如int)直接在栈上分配,效率更高;Python 的所有类型均为堆分配对象。扩展性Python 的容器可混合存储不同类型,Java 容器需指定泛型类型(如不可变性Python 通过内置类型(如tuple)直接支持不可变,Java 需依赖 API 或第三方库。

2025-05-13 17:15:07 562

原创 可变类型,不可变类型的设计和常量池存在原因

通过合理选择可变与不可变类型,并利用常量池优化,可以写出更安全、高效的 Java 代码!的存在,都是为了解决特定的编程问题和优化性能。

2025-05-13 10:04:00 459

原创 基本数据类型和包装类(以int类型为例子讲解)

掌握这些机制,可以避免常见的坑(如包装类比较错误),并写出更高效的代码!在赋值行为和内存管理上有本质区别。

2025-05-13 10:01:29 366

原创 java里面的可变类和不可变类

/ Date 是可变对象!// 防御性拷贝:防止外部修改影响内部状态// 返回拷贝,避免内部数据被修改特性不可变类型(如String可变类型(如内容修改创建新对象,原对象不变直接修改原对象线程安全天然安全需手动同步(如内存优化常量池、缓存机制无特殊优化适用场景多线程、哈希键、配置类单线程高频修改、动态集合操作掌握可变与不可变类型的区别,能帮助你写出更高效、健壮的代码。优先使用不可变对象:除非有明确的修改需求。避免共享可变对象:防止多线程竞争或意外修改。

2025-05-13 09:57:51 890

原创 PyCharm软件下载和配置Python解释器

通过以上步骤,您已成功配置PyCharm和Python解释器,可以开始编写和运行Python代码!

2025-05-11 18:18:07 1183

原创 MongDB数据库在Spring Boot项目里面的简单使用

通过以上步骤,即可在 Spring Boot 项目中集成 MongoDB 并实现基本的 CRUD 操作!如果需要更复杂的查询,可以参考 Spring Data MongoDB 的。以下是在 Spring Boot 项目中集成 MongoDB 的详细步骤,包含。注解或聚合管道(Aggregation Pipeline)。配置、实体定义、Repository 和示例代码。使用 Spring Initializr(定义数据访问层接口,继承。

2025-05-10 09:16:47 1250

原创 MongDB和MySQL的区别

通过对比,可以更清晰地根据业务需求选择合适的数据库。如果需要进一步探讨具体场景,可以继续交流!,它们在设计理念、数据模型、查询语言、扩展性等方面有显著差异。

2025-05-10 09:10:46 1001

原创 MongDB 数据库简单介绍

通过以上内容,你可以快速上手 MongoDB 的基本操作!如果需要进一步学习,建议参考官方文档:https://docs.mongodb.com/,以高性能、高扩展性和灵活的数据模型著称。(类似 JSON 格式的 BSON),适合处理。MongoDB 是一个开源的。

2025-05-10 09:07:20 661

原创 FreeMarke 生成静态模板(存储到MinIo里面)

MinIO是一个高性能的开源对象存储服务,兼容 Amazon S3 API,适用于存储非结构化数据(如图片、视频、日志、静态文件等)。它具备高可用性、分布式部署能力,适合作为云原生应用的存储基础设施。使用 MinIO 存储静态文件(CSS、JS、图片等)。通过工具类便捷管理文件上传。在 Freemarker 模板中直接引用 MinIO 文件地址。前端通过公开 URL 或代理访问静态资源。

2025-05-09 12:41:46 307

原创 FreeMarker 生成静态文件(写在磁盘当中)

/ 示例实体类@Data // Lombok 注解模板设计:编写.ftl模板文件,定义动态占位符和逻辑。数据准备:构建与模板匹配的数据模型(Map 或 Java 对象)。渲染写入:调用 FreeMarker 渲染模板,将结果写入物理文件。访问管理:通过 HTTP 直接访问静态文件或集成到 CDN。此方案适用于需要预生成静态内容以提高性能的场景(如 SEO 优化、高并发页面)。

2025-05-09 10:28:13 669

原创 FreeMarker静态模版基础语法

通过上述步骤,你可以在 Spring Boot 中快速集成 FreeMarker,利用其强大的模板功能实现动态页面渲染。重点掌握集合遍历、条件判断和空值处理,能有效提升开发效率。

2025-05-08 22:36:18 543

原创 Apifox插件推荐(可以进行API接口调试,文档管理,Mock服务)

在 IntelliJ IDEA 中使用可以方便地进行 API 接口调试、文档管理和 Mock 服务。

2025-05-08 18:12:19 934

原创 Redis 集群结构

以下是更详细的逐步指南,涵盖从零开始搭建Redis集群到Spring Boot集成的完整流程,

2025-05-04 23:07:58 335

原创 Redis哨兵(主从架构 + Sentinel)

是用于的配置,而主从架构 + Sentinel 需要使用。

2025-05-04 21:55:51 1040

原创 Redis主从架构

SAVE可以查看这个链接去配置。

2025-05-04 17:59:01 559

原创 Redis主从架构配置 读写分离

BeanReadFrom.REPLICA_PREFERRED // 可替换为自定义策略。

2025-05-04 17:56:25 580

原创 Redis的持久化

根据业务需求合理选择持久化策略,并配合监控、备份和测试恢复流程,才能最大限度保障数据安全。Redis的持久化机制是确保数据安全的关键功能,主要包括。:同时启用RDB和AOF,兼顾快速恢复与数据安全。以下是详细的实现方法及配置推荐,:记录每个写操作命令,以追加日志(:定期将内存数据生成二进制快照(

2025-05-04 16:17:05 631

原创 解决超卖问题

在电商、秒杀等高并发场景中,是一个经典的技术挑战。以下是基于 Spring Boot 项目的,结合多种技术手段实现高并发下的库存安全。

2025-05-02 20:25:41 906

原创 解决缓存击穿问题

也就是说在查询的时候没有在Redis里面找到那么需要在数据库里面进行一个查询然后添加到Redis里面,但是如果一个相同的一个信息进行查询那么会增加压力,那么需要给到一个互斥锁然后进行一个上锁减缓一下压力。核心思想:缓存不设物理过期时间,但在数据中存储逻辑过期时间,由后台任务或访问时异步更新。核心思想:系统启动或数据变更时,主动加载热点数据到缓存。

2025-05-02 18:00:00 982

原创 Redis 解决缓存穿透

只能判断这个实体类是否存在,不能判断里面的属性值是否为null。通过上述方案,可以在 Spring Boot 项目中有效解决缓存穿透问题,保障系统的高可用性和性能。容易犯错的地方是这个判断,在得到的shop实体类的时候不能确保里面的全部属性值都不为null,在 Spring Boot 项目中结合 Redis 解决缓存穿透问题(我。在应用启动时,加载所有合法数据标识(如商品 ID)到布隆过滤器。在查询数据前,先通过布隆过滤器校验请求的合法性。若系统为分布式架构,可使用 Redis 的。

2025-05-01 23:37:05 1079 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除