java

带你了解Java数据结构和算法之前缀,中缀和后缀表达式

2022-01-17
目录 1.人如何解析算术表达式 ①.求值 3+4-5 ②.求值 3+4*5 2.计算机如何解析算术表达式 3.后缀表达式 ①.如何将中缀表达式转换为后缀表达式? 一.先自定义一个栈 二.前缀表达式转换为后缀表达式 三.测试 四.结果 五.分析 ②.计算机如何实现后缀表达式的运算? 4.前缀表达式 ①.如何将中缀表达式转换为前缀表达式? ②.计算机如何实现前缀表达式的运算? 总结 1.人如何解析算术表达式 如何解析算术表达式?或者换种说法,遇到某个算术表达式,我们是如何计算的: ①.求值 3+4-

Spring @bean和@component注解区别

2022-01-17
目录 Spring 中的一些注解 2. Autowire 和 @Resource 的区别 3. 将一个类声明为 Spring 的 bean 的注解有哪些? 4. @Configuration :配置类注解 5. @ControllerAdvice :处理全局异常利器 6. @Component, @Repository, @Service 的区别 总结 本文打算介绍几个不太容易说出其区别,或者用途的 Spring 注解,比如 @Component 与 @Bean 的比较,@ControllerA

Java异常处理机制深入理解

2022-01-17
目录 1.初识异常 2.异常的基本用法 异常处理流程 3.为什么要使用异常? 异常应只用于异常的情况 4. 异常的种类 4.1 受查异常 解决方案: 4.2非受查异常 5.如何使用异常 避免不必要的使用受查异常 6.自定义异常 1.初识异常 我们在写代码的时候都或多或少碰到了大大小小的异常,例如: public class Test { public static void main(String[] args) { int[] arr = {1,2,3}; System.out.println

详解Java接口签名(Signature)实现方案

2022-01-17
目录 一.要求 二.流程 三.实现 大家好,我是程序员田同学! 今天上午收到一个需求,针对当前的系统开发一个对外开放的接口. 既然是对外开放,那么调用者一定没有我们系统的Token,就需要对调用者进行签名验证,签名验证采用主流的验证方式,采用Signature 的方式. 一.要求 下图为具体要求 二.流程 ​1.线下分配appid和appsecret,针对不同的调用方分配不同的appid和appsecret 2.加入timestamp(时间戳),10分钟内数据有效 3.加入流水号noncestr

IDEA快速搭建spring boot项目教程(Spring initializr)

2022-01-17
目录 IDEA快速搭建spring boot项目 1.创建项目 2.编写控制器 3.运行项目 IDEA添加配置SpringBoot Spring Initializr工具 1.点击file–点击settings–点击plugins 2.搜索spring – 找到Spring Assistant 3.点击install,等待加载完成后重启idea IDEA快速搭建spring boot项目 1.创建项目 老规矩,点击Create New Project 2.编写控制器 在com.demo.spri

在SpringBoot中注入RedisTemplate实例异常的解决方案

2022-01-17
目录 注入RedisTemplate实例异常 贴出详细的错误日志 最后想再验证一个小的问题 注入RedisTemplate实例异常 最近,在项目开发过程中使用了RedisTemplate,进行单元测试时提示 Field redisTemplate in com.example.demo1.dao.RedisDao required a bean of type ‘org.springframework.data.redis.core.RedisTemplate’ that could not b

Spring的DI依赖注入详解

2022-01-17
目录 1.什么是DI依赖注入? 2.利用 set 方法给属性赋值 3.利用 构造函数 给属性赋值 总结: 1.什么是DI依赖注入? spring动态的向某个对象提供它所需要的其他对象.这一点是通过DI(Dependency Injection,依赖注入)来实现的.比如对象A需要操作数据库,以前我们总是要在A中自己编写代码来获得一个Connection对象,有了 spring我们就只需要告诉spring,A中需要一个Connection,至于这个Connection怎么构造,何时构造,A不需要知道

Springboot RestTemplate设置超时时间的简单方法

2022-01-17
目录 排查: Java Config配置 配置文件指定 RestTemplate 设置超时时间注意点 总结 RestTemplate未设置超时时间,导致RabbitMQ队列大量堆积,消费者假死,不进行消费,类似线程堵塞. 排查: 从日志排查问题,在从进入消费者到结束期间,会调用业务服务,然而通过开始时间至结束时间,花费的时间竟然高达100多秒,查看业务服务未发现异常.出现这种问题的原因也有可能在消费期间网络波动导致HTTP连接出现问题,一直处于等待状态.由此判断可能是HTTP超时时间未设置导致的

maven依赖的version声明控制方式

2022-01-17
目录 maven依赖的version声明控制 下面以springcloud的注册中心模块举例 maven设置依赖version属性 1.加入profiles 2.version处用${name}替代 maven依赖的version声明控制 在写新的springcloud项目时 启动报错Correct the classpath of your application so that it contains a single, compatible version of ........ 大意是确

Java实战项目之校园跑腿管理系统的实现

2022-01-17
前端使用的是vue+elementui,这款系统只适合学习巩固SpringBoot+VUE,后面还要在这上面加校园公告.校园零食等功能,后期代码我也会持续更新上去.系统分为管理员和学生.学生是管理员后台添加的两种角色. 运行环境: 后端 jdk1.8.maven3.5/3.6 mysql5.7 idea/eclipse 前端 idea vue-cli node.js 搭建vue环境 webpack3.6.0指定版本 管理员控制层: @Controller @RequestMapping(valu

关于@SpringBootApplication与@SpringBootTest的区别及用法

2022-01-17
目录 @SpringBootApplication与@SpringBootTest区别用法 1 @SpringBootApplication 注解的应用 2 @SpringBootTest 注解的应用 3 @SpringBootApplication 和 @SpringBootTest 的区别 4 @ComponentScan(包含了两个filter) 解析 5 @EnableAutoConfiguration 注解解析 6 @…Test 注解 SpringBootTest对比SpringBoo

SpringBoot结合Mybatis实现创建数据库表的方法

2022-01-17
目录 前言 为什么要通过应用实现创建表的功能 准备创建表的 SQL 语句 实现通过 MyBatis 创建数据库表示例 在 Maven 中引入相关依赖 在 SpringBoot 配置文件中添加数据库配置 创建测试的 Mapper 接口类 创建与 Mapper 关联的 XML 文件 创建用于测试的 Controller 类 创建 SpringBoot 启动类 调用创建表的接口进行测试 前言 系统环境: JAVA JDK 版本:1.8 MySQL 版本:8.0.27 MyBatis 版本:3.5.9

SpringBoot结合Quartz实现数据库存储

2022-01-17
目录 一.先创建一个SpringBoot项目 二.导入依赖 三. 导入DruidConnectionProvider.java(Druid连接池的Quartz扩展类) 四. 修改自定义quartz.properties配置(在项目中添加quartz.properties文件(这样就不会加载自带的properties文件) ) 五.自定义MyJobFactory,解决spring不能在quartz中注入bean的问题 六.创建调度器schedule 七. 创建自定义任务 八. 更新quartz中的

带你了解Java数据结构和算法之栈

2022-01-17
目录 1.栈的基本概念 2.Java模拟简单的顺序栈实现 3.增强功能版栈 4.利用栈实现字符串逆序 5.利用栈判断分隔符是否匹配 6.总结 1.栈的基本概念 栈(英语:stack)又称为堆栈或堆叠,栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表.它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来).栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针. 栈是允许在同一端进行插入和删除操

Spring的事务管理你了解吗

2022-01-17
目录 1.事务介绍 2.事务的四个特性(ACID) 3.Spring 事务管理的核心接口 4.PlatformTransactionManager 事务管理器 5.TransactionStatus 事务状态 6.TransactionDefinition 基本事务属性的定义 一.传播行为: 二.隔离级别: 三.只读 四.事务超时 五.回滚规则 7.Spring 编程式事务和声明式事务的区别 8.不用事务实现转账 第一步:创建Java工程并导入相应的 jar 包 第二步:编写 Dao 层 第三步

Java的深拷贝和浅拷贝深入了解

2022-01-17
关于Java的深拷贝和浅拷贝,简单来说就是创建一个和已知对象一模一样的对象.可能日常编码过程中用的不多,但是这是一个面试经常会问的问题,而且了解深拷贝和浅拷贝的原理,对于Java中的所谓值传递或者引用传递将会有更深的理解. 1.创建对象的5种方式 ①.通过 new 关键字 这是最常用的一种方式,通过 new 关键字调用类的有参或无参构造方法来创建对象.比如 Object obj = new Object(); ②.通过 Class 类的 newInstance() 方法 这种默认是调用类的无参构

Spring配置数据源的三种方式(小结)

2022-01-17
目录 一.前言 三.开发数据源的方式 方式1:手动输入 方式2:Properties配置文件 方式3:Spring配置数据源 四.总结 一.前言 今天学习了用spring配置Druid数据源的三种方式,整理了学习笔记,希望大家喜欢! 二.数据源的作用 数据源(连接池)是提高程序性能如出现的 事先实例化数据源,初始化部分连接资源 使用连接资源时从数据源中获取 使用完毕后将连接资源归还给数据源 常见的数据源:DBCP.C3P0.BoneCP.Druid等等,本文主要以Druid数据源为案例实现Spr

java mybatis如何操作postgresql array数组类型

2022-01-17
目录 我定义了几个基础数据类型的数组 java mybatis操作 postgresql array数组类型备忘 找了半天没有找到postgresql中关于array数组类型的字段如何对应到java中的数据类型,后来找到了mybatis的TypeHandler,只要实现一个自定义的TypeHandler就行了,如下, 我定义了几个基础数据类型的数组 public class ArrayTypeHandler extends BaseTypeHandler<Object[]> { private

SpringBoot使用前缀树过滤敏感词的方法实例

2022-01-17
目录 一.前缀树 二.敏感词过滤器 总结 一.前缀树 一般设计网站的时候,会有问题发布或者是内容发布的功能,这些功能的有一个很重要的点在于如何实现敏感词过滤,要不然可能会有不良信息的发布,或者发布的内容中有夹杂可能会有恶意功能的代码片段,敏感词过滤的基本的算法是前缀树算法,前缀树也就是字典树,通过前缀树匹配可以加快敏感词匹配的速度. 前缀树又称为Trie.字典树.查找树.主要特点是:查找效率高,但内存消耗大:主要应用于字符串检索.词频统计.字符串排序等. 到底什么是前缀树?前缀树的功能是如何实现

java实现简单的俄罗斯方块

2022-01-17
本文实例为大家分享了java实现简单俄罗斯方块的具体代码,供大家参考,具体内容如下 结合网上的资料刚做完课程设计,具体代码如下: public class TetrisPanel extends JPanel{     private final int[][] map = new int[13][23];// map[列号][行号].真正的方块区是:21行*10列.边框(2列,1行)     // 方块的形状:     // 第一维代表方块类型(包括7种:S.Z.L.J.I.O.T)