- 博客(34)
- 收藏
- 关注
原创 Spring循环依赖
Spring循环依赖循环依赖概念:三级缓存概念:解决流程:循环依赖概念:多个bean之间相互依赖,产生了闭环,比如A依赖B,B依赖A,这就是循环依赖。三级缓存概念:名称:概念:一级缓存:singletonObjects:存放完整的bean对象二级缓存:earlySingletonObjects:存放半成品对象三级缓存:singletonFactories:存放对象的Lambda表达式解决流程:第一步:Spring开始初始化对象A,先实
2021-08-15 22:58:58
131
原创 HashMap底层实现原理
HashMap底层实现原理数据存储结构:数据存储原理:扩容机制:HashMap是面试时经常会问到的问题。数据存储结构:在JDK1.7中,HashMap的数据存储结构是数组 加 链表;在JDK1.8中,HashMap的数据存储结构是数组 加 链表 加 红黑树,之所以在JDK1.8中加入红黑树,是因为当链表的长度过长时,查询效率会降低,而红黑树的查询速度快,为了加快查询效率,当链表的数据长度达到8时,转换为红黑树,当数据长度降为6时,转换回链表;数据存储原理:当使用HashMap存储数据时,对数据的
2021-08-15 22:23:17
123
原创 SpringBoot2_入门
SpringBoot2_入门Maven依赖配置:编写HelloWorld的示例程序:创建maven工程:pom.xml中引入基础的依赖:创建主程序类:编写业务层逻辑:测试运行:简化配置:简化部署:Maven依赖配置:先在Maven的settings.xml配置 本地仓库 和 阿里云的镜像地址:<localRepository>E:\Maven\MyRepository</localRepository><mirrors> <mirror&g
2021-03-09 21:52:45
151
原创 Java基础_MyBatis
Java基础_MyBatis动态sql作用及执行原理:延迟加载:动态sql作用及执行原理:作用: MyBatis中动态sql可以让我们在mapper.xml(xml映射文件)中以标签形式编写sql动态语句,完成逻辑判断和动态拼接sql的功能;执行原理: 使用OGNL从sql参数对象中计算表达式的值,根据表达式的值动态拼接sql,以此来完成动态sql的功能;延迟加载:延迟加载: MyBatis仅支持association(一对一)关联对象和collection(一对多)关联集合对象的延迟加载,在My
2021-01-08 10:37:47
143
1
原创 Java基础_Maven
Java基础_Maven概念:IDEA创建Maven项目:中央仓库配置:概念:Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具;maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包;链接: https://blog.csdn.net/zeal9s/article/details/84023846IDEA创建Mave
2021-01-08 10:35:46
76
原创 Java基础_Ajax
Java基础_Ajax原理:XmlHttpRequest中post和get的区别:原生Ajax和jquery Ajax的区别:原理:简单来说,就是通过XMLHttpRequest对象像服务器发送异步请求,从服务器获取数据之后,再通过JS来操作DOM节点;XmlHttpRequest中post和get的区别:链接: https://www.cnblogs.com/aimeeblogs/articles/9501946.html原生Ajax和jquery Ajax的区别:链接: https://bl
2021-01-08 10:25:57
88
原创 Java基础_Servlet
Java基础_Servlet实例化Servlet:Servlet响应过程:Servlet的生命周期:forward和redirect的区别:HttpServletRequest获取中文乱码问题:HttpServletResponse响应中文乱码问题:实例化Servlet:当初次请求Servlet时,Servlet容器会根据web.xml实例化Servlet类,当有新的客户请求时,Servlet容器不会再实例化这个Servlet类,而是开启一个新的线程,所以会出现单实例多线程的状态;Servlet响应过
2021-01-08 10:24:15
74
原创 Java基础_JDBC
Java基础_JDBC概述:DML和DDL:Statement、PreparedStatement和CallableStatement:执行:批处理:自定义连接池:DBCP连接池:C3P0连接池:DBUtils工具类:QueryRunner:索引创建及作用:ORM框架:概述:Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,由一组用Java语言编写的接口和类组成;链接: https://blog.csdn.net/qq_41855420/article/details/1020761
2021-01-08 10:19:35
74
原创 Java基础_反射
Java基础_反射概念及作用:获取类的方式:在工厂设计模式中的应用:概念及作用:概念 :在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;动态获取的以及动态调用对象的方法;作用:反编译;通过反射机制访问java对象的属性、方法、构造方法等;应用场景:JDBC加载驱动;框架;Spring ioc获取类的方式:Class class1 = Class.forName(“反射.Person”); //通
2021-01-08 09:59:43
125
1
原创 Java基础_网络通信
Java基础_网络通信TCP/IP层次结构:HTTP和HTTPS:Socket:TCP(传输控制协议):UDP(用户数据报协议):Json解析:HTTP中GET和POST的区别:TCP/IP层次结构:分为四个层次:网络接口层,网络层,传输层,应用层;HTTP和HTTPS:HTTP: 互联网上应用最广泛的一种网络协议,是一个客户端和服务端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,可以使浏览器更加高效,使网络传输减少;HTTPS: HTTP的安全版,是以安全为目标
2021-01-08 09:54:32
121
原创 Java基础_数组
Java基础_数组创建数组:数组处理:数组与List的转换:数组的查找与排序:数组的优缺点:二维数组的查找:创建数组:dataType[ ] arrayRefVar = new dataType[arraySize]代码路径:E:\IDEA_Study\Scattered_Study\Study\src\数组\ArrayTest1.java数组处理:数组输出、数组总和、数组最大元素、for each循环、数组排序代码路径:E:\IDEA_Study\Scattered_Study\Study\s
2021-01-07 21:59:30
84
原创 Java基础_面向对象
Java基础_面向对象定义及特点:关键字:构造方法:get和set方法:Java中的内部类:Object类:抽象类和接口:抽象类:接口:两者区别:重载与重写:引用类型转换:定义及特点:定义: 类是对象的抽象;对象是类的实例;特点: 封装、继承、多态;链接: https://www.cnblogs.com/hysum/p/7100874.html关键字:关键字作用static指代静态 ;静态方法是类的方法,不需要创建对象就可以被调用;无法从static方法内部发出对非stat
2021-01-07 21:59:23
66
原创 Java基础_常用基础类
Java基础_常用基础类枚举类:String:StringBuffer与StringBuilder:基础类型的包装类:Date类:Calendar类:GregorianCalendar类:Math类:Random类:Runtime类:System类:枚举类:使用enum关键字修饰枚举;所有的枚举值都是 public static final 的;String:1、字符串;2、是一个对象,不是基础数据类型;3、字符串常量,每次修改产生新的String对象;4、适用于少量的字符串操作的情况;代码
2021-01-07 21:59:09
95
原创 Java基础_集合
Java基础_集合概念:与数组的区别:集合框架体系:Collection和Collections的区别:泛型:ArrayList和LinkedList:HashSet、LinkedHashSet和TreeSet:HashMap和TreeMap:概念:一种工具类,是一个用来存放对象的容器;存放的是对象的引用;与数组的区别:集合数组可以存放不同类型的;存放的是同一类型;不固定长度;固定长度;对象一定是引用类型;元素可以是基础类型,也可以是引用类型;集合框架体系
2021-01-07 21:59:02
88
原创 Java基础_IO流
Java基础_IO流定义:字节流:字符流:转换流:InputStreamReader和OutputStreamWriter:RandomAccessFile:文件复制:定义:一组有顺序,有起点和终点的字节集合;是对数据传输的总称和抽象;用来处理设备之间的数据传输;字节流:以字节为单位;可以操作任何类型的数据;操作时不会用到缓冲区;针对文件本身的直接操作;字符流:以字符为单位;只能操作纯字符的数据;通过缓冲区来操作文件;转换流:字符流和字节流的桥梁;字节数据和字符数据之间通过指定编码进行相互转
2021-01-07 21:58:53
88
原创 Java基础_线程
Java基础_线程进程:线程:线程实现之继承Thread类:线程实现之实现Runnable接口:线程池:线程池的状态:sleep和wait的区别:并行和并发的区别:停止线程的方式:守护线程:join方法:Volatile关键字:共享内存模型:ThreadLocal:信号量:临界资源:同步代码块:死锁:synchronized关键字:释放同步监视器:生产者与消费者设计模式:进程:进程是具有一定独立功能的程序对于数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位;进程在执行过程中拥有独立的内存
2021-01-07 21:58:35
143
原创 SpringBoot_消息_RabbitMQ
SpringBootRabbitMQ简介:核心概念:RabbitMQ运行机制:AMQP 中的消息路由:Exchange 类型:RabbitMQ整合:RabbitMQ简介:RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol) 的开源实现。核心概念:概念:说明:Message-消息:消息是不具名的,它由 消息头 和 消息体 组成;消息体是不透明的;消息头则由一系列的可选属性组成,这些属性包括routing-key(路由
2020-06-29 20:36:17
318
原创 SpringBoot_消息_JMS&AMQP简介
SpringBoot概述:概述:大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力。场景举例:概念:消息代理(message broker):消息发送者发送消息以后,将由消息代理接管目的地(destination):消息代理保证消息传递到指定目的地形式:目的地形式:说明:队列(queue):点对点消息通信(point-to-point)消息发送者发送消息,消息代理将其放入一个队列中,消息接收者从队列中获取消息内
2020-06-01 07:46:45
187
原创 SpringBoot_缓存
SpringBootJSP107:Spring缓存抽象:缓存的意义:用来加速系统的访问,提升系统的性能;比如系统中高频热点数据的访问;JSP107:Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry 和 Expiry;接口:CachingProvider:定义了创建、配置、获取、管理...
2020-04-19 21:47:45
144
原创 SpringBoot_数据访问
SpringBoot简介:JDBC:整合Druid数据源:简介:对于数据访问,无论是SQL(关系型的数据库)还是NOSQL(非关系型的数据库),SpringBoot默认采用整合Spring Data的方式进行统一的处理。添加大量的自动配置,屏蔽一些配置,引入各种XXXTemplate,XXXRepository来简化我们对数据访问的操作。JDBC:pom.xml: 添加JDBC和mysql...
2020-04-01 17:59:16
151
原创 SpringBoot_配置嵌入式Servlet容器
SpringBoot前言:定制修改嵌入式Servlet容器的相关配置:注册Servlet三大组件:替换为其他嵌入式Servlet容器:嵌入式Servlet容器自动配置原理:嵌入式Servlet容器启动原理:前言:以前部署web项目,需要把web项目打包成war包,然后放在外部配置好的中间件环境中,比如Tomcat容器,将web项目war包放在 \Tomcat_Home\webapps目录下,然...
2020-03-26 21:50:01
309
原创 SpringBoot_错误处理机制
SpringBoot默认错误处理机制:错误演示:原理:定制错误响应:定制错误页面响应:定制错误json数据响应:默认错误处理机制:错误演示:浏览器页面请求: 返回错误页面,请求头类型 text/html ;其他客户端请求: 响应 json 数据;原理:参照ErrorMVCAutoConfiguration,错误处理的自动配置;给容器添加以下组件:DefaultErrorAt...
2020-03-23 23:21:48
201
原创 Tomcat_性能优化
性能优化JVM参数优化: -Xms<size> 表示JVM初始化堆的大小,-Xmx<size> 表示JVM 堆的最大值;一般建议堆的最大值设置为可用内存的最大值的80%;在catalina.bat中,设置 JAVA_OPTS=’-Xms256m-Xmx512m’,表示初始化内存为256MB,可以使用的最大内存为512MB;禁用DNS查询: 客户端DNS查询需要占用网络,...
2020-03-19 16:41:25
213
原创 SpringBoot_实现国际化/拦截器进行登陆检查
SpringBoot默认访问首页默认访问首页//实现 WebMvcConfigurer 可以来扩展 SpringMVC 的功能@Configurationpublic class MyMvcConfig implements WebMvcConfigurer { //所有的WebMvcConfigurerAdapter组件都会一起起作用 @Bean //将组件注册在容器...
2020-03-12 23:20:06
337
原创 SpringBoot_静态资源映射/自动配置
SpringBoot开发步骤:SpringBoot对静态资源的映射规则:jar包资源 :js,css,image 等文件:index.html 页面:项目图标:开发步骤:使用IDEA进行SpringBoot开发:1,创建 SpringBoot 应用,选中需要的模块;2,SpringBoot 已经默认将选中的模块场景配置好了,若需要修改配置,只需要在配置文件中指定配置即可;3,编写业务代码...
2020-03-08 10:24:21
802
原创 SpringBoot_日志
SpringBoot在 SpringBoot 中,使用 SLF4J + Logback 的的方式进行日志记录;SLF4JSLF4J使用方式:在开发过程中,我们不应该直接调用日志的实现类,而是应该调用日志抽象层里面的方法;示例: // 导入 slf4j的jar和 logback 的实现jarimport org.slf4j.Logger;import org.slf4j.Logge...
2020-02-29 19:11:57
160
原创 SpringBoot_配置
SpringBoot配置文件YAML配置文件SpringBoot使用一个全局的配置文件,配置文件名是固定的:application.properties或者application.yml;配置文件的作用:修改SpringBoot自动配置的默认值;YAMLyml 是 YAML 语言的文件,以数据为中心,比 json 、xml 等更适合做配置文件;<!--xml格式-->...
2020-02-27 20:44:10
280
原创 SpringBoot_入门
SpringBoot微服务概念:SpringBoot背景:简介:知识点:进行SpringBoot的入门学习微服务概念:将服务微化,每一个功能元素最终都是一个可独立替换和独立升级的软件单元;一个应用就是一组小型服务,可以通过HTTP的方式进行互通。图片来源于尚硅谷视频SpringBoot背景:之前学习过Spring和SpringMVC框架,它们都有着繁多的配置,开发效率相对低下,而且...
2020-02-25 10:01:09
141
原创 SpringMVC_SSM整合
SpringMVC整合思路第一步:先搭建整合的环境;第二步:搭建Spring环境;第三步:搭建SpringMVC环境;第四步:使用Spring整合SpringMVC框架;第五步:搭建MyBatis环境;第六步:使用Spring整合MyBatis框架;验证SSM整合针对之前的学习,进行SSM整合,然后结合做过的项目,熟悉整个过程。整合思路选择XML + 注解的方式进行SSM框架整合第一步:...
2020-02-22 20:06:23
266
原创 SpringMVC_异常处理/拦截器
SpringMVC异常处理异常分类:异常处理目的:异常处理思路:异常处理步骤异常处理异常分类:异常类型异常处理预期异常通过捕获异常从而获取异常信息运行时异常通过规范代码开发、测试通过手段减少运行时异常的发生异常处理目的:当用户使用程序过程中报错,我们希望能够跳转到一个异常处理页面用来对用户进行提示,而不是网页挂掉。我们可以通过异常处理实现这种效果,比如S...
2020-02-20 18:01:03
332
原创 SpringMVC_数据返回/文件上传
SpringMVCSpringMVC的学习二返回数据在controller中根据返回值类型,大致可以分为String,void,ModelAndView。1. 当返回类型为String类型: 返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址;代码示例:<!--jsp代码--> <a href="user/testString">返回类型Strin...
2020-02-17 20:19:11
306
原创 SpringMVC_简介
SpringMVCSpringMVC学习一三层结构我们在使用Java语言进行开发程序中,一般都是基于C/S架构或者B/S架构,我接触的都是B/S架构,即Browser/Server,而在B/S架构又分成三层结构,即:表现层(用于与客户端交互数据),业务层(处理业务逻辑),持久层(数据库操作)。MVC模型MVC 是模型(model)-视图(view)-控制器(controller)的缩写,...
2020-02-16 11:51:08
130
原创 Spring_事务控制
Spring将Spring复习进行了收尾,在Spring框架中,还有一部分很重要的内容,就是对声明式事务的支持。在Spring中对事务控制都是基于AOP的,它既可以通过编程方式进行实现,也可以通过配置方式实现,复习的重点是通过配置的方式实现对事务控制。Spring中事务控制的API1,PlatformTransactionManager :此接口是spring的事务管理器,提供常用事务操作...
2020-02-11 18:59:18
148
原创 Spring_IOC/AOP
Spring最近两天回了长沙,待在租房不能出门,复习了一下Spring框架。在Spring框架中,最重要的就是控制反转IOC和面向切面AOP,说一下自己的理解吧,权当自己做了一些笔记。控制反转IOC在Spring中通过IOC容器,将对象之间的依赖交由Spring进行统一控制管理,实现程序之间的解耦,IOC包括依赖注入DI和依赖查找,最常被用到的就是依赖注入,是IOC的具体表现。 ...
2020-02-09 18:26:24
244
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人