自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 牛客算法训练-判断链表是否有环

题目描述将给出的链表中的节点每\ k k 个一组翻转,返回翻转后的链表如果链表中的节点数不是\ k k 的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。要求空间复杂度 \ O(1) O(1)例如:给定的链表是1\to2\to3\to4\to51→2→3→4→5对于 \ k = 2 k=2, 你应该返回 2\to 1\to 4\to 3\to 52→1→4→3→5对于 \ k = 3 k=3, 你应该返回 3\to2 \to1 \to 4\to 53→2→1→4→5解

2021-01-02 16:22:53 310 1

原创 牛客算法训练———链表反转

题目输入一个链表,反转链表后,输出新链表的表头。思路链表反转这是一个经典的题,要做到链表反转,我们只需要将链表中的next指向位置更改就行,在可以创建新链表的情况下,只需对新链表采用头插法来插入数据代码部分/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution

2021-01-01 17:53:49 181

原创 牛客算法训练——两个链表的第一个公共节点

题目输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的解题思路首先我们要知道什么是公共节点,两个链表从某一节点开始,他们的next都指向同一个节点。但由于是单向链表的节点,每个节点只有一个next,因此从第一个公共节点开始,之后他们的所有节点都是重合的,不可能再出现分叉。我们的目的就是找到两条链表重合部分的第一个节点,由于两个链表重合部分的长度是一样的,所以在两个链表长度不同时,超出的一部分肯定不会是公共部分,在查找公共节点

2021-01-01 17:35:09 167

原创 SpringBoot集成 junit

Spring Boot集成Junit5创建使用springboot创建就完成集成测试(1)在Spring Boot项目中使用Junit进行单元测试 PersonService的方法 (2)添加Junit的起步依赖 以前使用junit4 现在,springboot 2.4 自动使用junit5 (3)编写测试类@SpringBootTest public class TextXxx 在Spring Boot项目中如果编写测试类则必须要在类上面添加@SpringBootTest

2020-12-10 16:43:36 134

原创 面试必须要会的jvm相关题

JVM内存结构方法区和对是所有线程共享的内存区域;而java栈、本地方法栈和程序员计数器是运行是线程私有的内存区域。Java堆(Heap) 是java虚拟机所管理的内存中最大的一块 ,java堆是对所有线程共享的一块内存区域,在虚拟机启动时创建,此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。方法区,方法区(Method Area)与Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。程序计数器 程序计

2020-11-20 14:58:57 108 1

原创 面试题 equals和==的区别?

equals和==的区别?问这个可以说是老生常谈了在java中,equals和 == ** 的最大区别就是 (==)他是运算符**,当然,你又会说他们不都有比较值的作用啊,做笔试题经常考具体情况是下面这些java中的基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean他们之间的比较,应用双等号(==),比较的是他们的值。当使用==来判断两个变量是否相等的时候,如果两个变量是基本类型变量,且都是数值类型,则只要两个变量

2020-11-18 21:26:49 12838 7

原创 面试题-什么是java泛型?为什么要使用泛型?用Object不行吗?

什么是java泛型?为什么要使用泛型泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、

2020-11-18 20:52:41 1466 1

原创 Spring系列面试题

1. SpringMVC 的工作原理1、用户发送请求到前端控制器(DispatcherServlet)。2、前端控制器请求处理器映射器(HandlerMapping)去查找处理器(Handler)。3、找到以后处理器映射器(HandlerMappering)向前端控制器返回执行链(HandlerExecutionChain)。4、前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)。5、处理器适配器去执行Handler。

2020-11-18 20:23:33 211

原创 面试题-请问StringBuffer和StringBuilder有什么区别?

面试官Q1:请问StringBuffer和StringBuilder有什么区别?这是一个很基础的面试题,每次被问到的概率的百分之八九十他们的区别可以从三个角度来看继承关系?如何实现的扩容?线程安全性?继承关系从结构图上可以直到,StringBuffer和StringBuiler都继承自AbstractStringBuilder类区别1:线程安全StringBuffer:线程安全,StringBuilder:线程不安全。因为 StringBuffer 的所有公开方法都是 synchro

2020-11-17 10:56:49 6438 3

转载 面试-线程的五种状态

面试官:您知道线程的生命周期包括哪几个阶段?几种状态之间的转换是怎么样的?应聘者:线程的生命周期包括:新建,就绪,运行,阻塞,销毁新建 就是刚使用new() 方法,new出来的线程就绪 调用线程的start()方法后,这时候线程处于等待cpu分配资源阶段,谁先抢到cpu资源,谁就先开始执行运行:当就绪的线程被调度并获得CPU资源是,便进入的运行状态,run方法定义了线程的操作和功能阻塞:在运行状态,可能因为某些原因导致运行状态的线程变成了阻塞状态,比如调用的比如sleep()、wait()之后线

2020-11-17 09:45:53 211

原创 数据安全——对数据加盐加密

在实现登录模块的时候,我们一般要做一个数据校验,凭证匹配器-普通加密(1)加密将明文加密成密文保存,账号保存在数据库中是需要加密码的(2)加密算法常见加密算法(3)实现》1 对数据库密码进行md5加密使用mysql的md5函数对密码进行加密,然后直接修改数据库的用户密码》2 在applicationContext-shiro.xml,添加加密认证配置...

2020-11-12 21:33:33 887

原创 shiro框架实现权限管理

在进行权限管理前,我们经常遇到的问题便是有些页面你直接用url就可以访问,不管你登录没登录,还有就是你在页面中跳转的时候你无法批判你是否有这个权限使用,当然这个时候大部分人所想的是在访问前判断一下用户有没有这个权限,当然这也是一种方法,但是,这种解决方式需要在我们测试好的代码上动刀,不仅凭空增加了工作量,而且大大增加了代码的风险,这里我大致讲解一下 shiro这个安全框架,我们用它来弄权限管理权限管理1.1 什么是权限管理基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实

2020-11-11 22:44:43 1972

原创 使用ajax传值给Ztree菜单实现用户权限分配

给角色分配权限–用户操作界面通过查询出用户所有可选的权限,用户通过勾选选择权限实现对用户权限的分配,具体通过分级的树状菜单实现业务流程先查询所有的模块权限显示分级菜单获取分级菜单的值Ztree介绍(1)什么是Ztree?zTree 是一个依靠 jQuery 实现的多功能 “树插件”。在使用的时候,先导入jquery才能导入zTree(2)Ztree在哪里使用到?》树状菜单》树状数据的Web显示》权限管理等等(3)Ztree有什么特点?优异的性能、灵活的配置、多种功能的组合是

2020-11-09 16:03:35 106

原创 利用spring 框架的AOP来实现日志打印

Aop记录日志(1)什么是AOPAOP ,Aspect Oritentd Programing 面向切面编程本质就是在不改变代码的基础上生成动态代理类(新类)(2)应用场景》日志记录:》事务管理》权限管理》性能数据记录Aop记录日志(1)实现步骤编写springmvc.xml, 开启Aop自动代理编写日志切面类(@Aspect)测试Aop,自动记录日志。(2)实现LogAspect1. 编写日志切面类(@Aspect)//第一步:编写切面类@Aspect //配置了a

2020-11-06 21:43:54 327

原创 RBAC权限模型-管理系统编写必备

RBAC权限模型引入(1)如何设计用户权限普通的用户权限设计三个表搞定(用户表,权限表,用户权限表)2)有什么特点?》1 租户增加,选成会大量的冗余数据!数据增长太快》2 添加或者删除权限不方便建议使用RBAC权限模型RBAC权限模型介绍(1)什么是RBAC权限模型?RBAC 是基于角色的访问控制(Role-Based Access Control )SAAX-Export权限设计(1)五表之间的关系角色与权限: 多对多。(产生一张角色权限中间表)用户与角色:多对多。(产生一

2020-11-04 08:47:31 267

原创 saas-export项目-部门管理-更新

部门修改后台 @Test public void test05(){ String deptId="4028827c4fb633bd014fb64467470000"; Dept dept = iDeptService.findById(deptId); //1 模拟页面的修改 dept.setDeptName("ym"); dept.setCompanyName("吉首大学"); dept

2020-11-01 21:45:13 68

原创 saas-export项目-部门管理-删除

部门删除分析(1)尝试删除指定id的部门数据(2)如果当前部门没有给其他部门作上级,则可以删除成功,否则删除失败》1 判断是否有没有给其他部门作上级》2 再删除# 删除时 没有给其他部作上级部门的delete from pe_dept where dept_id='33'# 删除时 当前部门给其他部门作上级部门的delete from pe_dept where dept_id='100101'# 判断 记录数==0 是可删除的select * from pe_dept where pa

2020-11-01 21:17:37 109

原创 saas-export项目-部门管理-打开编辑页面回显

编辑页面dept-update.jsp${path}/system/dept/toUpdate.do?deptId=${dept.deptId}DeptController // ${path}/system/dept/toUpdate.do?deptId=${dept.deptId} @RequestMapping(path="/toUpdate",method ={ RequestMethod.GET, RequestMethod.POST}) public String to

2020-11-01 19:29:52 74

原创 使用PowerDesigner建数据库模型并生成sql文件

PowerDesigner介绍(1)PowerDesigner是什么?Power Designer 是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,他几乎包括了数据库模型设计的全过程(2)PowerDesigner有什么特点?优点:不用在使用create table等语句创建表结构,数据库语句,可以自动生成数据库设计人员只关注如何进行数据建模即可PowerDesigner建模使用选择新建数据库模型打开PowerDesigner,File->New

2020-10-24 11:17:35 338

原创 saas-export项目-管理系统前端模板使用-AdminLTE介绍与入门

AdminLTE介绍(1)AdminLTE是什么?AdminLTE是一款建立在bootstrap和jquery之上的开源的模板主题工具(2)AdminLTE有什么特点?》》提供一系列响应的、可重复使用的组件, 并内置了多个模板页面》》自适应多种屏幕分辨率,兼容PC和移动端》》快速的创建一个响应式的Html5网站》》AdminLTE 不但美观, 而且可以免去写很大CSS与JS的工作量AdminLTE入门程序...

2020-10-24 09:40:41 249

原创 saas-export项目-项目搭建

一、导入数据库(1)数据库sql文件二、创建父项目 parentexport_parent(1)创建Project工程,不需要勾选模板2)添加依赖 pom.xmlparent 的 pom.xml <!-- 定义依赖的版本号 --> <properties> <junit.version>4.12</junit.version> <spring.version>5.2.9.RELEASE

2020-10-23 20:41:38 164

原创 ssm整合-实现对数据进行增删查改

项目简介(1)项目的经典模块-CRUD功能(2)什么是CRUDCRUD:Create( 创 建 ) Retrieve(查询) Update(更新) Delete(删除)sql数据库的设计create database crud;use crud;create table department( did int primary key auto_increment, dname varchar(20))insert into department values(nu

2020-10-22 23:38:13 789

原创 ssm整合-实现对数据进行增删查改--含ajax普通前后台通信

使用ajax的前后端通信Controller方法返回值类型Object(1)Controller方法返回类型可以有几种?ModelAndViewvoidStringObject(2)@ResponseBody调jackson库将Object转成json字符串返回如果没有依赖jackson库则,抛出异常HttpMessageNotWritableException: No converter found for return value of type: class java.util.A

2020-10-22 23:36:27 534

原创 ssm整合-实现对数据进行增删查改--不含ajax普通前后台通信

不含ajax普通前后台通信DepartmentController@Controller@RequestMapping("/department")public class DepartmentController { @Autowired IDepartmentService departmentService; private static final Logger l = LoggerFactory.getLogger(DepartmentController.cl

2020-10-22 23:22:20 176

原创 SSM整合-完整配置文件

ssm整合说明spring+springmvc+mybatis,称为ssm。ssm可以说是后端程序员必备技能,应该也是目前用得最多的,所以无论如何都要掌握一、项目环境搭建:1. 新建maven项目2. 创建项目目录结构3. 添加依赖 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.comp

2020-10-17 11:41:04 607

原创 一篇文章学会SpringMVC框架

SpringMVC的介绍(1)springmvc 是什么?Spring mvc属于表现层的框架,它是Spring框架的一部分(2)springmvc 有什么用?》接收请求,获取参数》处理参数》将结果响应给浏览器 如 重定向或者请求转发或者返回jsonspringmvc就是对Servlet的封装(3)springmvc 属于spring FrameWork的一部分,就是一个模块SpringMVC的简单处理流程(1)springMVC的处理流程是?》核心是前端控制器》真正处理业务的是

2020-10-13 20:59:24 122 1

原创 Spring事务管理-实现@Transactional事务回滚

事务的概念(1)什么是事务?事务的作用:保证一组操作在进行过程中要么同时成功,要么同时失败.1.目的:保持多并发情况下数据一致.2.目的:如果出现错误的操作可以进行改正(2)什么是事务的特性?事务的特性(ACID)原子性: 一个事务是最小的执行单元,不可以分割一致性: 事务指定的前后,数据要保持一致.持久性: 事务一旦提交或回滚,在数据库中持久的改变.隔离性: 隔离性用来保证多个用户来操作数据库的同一份数据,不会受到相关干扰的特性.事务的术语(1)什么是事务的隔离级别?(2)并发

2020-10-12 20:54:00 537 1

原创 我所理解的Spring AOP

AOP(Aspect Oriented Programming)是面向切面编程。就是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。前面这官方的理解起来相当困难,简单说 就是在不改变方法原代码的基础上,对方法进行功能增强,本质上是生成了一个新的类,叫做代理类,在这个代理类的方法里,对你要加强的方法,在执行前,执行后添加新的代码或方法,然后方法调用时调用的是加强后的代理类方法AOP对程序的扩展方式采用动态代理的方式. (JDK动态代理和Cglib动态代理两种方式)Spring .

2020-10-09 18:01:30 79 1

原创 Spring框架之SpringIOC

Spring的介绍(1)Spring是什么?Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架full-stack 全栈轻量级按需添加模块开源 可以获取源代码以 IOC- (Inverse Of Control:反转控制)和 AOP- (Aspect Oriented Programming:面向切面编程)为内核(2)有什么特点?提供了展现层 SpringMVC持久层 Spring JDBC还能整合开源世界众多著名的第三方框架和类库业务层事务管理

2020-10-08 20:44:09 138

原创 途牛旅游项目—注册篇

注册功能_功能分析注册的后台功能代码编写UserService的register方法测试 @Test public void test03() { UserService userService = new UserService(); User user = new User(); user.setUsername("jackhello"); user.setPassword("123456"); use

2020-10-07 23:04:58 916 1

原创 途牛旅游项目练习-登录篇

项目准备工作三层架构准备工作 技术选型(1)Web层a)Servlet:前端控制器b)html:视图c)Filter:过滤器d)BeanUtils:数据封装e)Jackson:json序列化工具(2)Service层f)Javamail:java发送邮件工具g)Redis:nosql内存数据库h)Jedis:java的redis客户端(3)Dao层i)Mysql:数据库j)Mybatis:对jdbc进行封装pom.xml依赖<dependencies&gt

2020-10-07 19:19:44 307 1

原创 MyBatis多表连接一对一与一对多

操作前准备新建maven工程添加依赖 <!-- 1:依赖配置 --> <dependencies> <!-- junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version>

2020-09-26 11:42:38 464

原创 Mybatis实例—实现对数据库表的简单修改

项目mybatis对应依赖 <!-- MySql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.32</version> </dependenc

2020-09-24 21:42:19 796

原创 IDEA建立maven工程实现

在初学javaWeb的时候,我们一般是直接建立web项目来实际操作,到了后期,我们做项目时一般建立的是Maven工程,既然要使用Maven,就要先了解它。一、什么是MavenMaven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。二、Maven是干什么的它是一个Apache的开源项目,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理,为了不重复造轮子。例如:两个项目A

2020-09-22 20:06:39 205

原创 一篇文章学会Redis-redis缓存商品

我们常学的数据库是MySQl,Redis,Oracle其中MySQl,Oracle是关系型数据库,而Redis是就是NoSQl(Not Only SQl),意味“不仅仅是SQL",是一项全新的数据库理念,泛指非关系型的数据库。而Redis就是非关系型数据库关系型数据库与非关系型数据库的区别1) 关系型数据库特点(Mysql Oracle SqlServer)数据是由一张张的表组成,而且这些表与表之间有关系(一对一,一对多,多对多)数据是存在硬盘上,每次访问时,是将数据从硬盘读取到内存中

2020-09-21 20:58:27 1986 2

原创 jquery--使用ajax提交json实现简单注册

简单注册的主要步骤后台获取请求数据对数据进行逻辑处理将数据结果转变成json格式,但切记不要转发或者重定向页面编写表单导入jQuery,使用ajax,选择提交数据的,数据格式,数据方式,ajax提交成功执行方法,提交失败执行方法package com.qst.servlet;import com.fasterxml.jackson.databind.ObjectMapper;import com.qst.bean.Result;import javax.servlet.Servl

2020-09-18 20:39:36 1150

原创 Session学习

Session的概述(1)什么是Session? Session技术就是在服务端存取会话的数据 (2)有什么特点? 存取key-value 数据有存活时间 每个Session的jsessionId不同Session的原理原理:原理:服务器为浏览器分配一种对象叫session 每个session有id,可以存key-value 为了每个浏览器访问自己的数据不受他人影响,必须让Session有jessionId Session存取数据 (1)获取SessionHtt...

2020-09-13 22:06:26 92

原创 一篇文章简单学完Cookie的常用方法

会话的介绍(1)什么是会话浏览器和服务器之间发生的一系列请求和响应的过程会话开始: 打开浏览器-访问京东会话结束:关闭浏览器(2)会话产生的数据在客户端与服务器端交互的过程中,也会产生一些数据。为了保存会话过程中产生的数据,在Servlet技术中,提供了两个用于保存会话数据的对象,分别是Cookie和Session(3)本质就是在浏览器或者服务器存取数据的技术Cookie的概述(1)什么是CookieCookie技术就是在浏览器端存取会话的数据(2)Cookie有什么特点?数据是ke

2020-09-13 21:38:26 200

原创 转发与重定向的区别与使用

页面的跳转:转发转发的原理转发的方法转发与重定向的作用在Servlet中实现页面的跳转有两种方式:转发和重定向什么是转发概念由服务器端进行的页面跳转request-转发和重定向的区别(重点)在这里插入图片描述(1)重定向两次请求,两次响应重定向不携带数据重定向地址栏发生改变(2)转发一次请求,一次响应转发需要携带数据,请求域中数据不会丢失转发地址栏不会发生变化疑问问:什么时候使用转发,什么时候使用重定向?如果要保留请求域中的数据,使用转发,否则使用重定向。以后

2020-09-12 20:45:36 191

原创 Request快速学习

request-概述(1)什么是request?有两种含义A:Http中的requestB:Servlet中的requestHttp中的request(1)Http中的request是什么?Http请求包含三部分:请求行、请求头、请求体。注意:GET请求不包含请求体抓包查看GET请求抓包查看POST请求(2)请求小结请求行:请求方式 和请求路径请求头:键值对组成请求体:GET没有请求体,POST有请求体Servlet中的request(1)Servlet中的request

2020-09-12 19:48:45 307

空空如也

空空如也

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

TA关注的人

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