自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis

Redis 常见面试题(2020最新版) 概述 什么是Redis Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。 Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。 与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作,

2021-03-24 11:18:04 312

原创 比较一下 Spring Security 和 Shiro 各自的优缺点

比较一下 Spring Security 和 Shiro ? 一、安全框架 安全框架,简单说是对访问权限进行控制,应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。 用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。 用户认证一般要求用户提供用户名和密码,系统通过校验用户名和密码来完成认证过程。 用户授权指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行

2021-02-18 21:47:28 5965 1

原创 SpringBatch介绍及hello Spring Batch教程

SpringBatch介绍及hello Spring Batch教程 一、什么是SpringBatch 1、Spring Batch 是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。 2、Spring Batch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,使得已经使用 Spring 框架的开发者或者企业更容易访问和利用企业服务; 3、Spring Batch 提供了大量可重用的组件,包括了日志、追踪、事务、任务作业统计、任务重启、跳过、重复、资源管

2021-02-18 20:31:14 1118

原创 Java——HashMap

深入浅出学Java——HashMap 哈希表(hash table) 也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,本文会对java集合框架中HashMap的实现原理进行讲解,并对JDK7的HashMap源码进行分析。 一、什么是哈希表 在讨论哈希表之前,我们先大概了解下其他数据结构在新增,查找等基础操作执行性能 1.1 数组增删改的执行性能 数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为

2021-02-18 09:40:47 215

原创 红黑树

红黑树 红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。 红黑树具有良好的效率,它可在 O(logN) 时间内完成查找、增加、删除等操作。因此,红黑树在业界应用很广泛,比如 Java 中的 TreeMap,JDK 1.8 中的 HashMap、C++ STL 中的 map 均是基于红黑树结构实现的。 ...

2021-02-18 09:37:46 204 1

原创 volatile,synchronized有什么作用

volatile,synchronized有什么作用 首先volatile 和synchronized 都是为了解决并发状态下线程安全的问题而出现的关键字。 线程安全的两个关键:执行控制,内存可见 执行控制 的目的是控制代码执行(顺序)及是否可以并发执行。 内存可见 控制的是线程执行结果在内存中对其它线程的可见性。根据Java内存模型的实现,线程在具体执行时,会先拷贝主存数据到线程本地(CPU缓存),操作完成后再把结果从线程本地刷到主存。 synchronized 修饰符 ​ synchronized 关

2021-02-16 18:24:49 380

原创 Java的三种代理模式

Java的三种代理模式 什么是代理模式? ​ 代理(Proxy)是一种设计模式,为其他对象提供一种代理以控制对这个对象的访问。 代理模式的组成 抽象角色:通过接口或抽象类声明真实角色实现的业务方法。 代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。 真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。 代理模式的优点 (1).职责清晰 真实的角色就是实现实际的[业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一

2021-01-29 21:57:50 253 1

原创 mybatis中 的执行器

mybatis中 的执行器 Mybatis有三种基本的Executor执行器: SimpleExecutor、ReuseExecutor、BatchExecutor。 SimpleExecutor: 每执行一次update或select,就开启一个Statement对象,用完立刻关闭Statement对象。 ReuseExecutor: 执行update或select,以sql作为key查找Statement对象,存在就使用,不存在就创建,用完后,不关闭Statement对象,而是放置于Map内,供下一次使

2021-01-29 19:37:03 372

原创 Log4j 比较全面的配置

Log4j 比较全面的配置 LOG4J 的配置之简单使它遍及于越来越多的应用中了: Log4J 配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。择其一二使用就够用了, log4j.rootLogger=DEBUG,CONSOLE,A1,im log4j.addivity.org.apache=true # 应用于控制台 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.a

2021-01-20 09:12:52 171 1

原创 spring中BeanFactory和FactoryBean

spring中BeanFactory和FactoryBean 共同点: ​ 都是接口 区别: BeanFactory 以Factory结尾,表示它是一个工厂类的终极接口,用于管理Bean的一个工厂 ​ 在Spring中,所有的Bean都是由BeanFactory(也就是IOC容器)来进行管理的。abstractBeanFactory抽象工厂类) 但对FactoryBean而言,这个Bean不是简单的Bean,而是一个能生产或者修饰对象生成的工厂Bean,它的实现与设计模式中的工厂模式和修

2021-01-15 19:38:35 206

原创 抽象工厂模式

抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 介绍 **意图:**提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 **主要解决:**主要解决接口选择的问题。 **何时使用:**系统的产品有多于一个的产品族

2021-01-15 17:55:09 130

原创 工厂模式

工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会向客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 介绍 **意图:**定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 **主要解决:**主要解决接口选择的问题。(通过getxxx方法) **何时使用:**我们明确地计划不同条件下创建不同实例时。

2021-01-15 16:57:39 262

原创 模板方法(Template Method)模式

模板方法(Template Method)模式 ​ 定义如下:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。 抽象父类负责定义操作中的业务骨架,而把某些具体的实现步骤延迟到子类中去实现。 1. 模板的结构 1.1. 抽象类/抽象模板(Abstract Class) 1)抽象模板类 负责给出一个算法的轮廓和骨架。它由一个模板方法和若干个基本方法构成。这些方法的定义如下。 ① 模板方法:定义了算法的骨架,

2021-01-14 18:57:51 5082

原创 ssm面试题

一、Spring面试题 1、Spring 在ssm中起什么作用? Spring:轻量级框架 作用:Bean工厂,用来管理Bean的生命周期和框架集成。 两大核心: ①. IOC/DI(控制反转/依赖注入) :把dao依赖注入到service层,service层反转给action层,Spring顶层容器为BeanFactory。 ②. AOP:面向切面编程 2、Spring的事务? 编程式事务管理:编程方式管理事务,极大灵活性,难维护。 声明式事务管理:可以将业务代码和事务管理分离,用注解和xml配置来管理事

2021-01-13 21:56:59 209

原创 数据库连接池(druid的基本使用,springboot中druid的使用)

一、什么是数据库连接池 1.1 数据库连接池的存在意义 数据库的连接是非常耗费系统资源的,一个应用通常都是需要与数据库打交道,也就需要经常连接数据库,这样导致浪费大量系统资源; 1.2 连接池的原理 事先创建好几个数据库连接放着,当我的系统需要操作数据库时就从连接池里直接拿连接,并将这个连接标记为 忙 ;用完后在放会池中,标记为 空闲; 当连接池里的连接都在被使用,如果此时还要连接,连接池就会在创建连接放到池里,,这些连接的数量,都是在配置文件里由你控制的 二、有哪些数据库连接池 Spring

2021-01-13 17:30:21 961

原创 MyBatis之动态sql

MyBatis之动态sql 目录 MyBatis之动态sql 一、介绍 二、搭建环境 1、if 语句 2、Where 3、Set 4、choose语句 5、SQL片段 6、Foreach 一、介绍 什么是动态SQL:动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句. 官网描述: MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注

2021-01-08 11:43:17 343

原创 Spring Boot 注解大全

Spring Boot 注解大全 一.springboot注解 1.@SpringBootApplication 申明让 spring boot 自动给程序进行必要的配置,这个配置等同于:@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三个配置。 示例代码: package com.example.myproject; import org.springframework.boot.SpringApplication; im

2021-01-07 20:50:25 160

原创 ssm整合

ssm整合流程 1、导入相关pom依赖 junit mysql-connector-java druid/c3p0 (数据库连接池) servlet-api jsp jsp-api jstl mybatis mybatis-spring spring-webmvc spring-jdbc 2、Maven资源过滤设置 <build> <resources&gt.

2020-12-25 10:51:36 170

原创 数据库的三大范式

设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。 首先介绍一下什么是范式 范式:符合某一种设计要求的总结。总的来说,数据库的三大范式就是,在设计数据库的最为常见的三个主要规则。 这里顺便说一句,想要设计出一个好的数据库,和选秀节目一样常常是需要打破常规在基础之上建立独有的特点才能够出道的。所以说好的数据库设计常常会符合这三大范式,但不止于三大范式。 1、第一范式(原子性) 第一范式:要求数据库表的每一列都是不可

2020-10-25 10:23:50 548

原创 队列

队列 使用场景 银行排队的案例 队列的介绍 队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出 示意图:(使用数组模拟队列示意图) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xUK2IUhn-1601218733790)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-2020092308443430

2020-09-27 23:02:21 162

原创 稀疏数组

稀疏数组(sparseArray) 实际需求 ​ 编写的五子棋程序中,有存盘退出和续上盘的功能。 分析问题 ​ 因为该二维数组的很多值是默认值0, 因此记录了很多没有意义的数据.-------》》稀疏数组。 稀疏数组的基本介绍 ​ 当一个数组中大部分元素为0,或者为同一个值的数组时(也就是大部分 的元素值相同),可以使用稀疏数组来保存该数组。 稀疏数组的处理方法 记录数组一共有几行几列,有多少个不同的值 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模 应用实例 使

2020-09-27 11:39:41 121

原创 java中的进制转换

问题描述   十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。   给出一个非负整数,将它表示成十六进制的形式。 输入格式   输入...

2020-01-27 22:24:01 169

原创 递归倒置字符数组

题目描述 完成一个递归程序,倒置字符数组。并打印实现过程 递归逻辑为: 当字符长度等于1时,直接返回 否则,调换首尾两个字符,在递归地倒置字符数组的剩下部分 输入 字符数组长度及该数组 输出 在求解过程中,打印字符数组的变化情况。 最后空一行,在程序结尾处打印倒置后该数组的各个元素。 样例输入 5 abcde 样例输出 ebcda edcba edcba 解题思路...

2020-01-15 23:42:33 1246

空空如也

空空如也

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

TA关注的人

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