后端

Mybatis的代理对象MapperProxy的CURD

上篇-原生mybatis流程 因Mapper是interface,不能实例化对象,所以必须使用动态代理(使用JDK动态代理)创建代理对象MapperProxy,又因Mapper是接口,没有具体的方法体,所以MapperProxy的invoke方法中自行编写方法逻辑,下面介绍CURD的执行过程。 public class MapperProxy<T> implements Invocat

27. Java中的反射机制

1、Java中创建对象的方式 new + 构造方法 反序列化(存储在文件中对象,还原回来) java反射机制 2、已经使用反射的场景 jdbc 加载驱动 Class.forName("com.mysql.jdbc.Driver"); servlet servlet 对象有服务器创建 <servlet-class>com.company.project.servle

【MySQL数据库基础】(六)MySQL 表的约束详解:从基础到实战,拿捏数据合法性!

前言         在 MySQL 数据库开发中,我们总希望存入表中的数据是合法、规范、符合业务逻辑的。虽然数据类型能对字段做基础限制,但面对复杂的业务需求,仅靠数据类型远远不够。比如要求邮箱唯一、用户名不能为空、学生的班级必须是已存在的班级…… 这些需求都需要靠表的约束来实现。         表的约束是数据库保证数据完整性的核心手段,

Netty的内存分配相关知识&零拷贝机制

1. Netty 自己的ByteBuf ByteBuf是为解决ByteBuffer的问题和满足网络应用程序开发人员的日常需求而设计的。 JDK ByteBuffer的缺点: 无法动态扩容 长度固定,无法动态扩展和收缩,当数据大于ByteBuffer容量时,会发生索引越界异常。 API使用复杂 读写的时候需要手工调用flip() 和 rewind() 等方法,使用时需要非常谨慎的

Go语言中的Slice:性能优化技巧

Go语言中的Slice:性能优化技巧1. Slice的基本概念Slice是Go语言中用于存储可变长度序列的一种数据结构,它是对数组的抽象,提供了更加灵活和高效的操作方式。Slice是Go语言中最常用的数据结构之一,理解其内部工作原理和性能优化技巧对于编写高效的Go程序至关重要。Go语言的Slice设计简洁而强大,它可以帮助开发者

JVM调优有什么经验吗?

要明⽩⼀点,所有的调优的⽬的都是为了⽤更⼩的硬件成本达到更⾼的吞吐,JVM的调优也是⼀样,通过对垃圾收集器和内存分配的调优达到性能的最佳。 简单的参数含义 ⾸先,需要知道⼏个主要的参数含义。 eden 1. -Xms设置初始堆的⼤⼩,-Xmx设置最⼤堆的⼤⼩ 2. -XX:NewSize年轻代⼤⼩,-XX:MaxNewSize年轻代最⼤值,-Xmn则是相当于同时配置XX:NewSiz

Python爬虫(40)基于Selenium与ScrapyRT构建高并发动态网页爬虫架构:原理、实现与性能优化

目录 一、引言 二、技术背景 1. 动态页面处理痛点 2. 架构设计目标 三、核心组件详解 1. Selenium Grid集群部署 2. ScrapyRT服务化改造 3. 智能等待策略 四、系统架构图 五、性能优化实践 1. 资源隔离策略 2. 并发控制算法 3. 监控体系 六、总结与展望 🌈Python爬虫相关文章&

Web项目旅游网 day02 优化Servlet&分类数据展示

一、旅游网综合案例——优化Servlet 1.1 优化目的:减少Servlet的数量,将其优化为一个模块一个Servlet,在Servlet中提供不同的方法,完成用户的请求。 1.2 优化图示: 1.3 Idea控制台中文乱码解决:-Dfile.encoding=gb2312 1.4 BaseServlet编写: 1.5 UserServlet改写:将之前的Servlet实现的功能,抽取到User

Leetcode 46. 全排列

题目要求 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2: 输入:nums = [0,1] 输出:[[0,1],[1,0]] 示例 3: 输入:nums = [1] 输出:[