自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JSR303后端校验详解

前言数据校验是用来判断输入的数据是否满足规定的要求的。前端可用JS来校验,如用户名唯一性,生日格式,邮箱格式校验等。前端做了数据校验,后端也做数据校验的原因是防止有人绕过前端界面,直接向后端发起请求,导致数据库内写入了脏数据。常用注解JSR提供的校验注解: @Null 被注释的元素必须为 null @NotNull 被注释的元素必须不为 null @AssertTrue 被注释的元素必须为 true @AssertFalse 被

2022-03-31 11:14:06 670

原创 怎么使用mybatis-plus实现逻辑删除?

一、什么是逻辑删除?逻辑删除区别于物理删除。物理删除是指直接删除数据库中数据。逻辑删除并不是真正的删除,而是修改数据库中某一字段的值,使其在页面不再显示。二、使用mybatis-plus实现逻辑删除1、在application.yml文件中填写如下配置:mybatis-plus: global-config: db-config: id-type: auto logic-delete-value: 1 # 逻辑已删除值(默认为 1) logic

2022-03-30 09:02:43 1533

原创 什么是跨域问题?跨域问题怎么解决?

一、什么是跨域?当前发起请求的域与该请求指向的资源所在的域不一样,就是跨域。这里所说的域是指协议+域名+端口号,如果这三者都完全一致,则是同域请求,只要有一个不同,就是跨域请求。二、预检请求浏览器发送请求时,会判断是什么请求,如果是简单请求,直接执行服务端程序。如果是非简单请求,会发送预检请求,服务器成功响应预检请求后,才会发送真正的请求,携带真实的数据。简单请求满足下列所有条件,就属于简单请求。请求方式为:GET、POST、HEADHTTP头部信息为以下几种:无自定义头部字段A

2022-03-28 17:16:51 2011 1

原创 ConcurrentHashMap 1.8源码详解

ConcurrentHashMap 1.8源码详解一、jdk1.8容器初始化一、jdk1.8容器初始化//没有进行任何操作,在添加数据时才会创建数组 public ConcurrentHashMap() { }//initialCapacity:指定数组初始长度(创建出的数组长度不是这个值)public ConcurrentHashMap(int initialCapacity) { if (initialCapacity < 0) thro

2021-11-15 22:44:06 581

原创 很多博文都是错的,ConcurrentHashMap的容量为什么是2的n次幂

归根到底,是为了提高计算的效率,而不是很多博文说的使散列表分布更加均匀。在jdk1.8中ConcurrentHashMap的数据结构为数组+链表+红黑树在插入新数据时,要确定插入的索引位置。同样,在数组扩容时,旧数据需要迁移到新数组中,其中,有的数据的位置可能会发生变化。下面就从插入数据时确定索引位置和迁移数据确定索引位置两个方面来讲。1.1插入数据插入数据时,先根据key的hashCode()计算出hash值,再通过一个扰动算法使hash值的高十六位与低十六位都参与进计算,尽可能的使散列表分布均

2021-11-13 20:55:29 1176 1

原创 计数统计为啥用LongAdder,LongAdder源码讲解

LongAdder源码讲解一、在Jdk1.8中,为什么不使用AtomicLong这种原子类型来计数二、在高并发情况下,LongAdder如何解决性能的问题?三、LongAdder源码解析一、在Jdk1.8中,为什么不使用AtomicLong这种原子类型来计数public final long incrementAndGet() { //this:当前对象 //valueOffset:当前对象的偏移量 //根据当前对象和偏移量可以获取到内存中的值 return unsafe.g

2021-11-11 18:04:09 364

原创 常见的四个map实现类

2021-10-11 19:48:08 239

原创 为什么重写equals还要重写hashcode?怎么重写hashcode?

为什么重写equals还要重写hashcode?怎么重写hashcode? 一、hash表的存储方法?二、为什么重写equals时还要重写hashcode?三、怎么重写hashcode()?一、hash表的存储方法?hash表采用数组+链表+红黑树的存储结构。用put()存储时,将key值转换成hash值,然后再转换成数组的下标,如果此处没有值,直接插入,若有值,则碰撞。碰撞之后,存储到链表中,链表长度大于8时,将其转换成红黑树。hashcode()会将key值转换成hash值,hash值对数组长

2021-10-11 18:52:58 183

原创 22种设计模式详解

目录设计模式分类创建型模式1、单例模式2、工厂模式设计模式分类创建型模式用于描述怎么创建对象,主要特点是将对象创建与使用分离。有单例、工厂方法、抽象工厂、原型和建造者这五种模式。结构型模式用于描述如何将类或对象按某种布局组成更大的结构。有代理、适配器、桥接、装饰、外观、享元和组合这七种模式。行为型模式用于描述类或对象之间怎样相互协同,共同完成单个对象无法完成的任务,以及怎样分配职责。有模板方法、策略、命令、职责链、状态、观察者、中介者、迭代器、访问者、备忘录、解释器等 11

2021-07-23 17:34:43 1720

原创 设计模式七大原则详解

设计模式常用的七大模式为什么需要设计模式?设计模式的目的:(1)单一职责原则(2)接口隔离原则(3)依赖倒置原则(4)里氏替换原则(5)开闭原则(6)迪米特原则(7)合成复用原则为什么需要设计模式?1、当一个项目开发完毕后,如果客户提出新的需求,是否可以尽量不修改原有代码的基础上,只编写新代码来增加新的功能(代码是否有好的扩展性和可靠性)2、当原有程序员离职后,接手了他的项目,是否可以很好的维护(代码是否有良好的可读性,便于维护)3、一线IT大厂会在面试中询问是否使用过设计模式,在哪使用的,解决了什

2021-05-28 16:37:36 133

原创 org.apache.catalina.core.StandardContext.startInternal Context [/test1_war_exploded] startup failed

Tomcat启动没反应IDEA运行环境,Spring+SpringMvc+Mybatis,运行项目报错控制台显示以下错误19-May-2021 21:30:43.204 涓ラ噸 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the ap

2021-05-19 22:02:15 799

原创 java ssm 水果商城项目

spring、springmvc、mybatis整合的配置文件编写目录spring、springmvc、mybatis整合的配置文件编写web.xml编写spring配置文件编写springmvc.xml编写sqlMapConfig.xml编写web.xml编写web.xml文件配置如下<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc

2021-05-12 10:40:14 460

原创 java ssm 水果商城项目

水果商城项目中pom.xml配置如下<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVers

2021-05-12 09:52:12 438

原创 org.springframework.jdbc.BadSqlGrammarException 报sql语句拼写错误

控制层对应的sql语句为:@RequestMapping("/findBySql2") public String findBySql2(Integer pid,Model model){ String sql = "select * from item_category where isDelete=0 and pid="+pid+ "order by id"; Pager<ItemCategory> pagers = itemCategoryServ

2021-05-11 15:57:33 221

原创 java ssm 水果商城项目

java ssm 水果商城项目系统环境配置项目介绍系统截图管理员登录页面登录成功页面类目管理系统环境配置系统开发平台:Tomcat 8.0+JDK1.8+Windws10开发语言:Java框架:SSM(Spring+SpringMVC+Mybatis)前端:JSP、css、javascript、jQuery(js框架)数据库: Mysql开发环境: Intellij Idea浏览器:Chrome注意: 环境配置尽量一样,不然会出现很多问题项目介绍水果销售网站基于Java开发,并利用了M

2021-05-11 10:00:56 1634 8

空空如也

空空如也

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

TA关注的人

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