- 博客(14)
- 收藏
- 关注
原创 Spring AOP(代理模式基础)
相⽐于静态代理,动态代理在创建代理对象上更加的灵活,动态代理类的字节码在程序运⾏时,由 Java反射机制动态产⽣。代理的⾏为可以代理多个⽅法,即满⾜⽣产需要的 同时⼜达到代码通⽤的⽬的。设计⽬的旨在为服务类与客户类之间插⼊其他功 能,插⼊的功能对于调⽤者是透明的,起到伪装控制的作⽤。对应 于代理模式中即:客户类、代理类 、委托类(被代理类)。代理类和委托类有共同的⽗类或 ⽗接⼝,这样在任何使⽤委托类对象的地⽅都可以⽤代理对象替代。为某⼀个对象(委托类)提供⼀个代理(代理类),⽤来控制对这个对象的访问。
2024-03-10 14:49:00
358
1
原创 Spring
3. Spring Data Access(数据访问):由Spring-jdbc、Spring-tx、Spring-orm、Spring-jms和Spring-oxm 5 个模块组成 Spring-jdbc 模块是 Spring 提供的JDBC抽象框架的主要实现模块,⽤于简化 Spring JDBC。2. Spring-AOP:Spring-aop是Spring的另⼀个核⼼模块, 在Spring中,他是以JVM的动态代理技术为基 础,然后设计出了⼀系列的Aop横切实现,⽐如前置通知、返回通知、异常通知等。
2024-03-03 16:28:30
840
1
原创 数据库优化
数据库优化是指通过对数据库的结构、查询语句、索引等方面进行调整和改进,以提高数据库的性能和效率的过程。数据库优化的目标是减少数据库的响应时间、提高数据的访问速度、降低数据库的负载和资源消耗,从而提升系统的整体性能和用户体验。通过表的索引或全表扫描,读取满足条件的数据行,然后在排序缓冲区sort buffer中完成排序操作,所有不是通过索引直接返回排序结果的排序都叫 FileSort排序。1、定义:使用数据库,不管是读操作还是写操作,最终都是要访问磁盘,所以说磁盘的性能决定了数据库的性能。
2024-01-14 20:40:03
1009
1
原创 初学JDBC
false 无效行,当前行没有数据。(1) DML语句影响的行数 (2)DDL语句执行后,执行成功也可能返回0。SQL注入是通过操作输入来修改事先定义好的SQL语句,用以达到执行代码对服务器进行攻击的方法。预编译SQL的执行SQL对象:防止SQL注入。各个数据库厂商去实现这套接口,提供数据库驱动jar包(数据库驱动就是数据库的实现类)。(1)将光标从当前位置向前移动一行 (2)判断当前行是否位有效行。执行存储过程的对象。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
2024-01-07 17:31:35
869
1
原创 mysql的索引
前缀长度: 可以根据索引的选择来决定,而选择性是指不重复的索引(基数)和数据表的记录总数的比值,索引选择性越高则查询效率越高,唯一索引的选择性是1,这是最好的索引选择性,性能也是最好的。在MySQL中,支持hash索引的是Memory引擎,而InnoDB中具有自适应hash功能,hash索引是存储引擎根据B+Tree索引在指定条件下自动构建的。用or分割的条件,如果or前的条件中的列由索引,而后面的列中没有索引,那么涉及的索引都不会被用到。联合索引中,出现返回查询(< , >),范围查询右侧的列索引失效。
2024-01-01 16:59:59
806
原创 SQL语句
ALTER USER '用户名' @ '主机名' IDENTIFIED WITH mysql_native_password BY '新密码';INSERT INTO 表名(字段1,字段2,...)VALUES(值1,值2,...) , (值1,值2,...) , (值1,值2,...);INSERT INTO 表名 VALUES(值1,值2,...) , (值1,值2,...) , (值1,值2,...);执行时机不同:where时分组之前进行过滤,不满足where条件,不参与分组;
2023-12-24 14:25:08
211
1
原创 浅学一下反射
①反射在性能方面会比非反射操作慢,因为反射需要在运行时解析类的信息,而非反射则实在编译时就完成了对信息的解析。注意:①如果该构造方法的权限修饰符是private,那就不能直接创建该构造方法的对象。返回所有公共构造方法对象的数组(将构造方法放到数组中返回数组)。返回所有公共的成员方法对象的数组,包括继承的。返回所有的成员方法的对象的数组,不包括继承。获取方法抛出的异常,返回放有异常类型的数组。优点:可以在运行时动态的加载类,并调用方法来访问他的字段。三、根据获取到的class对象来获取并使用它的内容。
2023-12-16 08:56:22
44
1
原创 浅学IO流
③对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已.它可以是存在的,也可以是不存在的.将来是要通过具体的操作把这个路径的内容转换为具体存在的。②read(byte[] buffer):每次用一个字节数组去读取数据,返回字节数组读取了多少个字节,如果发现没有数据可读,则会返回-1。②File[] listFiles():返回一个File数组,表示该File目录中的所有的子文件或目录。④mkdirs():创建由此File表示的目录,包括任何必需但不存在的父目录。
2023-12-10 17:15:38
47
1
原创 初识集合框架
与HashSet不同的是:在增添数据数据时,如果两个相同的对象增添到了同一个位置,HashSet会将后加进来的那个元素舍弃,HashMap则会将原来的那个元素进行覆盖。⑦| int size() | 集合的长度,也就是集合中键值对的个数 |①迭代器的实现:Iterator<E> iterator():返回此集合中的迭代器,通过集合对象的iterator()方法得到。在java中叫做“Entry对象”。
2023-12-03 18:53:09
50
1
原创 简单的理解和使用泛型
②<类型1,类型2....>:指定多种类型的格式,多种类型之间用“,”隔开;>:表示元素类型未知的ArrayList,它的元素可以匹配任何类型;定义实现类时,未明确泛型接口的类型,定义和接口相同泛型,创建实现类对象时明确泛型的具体类型。①<类型>:指定一种类型的格式,尖括号内可以任意书写,一般只用一个字母;eg:<E>、<T>格式:class 实现类<E> implements 泛型接口<E>{重写泛型接口中的抽象方法}①如果在定义类、方法、接口时,如果类型不确定,就可以定义泛型类、泛型方法、泛型接口;
2023-11-24 19:56:19
47
原创 JAVA中常用的一些基础API
而Object中的这个方法是用的“==”,如果是简单的变量用“==”是比较内容的,但是现在是用来比较两个对象,所以是比较的两个对象地址是否相同(“重点”)。String类代表字符串,java程序中的所有字符串文字,都被实现为此类的实例也就是说,java程序中所有的双引号字符串,都是String类的对象。⑦.replace(将被修改的字符串,修改为该字符串)方法:输入字符串之后,识别将被修改的字符串,并把该字符串修改为需要的字符串。②不管是java自带的类还是自己创建的类都继承了Object类。
2023-11-20 13:55:46
85
1
原创 数组和链表
③空间分配方面:数组在静态存储分配情形下,存储的元素数量有限,在动态存储分配情形下,虽然存储空间可以扩充,但是需要移动大量元素,会导致操作效率降低,而且如果内存中没有更大块的连续存储空间,将导致分配失败;①存储方面:数组存储是将元素连续的存储在内存中,并且数组占用的内存较少。③链表插入和删除效率高,因为链表插入和删除只需要修改此元素前一个元素的指针指向此元素,此元素指针在指向后一个元素即可。②通过下标查询效率低,因为是间断的内存空间,只能通过指针得到下一个元素的位置,所以可能需要从第一个开始慢慢往后找;
2023-10-16 17:14:16
42
1
原创 java基础语法(循环篇)
②执行条件判断语句,看其结果是true还是false,如果是false,循环结束, 如果是 true,继续执行;④执行条件控制语句;执行流程:①执行初始化语句;
2023-10-11 17:54:06
90
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人