![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 89
有关于java的知识
学疏才浅
有志者、事竟成,破釜沉舟,百二秦关终属楚;
苦心人、天不负,卧薪尝胆,三千越甲可吞吴。
展开
-
一篇文章学会分布式锁
数据库实现分布式锁,redis实现分布式锁,zookeeper实现分布式锁,包含使用样例原创 2022-01-20 17:19:25 · 170 阅读 · 0 评论 -
面试宝典系列:一篇文章带你复习数据结构
一篇详细的讲解数据结构的文章,包括set,map,list三个集合的知识,然后带着手把手解决树,链表,队列与栈相关的数据操作原创 2021-10-06 13:17:02 · 293 阅读 · 0 评论 -
面试宝典系列:一篇文章带你复习JVM知识点
jvm运行划分的数据区域什么是栈和堆1.什么是栈栈是一种数据结构,具有先进先出的特性,可以比作是桌子上的一摞书,放的时候才上面放,拿的时候也只能从上面拿。2.栈的作用栈储存程序执行时的临时数据每个线程都必须有自己的栈,可以没有堆3.什么是堆堆不是一个数据结构(什么结构都可以存放到堆中)4.堆的作用应用通过堆存储数据。(申请,回收,托管)GC相关概念1.什么是GC垃圾与内存分配机制STW(Stop The World):当GC忙不过来的时候,就会触发,并不会立即触发,而是到触发点才原创 2021-07-27 21:03:27 · 254 阅读 · 1 评论 -
面试宝典系列:一篇文章带你复习并发知识点
1. 线程与进程进程是程序的执行副本,在最开始的操作系统中是没有应用的概念的,是后来操作系统改进之后才有的。线程是一种并发的模型(concurrence),线程是轻量级的进程进程可以看作是线程的容器,计算资源(cpu)是直接分配给线程的,而其他的资源是分配给进程的,所以进程和线程之间就要考虑到资源的分配。这块也是为什么在多线程下会出现这么多问题的原因之一。线程的出现是为了更好的利用cpu资源线程与进程的关系:2. 并发与并行并行是多个任务真正意义上的的同时工作并发是多个任务开起来是在同时工作原创 2021-06-24 21:30:03 · 123 阅读 · 1 评论 -
并发基础概念知识
文章目录1.并发与并行的区别2.什么是进程3.什么是线程4.进程与线程的关系5.为什么会有线程的出现6.主线程7.内存空间与内核空间8.内核级线程与应用线程9.java采用的是内核级线程还是用户级线程,为什么?10.线程的状态11.java中线程的状态,以及如何切换12.线程之间如何切换1.并发与并行的区别2.什么是进程进程是程序的执行副本,在最开始的操作系统中是没有应用的概念的,是后来操作系统改进之后才有的。3.什么是线程线程是一种并发的模型(concurrence)线程是轻量级的进程4原创 2021-04-18 17:16:50 · 107 阅读 · 0 评论 -
后端获取前台参数的几种方法
1.前台通过URL传递,后端利用@RequestParam来接收serverUrl + '/items/refresh?itemSpecIds=' + itemSpecIds@GetMapping("/refresh")public void refresh(@RequestParam String itemSpecIds) {}2.前台通过url\传...原创 2020-03-31 15:43:47 · 4827 阅读 · 0 评论 -
Springboot整合log4j日志系统_aop监听service执行时间
大家都知道程序员敲代码是非常爽的,把自己头脑里的想法行云流水的变成一行行代码敲出来,但是!!!每次找BUG确实非常痛苦,那么在程序中记录日志就是很有必要的了,今天我就要教大家如何在SpringBoot整合log4j日志系统原创 2020-03-27 14:48:27 · 777 阅读 · 1 评论 -
大人,时代变了,不要再用老一代的数据库连接池啦(HicariCP)
数据库连接池数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。数据库连接池的原理连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,...原创 2020-03-25 15:47:02 · 880 阅读 · 0 评论 -
利用maven创建聚合工程
什么是聚合项目把项目的各个模块(子工程)聚合在一起构建。一般用于分模块开发,最后整体打包发布聚合工程里可以分为顶级项目(顶级工程、父工程)与子工程,这两者的关系其实就是父子继承的关系子工程在maven里称之为模块(module),模块之间是平级,是可以相互依赖的。子模块可以使用顶级工程里所有的资源(依赖),子模块之间如果要使用资源,必须构建依赖(构建关系)一个顶级工程是可以由多个不同的子...原创 2020-03-24 17:35:11 · 181 阅读 · 0 评论 -
快速搭建VUE+SpringBoot前后端分离项目
VUE部分关于旧版本Vue CLI 的包名称由 vue-cli 改成了 @vue/cli。 如果你已经全局安装了旧版本的 vue-cli (1.x 或 2.x),你需要先通过 npm uninstall vue-cli -g 或 yarn global remove vue-cli 卸载它。Node 版本要求Vue CLI 需要 Node.js 8.9 或更高版本 (推荐 8.11.0+)......原创 2020-03-13 09:39:38 · 5580 阅读 · 2 评论 -
面试前就因为我看了这篇文章,搞定了集合的问题
本篇文章基本覆盖了面试中关于集合中高频考点与重点,首先先对整个集合模块的各个分类进行了全面的复习,然后又汇总了一些面试中的经常问的问题进行了详细又简单的解释,最后对整个集合模块进行了汇总,我相信当你把这一篇文章全部吃透,集合的面试就一定没有问题了原创 2020-12-10 15:20:38 · 106 阅读 · 0 评论 -
花五分钟解决超卖问题,这波不亏!(单体情况)
文章目录1.什么是超卖问题2.如果不是集群情况下需要特殊注意这种情况吗3.单体情况下超卖问题的解决方案3.1 数据库3.2 利用synchronized3.3 利用ReentrantLock1.什么是超卖问题库存数少于订单数2.如果不是集群情况下需要特殊注意这种情况吗也是需要注意的,因为如果真的是同时多个请求访问当tomcat上时,还是会存在幻读的情况的,比如说如果查询和修改操作中间的时间间隔大,比如两秒左右,那么可能就会出现,A用话查询到还有商品,所以他下单的,而B用户也在A查询完之后没有修改库存原创 2020-08-02 17:18:17 · 711 阅读 · 0 评论 -
手把手教你快速在Springboot中集成拦截器
文章目录一。拦截器的作用二。.构建拦截器2.1 创建拦截器2.2 注册拦截器三。拦截器错误信息返回前端一。拦截器的作用拦截器提供了一种机制,在访问action前后进行一些操作,因为拦截器的这个特性,那么我们就可以利用拦截器做一些事情,比如监控访问人数,拦截一些非法请求,记录访问日志,身份验证之类的二。.构建拦截器2.1 创建拦截器1.创建类实现HandlerInterceptor接口2...原创 2020-04-28 17:34:18 · 403 阅读 · 0 评论 -
关于会话(session),你应该了解这些
一、什么是会话会话Session代表的是客户端与服务器的一次交互过程,这个过程可以是连续也可以是时断时续的。在Servlet中(jsp),一旦用户与服务端交互,服务器tomcat就会为用户创建一个session,同时前端会有一个jsessionid,每次交互都会携带。如此一来,服务器只要在接到用户请求时候,就可以拿到jsessionid,并根据这个ID在内存中找到对应的会话session,当拿到...原创 2020-04-25 20:10:08 · 8930 阅读 · 0 评论 -
如何优雅的撸参数校验代码——使用hibernate-validator进行信息校验
前言我想大家在写代码时都遇到过进行参数校验吧,大家是否厌烦的在代码里写上一堆if-else的参数校验,既不优雅也浪费时间,那么有没有什么省事的方式来进行参数校验呢?SpringBoot为我们集成了hibernate-validator来进行校验,下面就让我们来看看如何使用hibernate-validator吧原创 2020-04-04 11:22:33 · 675 阅读 · 0 评论