自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java中常见RuntimeException异常有哪些以及产生原因

文章目录NullPointerException空指针异常ArrayIndexOutOfBoundsException数组下标越界NumberFormatException数字格式化异常ClassCastException类型转换异常ParseException转换异常StringIndexOutOfBoundsException 字符串下标越界异常 NullPointerException空指针异常 //产生原因:调用空对象的方法或属性时 String str = null;

2021-01-22 18:57:35 2241

原创 spring学习笔记

1.Spring框架: Spring框架是一款轻量级的开发框架 主要有三大特点:Spring框架是一个容器(能够管理项目中的所有容器,常用的就是ApplicationContext,容器本身是存放Bean和Bean之间的依赖关系的), IOC(控制反转)和DI(依赖注入), AOP(面向切面编程) spring集成了很多框架,使得JAVAmake simple 2.IOC和DI: IOC(对象的创建和依赖关系都有Spring进行完成创建和注入,反转控制就是反转的对象的创建方式,使得原本我们创建反转给了程序的

2021-08-31 20:30:31 221

原创 2021-08-29Mybatis学习笔记

MyBatis: - Mybatis一级缓存:同一个SqlSession生命周期里 用一个SqlSession 可以通过配置使得在查询前清空缓存(flushCache = FlushCachePolicy.TRUE) 不同的SqlSession之间的缓存是相互隔离的 Mybatis二级缓存:存在于同一个SqlSessionFactory生命周期里 更新时会刷新缓存,以namesapce为单位更新 开启二级缓存要注意 实现实体类的序列化与反序列化 如何开启二级缓存:在mybatis-con

2021-08-29 15:57:08 270

原创 2021-08-29java学习笔记

Servlet: 用Java编写的服务端程序,主要功能是交互式的浏览和修改数据,生成动态的WEB内容 工作模式:客户端发送请求至浏览器->服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器->服务器将响应传回给客户端。 四个常用的方法: init(),service(),destory(),getServletconfig(),getServletInto()方法 Servlet生命周期:实例化,初始化,服务,销毁 JSP: Java

2021-08-29 15:53:48 241

原创 Redis学习笔记之缓存雪崩-缓存穿透-缓存击穿

缓存雪崩 当缓存服务器端重启或者大量缓存集中在某个时间段失效时,所有的请求会直接请求到后端系统+主数据库中去,从而导致系统的崩溃 解决方案 在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。比如对某个key只允许一个线程查询数据和写缓存,其他线程等待。 启用限流策略 做二级缓存,A1为原始缓存,A2为拷贝缓存,A1失效时,可以访问A2,A1缓存失效时间设置为短期,A2设置为长期。 不同的key,设置不同的过期时间,让缓存失效的时间点尽量均匀。 缓存穿透 大多数缓存系统,都会按照K

2021-08-27 15:09:27 263

原创 学习笔记-LogBack日志框架

配置logback.xml <?xml version="1.0" encoding="UTF-8"?> <!-- scan属性:默认为true,Logback将会扫描配置文件,如果配置文件发生改变时,会自动加载 scanPeriod属性:Logback扫描配置文件时间间隔,默认单位为毫秒,可配置单位为毫秒、秒、分、时 milliseconds, seconds, minutes or hours debug属性:默认为false,是否打印Logback内部信息,当为true时可以查

2021-08-25 08:58:24 480

原创 2021-08-23学习笔记 使用Thymeleaf作为视图

配置Thymeleaf视图解析器 配置三个启用Thymeleaf与Spring集成的bean: ThymeleafViewResolver:将逻辑视图名称解析为Thymeleaf模板视图; SpringTemplateEngine:处理模板并渲染结果; TemplateResolver:加载Thymeleaf模板。 SpringMvcConfig相关的配置 @EnableWebMvc @ComponentScan public class SpringmvcConfig implements WebMv

2021-08-23 20:28:32 394

原创 2021-08-23学习笔记

RedirectAttribute:重定向前会将数据放入flash中,重定向后,此时Flash的数据取出放到请求中,并从FlashMap中删除,如果重新打开页面,数据则会丢失 @ResponseBody:用于将Controller的方法返回的对象转换为指定格式的数据,比如json,通过Response响应给客户端,返回给页面。 @RequestBody:主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的). Multipart文件上传:1.容器启动时,加载"文件上传配置参数" 2.在sp

2021-08-23 19:43:14 494

原创 AspectJ注解驱动实现AOP

AspectJ注解驱动实现AOP 使用AspectJ 需要导入Spring AOP和 AspectJ相关jar包 spring-aop-4.2.4.RELEASE.jar com.springsource.org.aopalliance-1.0.0.jar spring-aspects-4.2.4.RELEASE.jar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar 目标类,定义切面类 @ MethodBeforeAvice:

2021-08-22 15:05:30 407

原创 纯POJO切面方式实现AOP

纯POJO切面方式实现AOP 基于AOP实现日志输出(POJO实现) JoinPoint :用于连接目标方法和当前通知方法 public class LogAdvice{ // "自定义"后置通知方法 public void methodAfter(JoinPoint joinpoint){ System.out.println("[日志输出]:--------后置通知----------------"); } } 基于AOP实现环绕通知(POJO实现) public class AdminAdv

2021-08-22 14:38:24 662

原创 JdkProxyFactory 动态代理工厂

JdkProxyFactory 动态代理工厂 一、动态代理与静态代理的区别。 (1)Proxy类的代码被固定下来,不会因为业务的逐渐庞大而庞大; (2)可以实现AOP编程,这是静态代理无法实现的; (3)解耦,如果用在web业务下,可以实现数据层和业务层的分离。 (4)动态代理的优势就是实现无侵入式的代码扩展。 通过接口实现:目标对象必须有接口` //目标对象 //被封装的对象是Object类型,接受任意类型的对象 private Object target; //构造方法

2021-08-20 20:24:18 823

原创 Spring常见的注解总结:

Spring常见的注解总结: 1.用于创建对象的 @Component:将资源交给Spring进行管理 @Controller:控制层使用,标记时SpringMVC Controller处理器 @Service:表示该类为业务层 @Repostity:表示该类为数据访问层 2.用于注入数据的 @AutoWired:自动按类型注入 @Qualifier:在自动按类型的注入的基础上,在按照bean的id注入,它在给字段注入时不能独立使用,必须和 @Autowire 一起使用;但是给方法参数注入时,可

2021-08-20 20:12:55 347

原创 java集合Colletcion之set接口

set接口特点: 无序 不允许重复 实现类 HashSet类: 存储结构:使用HashMap进行存储 特点:无序,唯一 常用方法: 添加元素 public boolean add(E e) { return map.put(e, PRESENT)==null; } - 一次性添加元素 public boolean addAll(Collection<? extends E> c) { boolean modified = fa

2021-05-21 16:07:25 350

原创 Java JDBC基本介绍

JDBC基本概念 1.什么是JDBC 是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问 JDBC(Java Data Base Connectivity,Java数据库连接) 是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问 它由一组用Java语言编写的类和接口组成 JDBC基本作用 JDBC是由一系列连接(Connection)、SQL语句(Statement)和结果集(ResultSet)构成的,其主要作用概括起来有如下3个方面: 建立与数据库的连接

2021-05-19 18:04:33 2603

原创 java集合Collection之list接口

list接口 特点:有序,允许重复 实现类: 1: ArrayList: 存储结构:Object[]数组 优势特点:查询遍历速度较快,插入删除较慢 扩容方式: 初始化 无参构造方法: 第一次添加元素时,该数组扩容为10 有参构造方法: 数组长度由构造方法的参数决定 扩容方式 当数组容量不足时,自动扩容,扩

2021-05-11 20:48:27 427

原创 java中常用API

文章目录1.API概述2.API文档的使用步骤3、Scanner的使用 1.API概述 API(Application Programming Interface,应用程序编程接口),是一些预先定义的函数。 2.API文档的使用步骤 a.查看所在包 b.查找要找的类 c.查看构造方法 d.查看成员方法 3、Scanner的使用 1.Scanner概述及其API文档的使用 2.Scanner的使用步骤 a.导包:import java.util.Scanner; b.创建对象:Scanner input

2021-01-22 19:11:17 501 1

空空如也

空空如也

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

TA关注的人

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