- 博客(93)
- 收藏
- 关注
原创 Redis相关的热点面试题
Redis相关的热点面试题1.Key的过期淘汰机制?在实际开发中我们一般会对存储在Redis缓存中的临时数据设置过期时间,但是这里有一点需要额外注意的问题是,并非缓存到期后就一定会被Redis删除。①定期删除Redis默认是每隔100ms就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除。为什么是随机抽取而不是检查所有的key?因为如果设置的key成千上万条,每100ms将所有存在的key都检查一遍,会给CPU带来比较大的压力。②惰性删除定期删除由于是随机抽取,可能会导致很多
2021-08-24 23:20:18 430
原创 Jedis介绍及配置(Java操作Redis)
Jedis介绍及配置(Java操作Redis)一,Jedis是什么?jedis就是基于java语言的redis客户端,集成了redis的命令操作,提供了连接池管理。redis-cli是redis官方提供的客户端,可以看作一个shell程序,它可以发送命令对redis进行操作。对于jedis同理是使用java语言操作redis,双方都遵循redis提供的协议,按照协议开发对应的客户端。二,Jedis连接Redis依赖<?xml version="1.0" encoding="UTF-8"
2021-08-21 20:32:12 4080
原创 Redis-cli 操作 Redis演示
Redis-cli 操作 Redis演示一,Redis-cli连接Redis-h :用于指定ip-p :用于指定端口-a :用于指定认证密码[root@localhost bin]# ./redis-cli -p 6379 -a rootPING命令返回PONG127.0.0.1:6379> PINGPONG指定database127.0.0.1:6379> SELECT 3OK二,Redis-cli操作Redis①操作stringset :添加一条String
2021-08-21 19:13:17 575
原创 Redis概述及手把手教你安装
Redis概述及手把手教你安装一,Redis概述1.redis是什么?Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings) , 散列(hashes) , 列表(lists) , 集合(sets) , 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了复制(replication),L
2021-08-21 18:33:57 205
原创 SpringSecurity快速集成实战教学
SpringBoot项目中集成SpringSecurity为了防止没有接触过的朋友看了半天不知道我讲了啥的情况出现先给大家简单的介绍一下SpringSecurity一,SpringSecurity简介1,什么是SpringSecuritySpringSecurity框架作为Spring家族一员。是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了 Spring IoC , DI(IoC:Inve
2021-08-20 20:41:54 553
原创 Servlet生命周期
Servlet生命周期Servlet的生命周期就是Servlet从创建到销毁的过程。Servlet的生命周期由Servlet的容器管理,主要分为三个阶段:初始化阶段运行时阶段销毁阶段在 javax.servlet.Servlet 接口中定义了 3 个方法:init()、service()、destory(),它们分别在 Servlet 生命周期的不同阶段被 Servlet 容器调用。Servlet生命周期执行流程如下图所示初始化阶段Servlet初始化阶段分为2步:1.加载和实例化S
2021-07-02 14:26:45 302
原创 Java常见集合扩容机制
所谓扩容,即当前集合能容纳的数据量达到一个饱和状态 (饱和状态和加载因子有关)之后, 集合需要申请新的存储空间 。常见的需要扩容的集合 一般是底层基于数组实现 的 ,链表不涉及扩容问题。加载因子的系数小于等于1,当元素个数超过容量长度*加载因子的系数时,进行扩容。另外,不同的集合容器,扩容的机制也不同。一、List接口实现类(ArrayList,Vector)扩容详解ArrayList:底层为Object数组默认容量:0(在jdk1.8以前,ArrayList默认容量是10,从jdk1.8开始
2021-07-01 16:17:26 1741
原创 Vue.js概述及搭建
Vue.js概述及搭建Vue.js是什么?Vue是一套用于构建用户界面的渐进式框架。Vue的核心库只关注视图层,容易上手,便于与第三方库或既有项目整合。当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用提供驱动。Vue.js Hello World搭建工具:HBuilder X在HBuilder X中选择新建项目,如下图所示:选中vue项目(普通模式),点击创建项目的js文件夹中会自带以下两个.js文件:vue.js开发环境版,包含了有帮助的命令行警告。
2021-06-05 00:12:58 174
转载 MyBatis-Plus常用注解
MyBatis-Plus常用注解介绍一下MyBatis-Plus中最常用的几个注解@TableName描述:表名注解属性类型必须指定默认值描述valueString否“”表名schemaString否“”schemakeepGlobalPrefixboolean否false是否保持使用全局的 tablePrefix 的值(如果设置了全局 tablePrefix 且自行设置了 value 的值)resultMapString否“
2021-06-04 11:31:27 252
原创 MyBatis-Plus介绍及使用
这样解释MyBatis-Plus,楼下大爷都入门了一,MyBatis-Plus简介MyBatis-Plus是一个MyBatis增强工具,在MyBatis的基础上制作增强不做改变,为简化开发,提高效率而生。下面这幅来自MyBatis-Plus官网的图,形象地体现了MyBatis与MyBatis-Plus之间的关系:二,特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用
2021-06-04 00:40:32 451 4
原创 Spring Boot 项目开发环境搭建
Spring Boot 项目开发环境搭建了解Spring Boot之后,大家肯定想迫切体验Spring Boot带给我们的便捷。在使用Spring Boot之前,我们先要搭建其开发环境。废话不多说!下面就来给大家介绍两种常见的Spring Boot项目搭建的方式:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7kJstPoU-1622387937391)(F:\Users\寒山\Desktop\教你做事.jpg)]方式1:官网配置生成第一步:进入Spring官网
2021-05-30 23:22:48 2656 10
原创 Spring Boot概述
Spring Boot在讲SpringBoot之前,我们先来聊聊Spring。Spring可以说是JavaEE(Java Enterprise Edition)的轻量级替代产品。Spring为企业级Java开发提供了一种相对简单的方法,通过IOC(控制反转/依赖注入DI)和Aop(面向切面编程),用简单的POJO实现了企业级应用程序的开发。在Spring官网上也可以看到,什么轻量级,非侵入式,IOC,Aop,方便集成其他框架等等优点,确实是大幅度的简化了企业级项目开发,这点估计使用原生 jsp+se
2021-05-30 18:37:11 632
原创 MyBatis缓存机制详解(一级缓存,二级缓存)
MyBatis缓存机制详解(一级缓存,二级缓存)一,什么是缓存缓存就是数据交换的缓存区(称作Cache),是存储数据(使用频繁的数据)的临时地方。当用程序查询数据时,首先会在缓存中寻找,如果找到了就直接返回。如果找不到,则会去数据库中查找。缓存的本质就是用空间换时间,牺牲数据的实时性,以服务器内存中的数据暂时代替从数据库中读取的最新数据,减少程序与数据库之间的IO,减轻服务器压力,减少网络延迟,加快页面打开速度。二,MyBatis中的缓存MyBatis支持声明式数据缓存( declarative d
2021-05-27 01:15:03 894 1
原创 RSA非对称加密算法介绍及其Java实现
RSA非对称加密算法Java实现一,非对称加密非对称加密算法是一种密钥的保密方法。非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将公钥公开,需要向甲方发送信息的其他角色(乙方)使用该密钥(甲方的公钥)对机密信息进行加密后再发送给甲方;
2021-05-18 21:39:22 799 3
原创 Mybatis核心组件作用域与生命周期
Mybatis核心组件作用域与生命周期所谓生命周期就是每一个对象应该存活的时间,有些对象用完一次后就不再使用,这时就要对这些对象进行GC处理,以免继续占用资源,所以我们会根据Mybatis中每个组件的作用去确定其生命周期SqlSessionFactoryBuilderSqlSessionFactoryBuilder的作用在于创建SqlSessionFactory,创建后,SqlSessionFactoryBuilder就完成了使命,失去了作用;因此它适合存在于创建SqlSessionFactory的方
2021-05-16 22:10:57 229
原创 MyBatis执行SQL两种方式(SqlSession和Mapper接口)
MyBatis执行SQL两种方式(SqlSession和Mapper接口)先把上次介绍SQL映射时创建的role表,POJO,映射的接口和XML映射文件搬过来。role表CREATE TABLE `role` ( `id` BIGINT(20) NOT NULL, `role_name` VARCHAR(20) DEFAULT NULL, `note` VARCHAR(20) DEFAULT NULL, PRIMARY KEY (`id`))————————————
2021-05-16 03:00:44 1092
原创 SpringMVC概述(MVC设计模式,SpringMVC工作流程)
SpringMVC概述(MVC设计模式,SpringMVC工作流程)一,MVC设计模式MVC 是 Model、View 和 Controller 的缩写,分别代表 Web 应用程序中的 3 种职责模块。模型:用于存储数据以及处理用户请求的业务逻辑。视图:向控制器提交数据,显示模型中的数据。控制器:根据视图提出的请求判断将请求和数据交给哪个模型处理,将处理后的有关结果交给哪个视图更新显示。基于Servlet 的 MVC 模式的具体实现如下:模型:一个或多个 JavaBean 对象,用于存储
2021-05-14 22:03:53 1468 8
原创 Mybatis实现SQL映射的两种方式详解(xml文件形式和注解形式)
Mybatis实现SQL映射的两种方式详解(xml文件形式和注解形式)SQL映射是Mybatis中最重要,复杂的组件,它由一个接口和对应的XML文件(或注解)组成。它可以配置以下内容:描述映射规则。提供 SQL 语句,并可以配置 SQL 参数类型、返回类型、缓存刷新等信息。配置缓存。提供动态 SQL。在介绍实现映射的方式之前,先用SQL在数据库中创建一个role表。CREATE TABLE `role` ( `id` BIGINT(20) NOT NULL, `role_n
2021-05-14 19:21:17 9293 8
原创 MyBatis SqlSessionFactory和SqlSession
MyBatis SqlSessionFactory和SqlSession一,SqlSessionFactoryMybatis提供了构造器SqlSessionFactoryBuilder来生成SqlSessionFactory。在 MyBatis 中,既可以通过读取配置的 XML 文件的形式生成 SqlSessionFactory,也可以通过Java代码生成 SqlSessionFactory。推荐采用 XML 的形式,因为代码的方式在需要修改的时候会比较麻烦。当配置了 XML 或者提供代码后,My
2021-05-14 17:23:33 1048 6
原创 Mybatis概述(介绍,工作原理,核心组件)
Mybatis概述(介绍,工作原理,核心组件)一,MyBatis是什么MyBatis 本是 Apache 的一个开源项目——iBatis,2010 年这个项目由 Apache Software Foundation 迁移到了 Google Code,并且改名为 MyBatis。MyBatis 是一个基于 Java 的持久层框架。MyBatis 提供的持久层框架包括 SQL Maps 和 Data Access Objects(DAO),它消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索
2021-05-13 17:39:01 888 3
原创 Spring自动装配bean(Autowire)
Spring自动装配bean(Autowire)自动装配就是指 Spring 容器可以自动装配(autowire)相互协作的 Bean 之间的关联关系,将一个 Bean 注入其他 Bean 的 Property 中。要使用自动装配,就需要配置 元素的 autowire 属性。autowire 属性有五个值名称说明byName根据 Property 的 name 自动装配,如果一个 Bean 的 name 和另一个 Bean 中的 Property 的 name 相同,则自动装配
2021-05-13 12:46:04 776
原创 Spring依赖注入(注解方式)
Spring依赖注入(注解方式)在Spring中,尽管使用XML配置文件就可以实现Bean的装配工作,但如果应用中Bean的数量较多,会导致XML配置文件过于臃肿,从而给程序的维护与升级带来一定的困难。Java从JDK5.0以后,提供了Annotation(注解)功能,Spring也提供了对注解技术的全面支持。一,Spring中注入常用的注解如下:1,@Component可以使用此注解描述Spring中的Bean,它是一个泛化的概念,表示一个组件(Bean),可以作用在任何层次。使用时只需要将该注
2021-05-13 12:13:40 9370 1
原创 Spring 依赖注入(xml配置文件方式演示)
Spring 依赖注入(xml配置文件方式演示)应用程序中,通过对象协作来实现一个目标功能的现象非常普遍。越复杂的程序,涉及到的对象会越多,对象与依赖对象之间的耦合性也会愈加复杂。通过依赖注入取代手动处理对象间的关系,可以让程序员专注于程序的编写而不是为对象间复杂的依赖关系操心。一,基本概念注入依赖(DI:Dependency Injection):对象通过构造方法的参数,工厂方法的参数或返回实例后在其上设置属性来定义其依赖项(bean实例中依赖的其他对象)。然后,IOC容器在创建bean实例时注
2021-04-21 00:32:35 428 2
原创 Spring Bean管理(bean简介,bean中主要属性,bean实例化)
Spring Bean管理(bean简介,bean中主要属性,bean实例化)一,bean简介Spring IOC容器管理一个或多个bean。这些bean表示由IOC容器实例化,组装,管理的对象。这些bean是Spring通过提供给IOC容器的配置信息(比如xml文件中的信息)来创建实例的。二,bean中主要包含以下数据(属性)class:包限定类名,通常是定义bean的实际实现类。scope:bean行为配置元素,用于说明bean在容器中的行为(范围,生命周期和回调等)。<!--
2021-04-16 16:36:49 454 1
原创 Spring IOC控制反转(Inverse of Control )
Spring IOC控制反转(Inverse of Control )IOC概念IOC是一种设计思想,就是指将原本在程序中手动创建对象的控制权,交由Spring框架来管理。IOC容器是具有依赖注入功能的容器,负责对象的实例化,对象的初始化,对象和对象之间的关系配置,对象的销毁,对外提供对象的查找等操作,对象的整个生命周期都是由容器来控制。我们需要使用的对象都是由IOC容器进行管理,不需要我们手动通过new的方式创建对象,由IOC容器直接帮我们组装好,当我们需要使用的时候从IOC容器中直接获取就可以了。
2021-04-14 23:06:27 1102 4
原创 Spring框架概述
Spring框架概述Spring是什么?Spring是于2003年兴起的一个轻量级的Java开发框架,是为了解决企业应用开发的复杂性而创建的(简化企业级应用开发)。Spring的核心是控制反转(IoC)和面向切面编程(AOP)。Spring根据代码的功能特点,使用IoC降低业务对象之间耦合度。IoC使得主业务在相互调用过程中,不再自己维护关系,即不用再自己创建要使用的对象了。而是由Spring容器 统一管理,自动“注入”,注入即赋值。而AOP使得系统及服务得到了最大复用,且不用再由程序员手工将系统级
2021-04-14 09:59:04 201
原创 Java反射机制详解
Java反射机制详解一,反射机制是什么?Java反射机制是Java语言的一个重要特性。在讲解Java反射机制前,先给大家介绍两个概念:编译期和运行期。编译期是指把源码交给编译器编译成计算机可以执行的文件的过程。在Java中就是把Java源代码编译成class文件的过程。编译期只是做了一些翻译功能,并没有把代码放在内存中运行起来,而只是把代码当作文本进行操作,比如检查错误。运行期是把编译后的文件交给计算机执行,直到程序运行结束。所谓运行期就是把磁盘中的代码放到内存中执行起来。1.Java反射机制的概
2021-04-02 00:38:40 412
原创 项目管理工具Maven(下载安装,idea中配置,常用maven命令)
项目管理工具Maven安装与配置1.Maven简介Maven 是 Apache 软件基金会的一个开源的项目管理工具,它用来帮助开发者管理项目中的 jar,以及 jar 之间的依赖关系、完成项目的编译、测试、打包和发布等工作。2.Maven中的概念2.1Pom(Project Object Model)项目对象模型Maven 管理的项目的根目录下都有一个 pom.xml 文件。pom.xml 文件指示Maven 如何工作。在 pom.xml 文件中配置项目基本信息以及项目构建信息等。比如:项目坐标
2021-03-29 23:50:50 293 1
原创 Tomcat服务器的安装和使用
Tomcat服务器的安装和使用1.安装Tomcat官方站点:http://tomcat.apache.org获取Tomcat安装程序包tar.gz文件是Linux操作系统下的安装版本zip文件是Windows系统下的压缩版本安装JDK设置JAVA_HOME环境变量设置PATH环境变量安装Tomcat解压tomcat压缩文件2.目录介绍文件夹名称作用bin存放Tomcat服务器的可执行程序conf存放Tomcat服务器的配置文件lib存放Tomca
2021-02-23 00:36:50 228
原创 JavaWeb基础概念
JavaWeb基础概念1.JavaWeb概念a.什么是JavaWeb?JavaWeb是指,所有通过Java语言编写可以通过浏览器访问的程序的总称。JavaWeb是基于请求和响应来开发的。b.什么是请求?请求是指客户端给服务器发送数据,Requestc.什么是响应?响应是指服务器给客户端回传数据,Responsed.请求和响应的关系请求和响应是成对出现的,有请求就有响应2.web资源的分类web资源按实现的技术和呈现的效果的不同,又分为静态资源和动态资源两种。静态资源:html,c
2021-02-22 22:03:15 172
原创 sql92语法连接查询(等值连接,非等值连接,自连接)
sql92语法连接查询(等值连接,非等值连接,自连接)连接查询含义:又称多表查询,当查询的字段来自于多个表时,就要用到连接查询笛卡尔积现象:表1 有m行,表2有n行,结果有m*n行发生原因:没有有效的连接条件如何避免:添加有效的连接条件分类:按年代分类:sql92标准:仅仅支持内连接sql99标准【推荐】:支持内连接+外连接(左外+右外)+交叉连接 按功能分类: 内连接: 等值连接,非等值连接,自连接 外连接: 左外连接,右外连接,全外连接 交叉连接
2021-02-20 22:22:42 1080
原创 MySQL基础——分组查询
MySQL基础——分组查询分组查询语法:select 分组函数,列(要求是出现在group by后面的列)from 表名【where 筛选条件】 #分组前筛选group by 分组的列表【having 筛选条件】 #分组后筛选【order by 子句】注意:查询列表比较特殊,要求是分组函数和group by后面出现的字段特点1.分组查询的筛选条件分为两类数据源不同位置关键字分组前筛选原始表group by子句前面where分组后筛选分组后的结果
2021-02-19 17:55:10 694
原创 MySQL基础——分组函数(聚合函数,统计函数,组函数)
MySQL基础——分组函数(聚合函数,统计函数,组函数)分组函数功能:用于统计使用,又称为聚合函数,统计函数,组函数。分类:sum求和,avg求平均值,max最大值,min最小值 count 非null字段个数特点:1.sum,avg一般用于处理数值型数据,max,min,count可以处理任何数据类型2.以上分组函数都忽略null值3.可以和distinct搭配实现去重运算4.count 函数单独介绍5.和分组函数一同查询的字段要求是group by后的字段简单的使用SELECT
2021-02-14 14:27:39 485
原创 MySQL基础——常见函数(单行函数)
MySQL基础——常见函数(单行函数)MySQL中的函数概念:类似于Java中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名好处:1.隐藏了实现细节,2.提高了代码的可重用性调用: select 函数名(实参列表) 【from 表】;特点: 1.叫什么(函数名)2.干什么(函数功能)分类:1.单行函数如 concat,length,ifnull等2.分组函数功能:做统计使用,又称为统计函数,聚合函数,组函数常见单行函数一,字符函数length 获取参数值的字节个数SEL
2021-02-13 18:13:19 164
原创 MySQL基础——DQL语句(排序查询)
MySQL基础——DQL语句(排序查询)排序查询语法:select 查询列表from 表【where 筛选条件】order by 排序列表 【asc|desc】特点:1.asc代表的是升序,desc代表的是降序如果不写,默认是升序2.order by子句中可以支持单个字段,多个字段,表达式,函数,别名3.order by子句一般放在查询语句的最后面,limit子句除外案例1:查询员工信息,要求工资从高到低排序SELECT * FROM employees ORDER BY sal
2021-02-11 23:18:27 258 1
原创 MySQL基础——DQL语句(条件查询)
MySQL基础——DQL语句(条件查询)条件查询语法:select 查询列表from 表名where 筛选条件;筛选条件分类:一,按条件表达式筛选,条件运算符:> < = != <> >= <=二,按逻辑表达式筛选,逻辑运算符:&& || ! and or not 作用:用于连接条件表达式 && 和 and : 两个条件都为true,结果为true,反之为false || 和 or : 只要有一个
2021-02-10 22:43:00 160
原创 MySQL基础——DQL语句(基础查询)
MySQL基础——DQL语句(基础查询)基础查询语法:select 查询列表 from 表名;备注:1.查询列表可以是:表中的字段,常量值,表达式2.查询的结果是一个虚拟的表格查询示例:#1.查询表中的单个字段SELECT last_name FROM employees;#2.查询表中的多个字段(多个字段之间用','隔开)SELECT last_name,salary,email FROM employees;#3.查询表中的所有字段方式一:列出表中所有的字段名SELEC
2021-02-09 21:00:22 179
原创 MySQL基础——数据库简介
MySQL基础——数据库简介数据库的优点1.持久化数据到本地2.可以实现结构化查询,方便管理数据库相关概念DB:数据库,存储一组有组织的数据的容器DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据SQL:结构化查询语言,用于和DBMS通信的语言数据库存储数据的特点1,将数据放到表中,表在放到仓库中2,一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表明具有唯一性3,表具有一些特性,这些特性定义了数据在表中如何存储,类似于Java中类的设计4,表由列组
2021-02-07 14:11:20 128
原创 Arrays工具类
Arrays工具类Arrays类是一个工具类,其中包含了许多数组操作的方法。这个Arrays类里均为static修饰的方法,可直接通过Arrays类名进行调用。其中常用的方法如下:1)int binarySearch(type[] a, type key)使用二分法查询 key 元素值在 a 数组中出现的索引,如果 a 数组不包含 key 元素值,则返回负数。调用该方法时要求数组中元素己经按升序排列,这样才能得到正确结果。2)int binarySearch(type[] a, int fromI
2021-02-03 21:45:03 113
原创 二维数组详解
二维数组详解在Java中二维数组被看作为数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。Java并不直接支持二维数组,但是允许定义数组元素是一维数组的一维数组,以达到同样的效果。创建二维数组声明二维数组的语法如下:type arrayName[][]; // 数据类型 数组名[][];或type[][] arrayName; // 数据类型[][] 数组名;其中type表示二维数组的类型,arrayName表示数组名称,整个二维数组可表示一个矩阵,第一个
2021-02-03 21:22:55 7268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人