- 博客(32)
- 收藏
- 关注
原创 Spring IOC/DI
是一款轻量企业级的开发框架,以IOC和AOP两大核心思想为内核,提供了展示层Spring MVC和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,能完美整合任意第三方技术[【框架和类库】,提供组件管理服,用于组件之间的解耦。
2023-10-24 18:35:06
86
原创 MyBatis初识
Mybatis是一个开源、轻量级的数据持久化框架,内部封装了JDBC,简化了加载驱动、创建框架名词解释:不仅帮我们节省代码量(解决了冗余代码),还给我们提供了编程的标准,变得更加地通用。
2023-10-24 10:14:33
78
原创 Try/catch中出现return,会执行finally中的语句问题
正常情况下会在try块中执行完成后走Finally块,只有在try块中出现错误才会进入catch块中。当执行到try中return语句时,会先将变量存储到一个临时的栈空间中,执行try中的return i 时,将 i = 1 存储到栈空间中;try块中即使有return语句,finally也会照样进行,finally块要执行,则必须满足在return语句前执行。此时的 i 的值为2,但并没有作任何的返回处理,所以。由于finally块中的return语句,的栈空间所存储的 i 的值,
2023-09-14 16:43:17
103
原创 ThreadLocal
需要在不同线程中共享数据,将数据存储到Thread对象里【在每个Thread对象里都有ThreadLocalMap】,通过ThreadLocal来访问该数据【理解为中介】
2023-09-09 15:27:06
52
原创 RESTful
每一个URI代表一种资源;客户端和服务器之间,传递这种资源的某种表现层;客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。
2023-09-09 11:02:50
40
原创 ElasticSearch【1】
简称ES是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java.NETC#)、PHPPythonRuby和许多其他 语言中都是可用的。根据DB-Engines的排名显示,是最受欢迎的企业搜索引擎,,也是基于Lucene。
2023-09-07 22:14:06
69
原创 copyOnWriteArrayList<E>源代码
后端: 将原数组从toIndex位置开始后numMoved个元素复制至新数组【从 fromIndex开始】先获取原数组长度创建新数组newElements, 再将原数组内容赋值到 新的数组中。前段: 将原数组从0位置开始后fromIndex个元素复制至新数组【从0开始】整体逻辑:根据指定下标,从原数组中,Copy复制其它元素至新数组中,最后替换原数组。将原来的数组复制Copy 到新数组中 ,将新元素追加至末尾位置,最后替换原数组。将temp数组中的newlen个元素复制到新数组中,再将引用传给原数组。
2023-09-04 13:52:45
28
原创 使用java代码来操作Redis
注意:需要字节写配置类,优化RedisTemplate的可读性【读官方文档】@Bean//1.创建自定义模板类//2.配置json类型的序列化工具//这样key会用字符串方式保存//3.给模板配置工厂@Autowired【按名字装配】@Test//保存对象Student stu = new Student(1,"厉顾城",25);//获取对象 ----Student stu2 = new Student(2,"厉顾城",25);
2023-09-04 13:50:39
332
原创 Spring数据访问操作1
为了解决------->【idea中如果不写会下面会有红色波浪线】springboot看你加入了一个data-starter启动器,它认为你用相关技术,还需要开启相关的自动配置。@EnableEncryptableProperties:开启关于jasypt的相关配置【不需要配置类配置】springboot会读取yml文件的信息,把信息读到类的属性里面【另一种方式:@Bean 】帮你造了数据源,JDBCTemplate,还将依赖关系维护好注入容器,供你使用。在配置数据源的时候,要加载基本信息,
2023-08-29 09:46:01
44
原创 Spring数据访问操作2
此时:它提供的HiKariDataSource不在是唯一的数据源时,会使用人工注入的数据源【实现替换】能帮我们统计出那一时刻那个用户执行那个Sql,查询结果,并发量,查询结果,从而作SQL优化。解决:继承第三方的监控平台【会生成对应的UI界面,可以看到系统的运行状态】1.加载了yml文件中spring.datesource的相关信息,3.关联给DruidDateSource的实例对象对应的属性。要告诉它什么请求需要过滤器【统计请求的访问次数等等】作用:使用配置文件中相应的属性初始化该bean的属性。
2023-08-29 09:44:54
39
原创 SpringBoot的Web开发
setUrlMapper(未来真正意义上的注册的Servlet类型对象真实的访问路径)setServlet(未来真正意义上的注册的Servlet类型对象)static-path-pattern: /根路径/**在静态页面引用完静态资源的时候,纳入到mvc中就会引用不到【原因:前段控制器】servlet注册类 替换@WebServlet(urlPatterns)其中泛型为未来真正意义上的注册的Servlet类型。springMVC框架中把上述的资源也当成一种请求,默认:启动类所在的包以及子目录下所有内容。
2023-08-28 11:04:47
29
1
原创 3.springBoot对MVC控制层的优化方案
springMVC在springboot中如何搭建:在SpringBoot导入web启动类坐标就搭建好springMVC环境。
2023-08-28 00:17:04
173
1
原创 2.enjoy模板引擎
springMVC中的controller层的方法的返回值为String,且方法上面不加其他注解。模板引擎会带着字符串进入到3步骤配置好的模板引擎配置类里面。默认代表的是未来要跳转的页面的逻辑名称。就会根据视图解析器把传递过来的逻辑名称拼前后缀,定位到真正的页面, 然后跳转,渲染,响应给用户。当你的控制层方法返回值为String时,
2023-08-22 15:57:02
395
1
原创 ReentrantLock与synchronized的区别
1、 无论synchronized关键字加在方法上还是对象上,如果它作用的对象是非静态的,则它取得的锁是对象;如果synchronized作用的对象是一个静态方法或一个类,则它取得的锁是对类,该类所有的对象同一把锁。2、每个对象只有一个锁(lock)与之相关联,谁拿到这个锁谁就可以运行它所控制的那段代码。3、实现同步是要很大的系统开销作为代价的,甚至可能造成死锁,所以尽量避免无谓的同步控制。
2023-07-19 13:59:35
82
原创 AES算法的两种工作模式
第二步:根据key的字节内容,“恢复”秘钥对象即:SecreKey实例 【第二个参数:传入算法名称 】第二步:根据key的字节内容,“恢复”秘钥对象即:SecreKey实例 【第二个参数:传入算法名称 】第三步:根据key的字节内容,“恢复”秘钥对象即:SecreKey实例 【第二个参数:传入算法名称 】第四步:根据原始字节内容(字节),进行解密 :执行doFinal()方法。第四步:根据原始字节内容(字节),进行加密:执行doFinal()方法。设置秘钥模式为:【ENCRYPT_MODE】
2023-07-17 19:24:27
317
1
原创 Java的反射机制的学习和总结
对于任意一个类,在运行期间加载类,并允许以编程的方式解剖类中的各个成分 并映射成相应的Java类【位于Java.lang.reflect包中】各个成分相对应的类包Package构造方法属性Field方法Method发生在运行期【即:将编译好后的字节文件交给计算机执行,把磁盘中的代码放到内存中存起来】
2023-07-15 11:34:58
81
1
原创 JavaI/O操作
注意:Windows平台使用 "\" 作为路径分隔符,在Java字符串中需要用 "\\" 表示一个 "\"。Java标准库还提供了一个Path对象,它位于java.nio.file包。特别要注意的是:构造一个File对象,即使传入的文件或目录不存在,代码也不会出错。只有当我们调用File对象的某些方法的时候,才真正进行磁盘操作。File file = new File("本地物理路径");因为构造一个File对象,并不会导致任何磁盘操作。Path对象和File对象类似,操作更加简单。
2023-07-10 19:28:27
15
原创 哈希算法理解与总结
又称作消息摘要算法【Digest】准备一个HashTools工具类,将转换方法写到一个静态方法中,通过类名调用//构造私有//将字节数组转换为16进制字符串使用MD5和SHA-1进行加密处理由于流程类似,所以将有关代码封装到工具类中1.定义工具类HashTools//构造私有//消息摘要对象//将字节数组转换为16进制字符串//按照MD5进行消息摘要计算try {//按照SHA-1进行消息摘要计算try {//通过消息摘要对象,处理加密内容。
2023-07-10 18:09:29
151
1
原创 使用JavaMail发送各种类型的邮件
textPart.setContent("------内容----------- ")filePart.setFileName("附件文件显示名称");设置:数据处理器------->创建数据处理器对象------->创建数据源对象【编码格式】
2023-07-10 15:00:41
1234
1
原创 通过FTP进行文件的上传和下载
目录一、FTP服务器展示文件列表:第一步:创建FTPClient第二步:连接FTP服务器并验证用户名密码第三步:切换到目标文件夹第四步:切换成功后,显示所有该目录下的所有文件第五步:最后关闭FTPClient对象 (要处理异常)整理所有代码:二、FTP服务器进行文件上传:第一步:创建FTPClient第二步:连接FTP服务器并验证用户名密码第三步:切换到目标文件夹,若没有:进行创建第四步:切换成功后,进行文件上传4.1、 设置上传文件类型4.2、设置上传文件保存至FTP服务器 第五步:最后关闭FTPClie
2023-07-08 16:11:12
10332
原创 解决Hash冲突
直到冲突不再产生。该方法也叫做再散列法,其基本原理是:当关键字key的哈希地址p=H(key)出现冲突时,以p为基础,产生另一个哈希地址p1,如果p1仍然冲突,再以p为基础,产生另一个哈希地址p2,。,直到找出一个不冲突的哈希地址pi。其基本思想: 将所有哈希地址为i的元素构成一个称为同义词链的单链表,并将单链表的头指针存在哈希表的第i个单元中,因而查找、插入和删除主要在同义词链中进行。这种方法的基本思想是:将哈希表分为基本表和溢出表两部分,凡是和基本表发生冲突的元素,一律填入溢出表。
2023-05-16 22:48:35
56
1
原创 LinkedList深入理解
目录一、与ArrayList类对比梳理二、LinkedList的定义2.1、LinkedList的关系类图 2.2、LinkedList类继承与实现的细节三、数据存储原理3.1、内部类Node3.2、双向链表四、构造方法 LinkedList() 用于创建一个新的空linkedList; LinkedList(Collection c) 使用一个集合创建一个新的linkedList。 实例: 五、方法的讲解5.1 查询5.1.1、get(int index)返回指定位置的元素5.1.2、获取特殊位置
2023-05-02 18:27:29
182
1
原创 ArrayList的扩容方式
ArrayList是Java集合框架中的一个重要的类,在 java.util 中( 使用需要引入)。它继承于AbstractList,实现了List接口。是一个长度可变的集合,提供了增删改查的功能。ArrayList类实现了RandomAccess接口,可以对元素进行快速访问。实现了Serializable接口,说明ArrayList可以被序列化,还有Cloneable接口,可以被复制。集合中允许null的存在。和Vector不同的是,ArrayList不是线程安全的。
2023-04-27 22:58:13
876
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人