- 博客(37)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 关于springcloud使用shiro的权限控制
之前我在网上找了很久的使用基于springcloud用shiro来作为权限控制。但是都没有一个好的demo,所以自己查了资料然后问了一些人,写了一个简单的demo。好了,话不多少直接进入正题由于是使用springcloud,那么关于springcloud的一些知识我在这就不一一去讲了。直接讲一些shiro关键的地方。不懂的朋友可以去看看这位大牛写的帖子https://www.fangzhipe...
2018-12-26 15:45:49
6028
9
原创 MySQL事务隔离级别(2022.05.15)
Mysql大家都很熟悉了,对应事务的四大特性:ACID,大家都是很熟悉的。如果有不太熟悉的,可以大概去了解一下它的基本概念以及相应的场景。事务是什么?一般是指要做的或所做的事情为什么要引入事务?为了保证工作流程中数据的可靠性原子性(Atomicity):指的是事务是一个不可分割的单位,要么事务中的所有的操作全部成功,要么全部失败;——操作层面一致性(Consistency):和原子性类似,只不过在数据层面。指的是事务必须在执行前后满足数据库的所有约束。(这个约束我认为是指比如有一
2022-05-15 20:11:15
578
原创 细说Redis-p2(2022.03.20)
上一章我们已经了解了redis是干嘛以及集群等功能以及细节。这一章我们来聊聊缓存的设计和使用redis需要注意的点以及过期数据处理的策略。细说Redis-p21. 多级缓存的设计1.1 Ngnix层1.2 EhCache层1.3 Redis层2. Redis的常见问题2.1 缓存击穿2.2 缓存穿透2.3 缓存雪崩3.Redis对于过期键清除策略3.1 被动删除(惰性删除)3.2 主动删除3.3 主动清理策略4. 布隆过滤器1. 多级缓存的设计通常来说亿万级流量电商微服务架构如下让我们一层层的来
2022-03-20 15:42:43
3953
原创 细说Redis-p1(2022.03.13)
Redis在我们工作中可以说用的非常多。大多用来会话存放、消息队列(支付)、活动排行榜或计数等。但我们其实很多时候是只管去用,却也没有对它进行更深层次的探索。这段时间正好也重温了一下Redis,写下来的话感觉能够让自己更深入的去理解Redis。1.Redis是什么Redis是什么,这应该是一个老生常谈的问题了。几乎用过的人都知道,或者说面试的时候也会问到。Redis就是一个NoSQL数据库。其实想知道Redis是什么,我们可以通过官方文档来看看Redis官网解释了Redis是什么,简单来说,它就是
2022-03-13 11:58:55
1997
原创 (2021.9.25)面向切面编程简述
说到面向切面编程,想必大家都不会陌生。不就是AOP——Aspect Orient Programming但是说了那么久,你所理解的面向切面编程,用一句话概括到底是什么呢?1.什么是AOP(面向切面编程)在我的理解来说:在运行时,动态的 将代码切入到 类的 指定方法。 这种编程思想就成为面向切面编程来举个例子吧,你写了A方法之后,老板想让你看看这段代码的执行时间。ok,那你就在A方法的前后加上代码,查看时间。。。过了几天,你又完成了B方法之后,老板又想让看你记录这段代码的日志...
2021-09-25 20:31:37
2689
原创 (2021.9.16)针对数组和链表的时间复杂度详解
由于工作原因,很久没有写一些学习的博客了。最近抽空在看数据结构和时间复杂度的文章,今天想谈一下数组和链表相关的问题。目录1. 数组1.1 什么是数组1.2数据结构1.2.1一维数组1.3 为什么数组下标是从0开始1.4时间复杂度1.4.1新增1.4.2删除1.4.3查找2.链表2.1什么是链表2.2 数据结构2.2.1单向链表2.2.2双向链表2.3时间复杂度2.3.1查询2.3.2插入2.3.3...
2021-09-16 23:05:05
5467
1
原创 分布式事务详解
最近面临面试,抽空了解了下分布式事务,这篇主要介绍一下分布式事务相关的知识点以及现目前最流行的分布式事务解决工具seata。OK,进入正题1.本地事务在了解分布式事务之前,我们先来了解一下...
2021-06-14 17:37:52
3436
2
原创 (2021-05-28)JVM概览学习
*********,jvm也需要再回顾一下。JVM应该是我们平时很难实际接触到,但是面试又很容易问到的一个知识点了。首先,简单的介绍一下JVM。JVM(Java Virtual Machine),是一个k
2021-05-28 16:59:39
292
1
原创 (2021-04-27)后端开发学习之Docker入门
这两周花了些时间学了docker,对docker也有了一个大概的了解。下面就简单谈谈自己的看法以及一些常见的命令。docker简介以及安装1.docker为什么会出现2.docker的构成3.安装docker1.docker为什么会出现在使用docker之前,我们最常见的操作就是将服务打包之后,部署到运维同学已经安装好所有的插件的服务器上。但是常常会有问题出现,最常见的就属,我在测试环境上可以运行,但是生产环境上报错。较为复杂的项目会进行大量的重复配置。首先,我们先来了解一下传统模式下程序开发部署的
2021-04-25 18:00:18
640
原创 (2021-04-19)Nginx简述
Nginx简述1.什么是Nginx2.Nginx作用3.Nginx负载均衡4.操作Nginx通常来说,我们只需要访问一台服务器的情况,是我们直接访问。但是由于访问量过大,我们不得不添加新增的服务器。这时候我们就就需要一个代理服务器了,通过代理服务器帮助我们转发和处理请求。而且我们希望这个代理服务器可以帮助我们接收用户的请求,然后将用户的请求按照规则帮我们转发到不同的服务器上。这个过程是无感知的,用户并不知道是哪个服务器返回的结果,我们还希望它可以按照服务器的系统提供不同的权重选择,保证最佳的体验!这
2021-04-19 20:28:10
303
原创 (2021年4月20日)kafka详解
kafka详解1.kafka的核心组件2.kafka数据处理步骤3.kafka名词解释和工作方式4.kafka和topic的关系5.Consumer和topic的关系6.kafka消息的发布7.Conusmer的负载均衡kafka是一个分布式的发布/订阅的消息队列1.kafka的核心组件Producer:消息生产者,产生的消息会被发送到某个topic。主动将消息发给broker。Consumer:消息消费者,消费的消息内容来自于某个topic。主动向topic拉取消息(因为消费水平不同,不能指定推
2021-04-19 14:21:04
581
原创 MySQL面试整理
MySQL面试整理1.B树和B+树的区别?2.预读和局部性原理?3.聚簇索引/聚集索引4.非聚簇索引4.1 辅助索引/二级索引4.2 联合索引/复合索引5.扩展1.B树和B+树的区别?由图可知,B树的所有节点上都有key和data,而B+树只有叶子节点上有data,而且叶子结点包含了这棵树所有的键值,而且叶子结点会组成一个单链表。而且由于一棵树16K,所以B+树保留键的能力大大提高。而且B+树的数据都需要在叶子结点上,所以查询的次数也都一样,查询次数更温度。而且形成了单链表,所以范围查询更方便。
2021-04-18 10:23:32
118
原创 (2021-04-02)笔试常见的“三驾马车”
笔试常见的“三驾马车”1.冒泡排序2.快速排序3.Double Check Lock3.1 懒汉单例模式前言去找工作时,最容易遇到的三个笔试题。今天来深入了解一下,避免背题导致忘记。1.冒泡排序冒泡排序应该是很常见且也是最简单的笔试问题了,一个很简单的算法。简单来说,冒泡排序:在水中,小气泡上浮,大气泡下沉。就是一个升序排序。思路也很简单,将第一个数字挨个和后面的数字进行比较。如果前面的数比后面的数大,那么进行换位。对每个数字都进行此操作。有这些数字。第一轮,我们先将5和8比较。由于8大于
2021-04-02 18:55:15
153
原创 (2021-04-01)常见面试题之Java和“锁”不能说的秘密
这里写目录标题1.悲观锁和乐观锁前言Java提供了各种类型丰富的锁,每种锁使用与不同的场景下。本文就大概的来描述一下java提供的那些锁,以及它们不得不提的“故事”。在我们开始阅读本文时,希望大家带上问题去阅读。1.线程要不要锁住同步资源?2.锁住同步资源失败,线程要不要阻塞?3.多个线程竞争资源的细节?4.多个线程竞争锁时要不要遵循先来后到?5.一个线程能不能多次的获取同一把锁,在未释放锁的场景下6.多个线程能不能共享一把锁1.悲观锁和乐观锁悲观锁和乐观锁这一概念,大家应该都很熟悉
2021-04-01 16:56:22
196
1
原创 (2021-03-26)大数据学习之Flink安装部署以及任务提交/调度详解
Flink学习之安装部署以及API方法1.Flink快速安装2. Flink运行时组件3. Flink任务提交流程以及任务调度3.1 任务提交流程(YARN)3.2 任务调度原理3.3 TaskManager 与Slots3.3.1 作用与关系1.Flink快速安装Flink下载地址选择对应的版本,然后进入之后选择带有scala的tagz包。之所以选择是因为Flink的runtime层使用到了akka是由scala写的。下载成功之后上传到服务器上。解压tar -zxvf flink-1.12.
2021-03-17 20:36:34
456
原创 (2020-3-15)Zookeeper学习之Zookeeper概览以及部署
Zookeeper学习之Zookeeper概览以及部署1.初识Zookeeper1.1 什么是zookeeper1.2 zookeeper的特点1.3 zookeeper的数据结构2. zookeeper的应用场景2.1 统一命令服务2.2 统一管理配置2.3 统一集群管理2.4 服务器动态上下线2.5 软负载均衡3.zookeeper内部原理3.1 选举机制3.2 节点类型3.3 zookeeper的角色4. zookeeper伪集群部署4.1 包下载4.2 包解压4.3 配置修改4.4 配置文件说明4.
2021-03-15 16:59:08
471
原创 (2021-3-13)ElasticSearch学习之基本原理概述
Elastic search概念详解1.什么是ES1.1 ES的优点1.1.1 接近实时1.1.2 高度的可伸缩性1.1.3 开箱即用、搭建简单1.1.4 和数据库互补1.2 ES中数据的结构1.2.1 索引 index1.2.2 类型 type1.2.3 映射 mapping1.2.4 文档 document1.3 ES索引的组成2.倒排索引2.1 什么是正排索引2.2 什么是倒排索引这段时间学习了ES,准备开始搞一下系统的学习一些中间件以及数据库和系统方面的知识。自己租了一个服务器,从ES开始系统的
2021-03-13 10:14:00
147
原创 (2021-03-11)大数据学习之Flink基础概念以及简单Demo
Flink的简介1. 什么是Flink1.1 有边界数据流和无边界数据流由于公司要求下周可能会要分享一下Flink。所以这周抽了一些时间学习了一点Flink的知识。也是为了自己总结吧,所以接下来会写一点关于Flink的知识。OK,话不多说。开始我们今天的唠嗑。1. 什么是FlinkApache Flink是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink能在所有常见的集群环境中运行,并能以内存速度和任意规模进行计算。以上这句话是Flink官网的描述:https:
2021-03-11 18:12:31
303
原创 (2021-03-18)ElasticSearch学习之基于Kibana练习操作命令
之前搞定了ES的基础知识和安装。今天来学习一下ES的基本操作,当然了,是在kibana下操作。OK话不多说,开始今天的学习。首先打开你的kibana,选择Dev Tools然后开始今天的命令操作。1.创建索引众所周知的是ES相当于一个索引库。第一步让我们来创建索引PUT /testtest是我们创建的索引名称,创建成功之后我们能看到相应的提示翻译一下对应的英文描述:弃用:在7.0.0中,默认的分片数将从[5]更改为[1];如果您希望继续使用默认的[5..
2021-03-05 17:30:22
262
原创 (2021-03-01)ElasticSearch学习之部署安装
之前大概分享了一下ES的基础知识以及结构,今天来搞定ES在linux上的搭建1.在linux服务上安装elastic search安装环境:centos8+ java 8 + elastic 6.8.0JDK安装:大家可以随意在网站去搜一搜,很简答的安装教程Linux 安装JDK 81.1 创建安装ES的用户身份由于ES不能以root身份启动,所以必须一个针对ES安装的普通用户1.在linux系统中创建新的组groupadd es 2.创建新的用户es...
2021-03-01 18:14:12
290
原创 (2021-02-09)JMM-java内存模型详解
JMM(java内存模型)是你想要的了解多线程入门的一个必备知识,很多人新手都会把JVM和JMM搞混淆。在这先提出一点,JVM和JMM是两个不同的概念JVM是java虚拟机,是一个真实存在的“实体”。JMM(Java内存模型(即Java Memory Model,简称JMM))本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量。网上有很多帖子都说JVM和JMM是有关联性的。但是在我看来JMM中的主内存,工作内存和JVM中的java堆,栈以及方法区.
2021-02-09 10:05:42
345
6
原创 (2021-02-04)并发编程简介-并发编程(1)
关于并发编程,不光是面试经常问到,在实际的操作过程中,也会经常用到。所以一来是为了加深自己的印象,二来也希望能和大家公共学习。不对的地方请斧正,谢谢!1、程序、进程、线程的关联和区别?这是个老生常谈的问题了。很多公司的笔试题都会考这个问题,下面来简单分析下程序:程序是什么,举个例子,你经常玩的吃鸡、LOL就是程序(含有指令与数据的文件)进程:先说概念,进程就是程序运行资源分配的最小单位。你双击运行程序,就会产生一个进程。线程:概念:CPU调度的最小单位,存在于进程当中。你运行的游戏中就会
2021-02-04 20:54:07
1179
7
原创 关于AQS详解
这段时间自己学了下并发编程,然后发现提供的并发工具全部都和AQS有关。无论是Lock还是信号量,计数器等,都逃不过与AQS的联系。写这篇博客的初衷其实是自己想写一些并发工具类的文章,包括countdownlatch或者信号量之类的,但是它们底层都涉及到了AQS,所以先写这个AQS,一来是为了让自己更深刻的理解,二来是让大家阅读的时候有个参考。话不多说,开始今天的AQSAQS(AbstractQueuedSynchronizer)抽象的队列同步器。简单来说AQS就是一个用来构建锁或者其他同步组件的一个框架
2021-01-25 10:13:15
552
原创 并发编程工具类—— CountdownLatch(计数器)
最近学了并发编程,想谈谈自己的一些理解。一来是为了加深自己的印象,二来也希望能和大家公共学习。不对的地方请斧正,谢谢!之前说了TheadLocal,现在来讲一下CountdownLatch。说起CountdownLatch就不得不说AQS,但是我不想专门的去讲AQS,因为我感觉从用了AQS的工具上来深入,可以更好的帮助我理解两者。在这之前,我们先来大概的了解下什么是AQS(Abstract...
2020-05-07 12:06:20
400
原创 浅谈多线程并发以及一些简单的demo
差不多做了一段时间的java开发了,然后其实项目上高并发用到的并不多。就只有自己来学习一下了,网上搜了下资料,然后自己总结了一下。下面开始正题。现目前许多项目都会涉及到高并发的问题,先来说下线程和进程。进程:操作系统中正在运行的程序。线程:是进程中的一个执行流程;用一句话来说,解决高并发问题,就是解决多线程对某个资源的有序访问和修改。避免脏读,幻读等。通常来说数据库也可以解决这类...
2020-04-29 12:49:34
636
原创 (2021.10.26)ThreadLocal简述
最近学了并发编程,想谈谈自己的一些理解。一来是为了加深自己的印象,二来也希望能和大家公共学习。不对的地方请斧正,谢谢!对于ThreadLocal来说,部分高级面试也会遇到这个问题。所以今天就来分析一下ThreadLocal首先,我们先来了解一下ThreadLocal到底是什么?其实和synchronized差不多,ThreadLocal也是一个工具,它的作用:为每个线程提供一个变量副本...
2020-04-16 21:56:36
265
原创 关于多线程生成Excel文件并压缩成ZIP(输入输出流形式非file创建)
这几天因为创建Excel的性能问题,头疼了几天。先说下我的需求:根据场次导出Excel,有多少个场次就有多少个sheet页。根据工具调试,发现创建WorkBook和Sheet真的很耗时,差不多要大约两秒的时间,所以想用多线程去操作。但是创建sheet的方法底层并没有做加锁处理,导致它每次创建都会去读当前的sheet总数,所以无法放到多线程中。由于这边的场次量很多,数据量也很大,和产品商量讨论之...
2020-04-05 19:52:42
1111
1
原创 通用分页查询接收实体类
import lombok.Data;import javax.validation.constraints.Min;import java.util.HashMap;import java.util.Map;@Datapublic class PageQueryDTO { /** * 目标页 **/ @Min(value = 1,mess...
2019-08-16 10:03:36
624
原创 关于java对比数据以及后续数据库操作(1)
这段时间做了一个数据对比的功能模块。具体操作是从申请人修改自己的数据然后提交数据进行多次审批,如果审批完成那么则更新对应的数据。再此中间,审批人可以对申请人的信息进行编辑。 先说一下思路吧,这是表结构 通过进行修改数据与数据库数据进行比较,如果有改变那么进插入数据。每修改一个字段的数据则插入一条数据。applicationMainId是对应的申请主表Id,这里将不对流程操作进行解...
2019-07-05 11:06:39
1847
原创 关于springboot自定义权限配置操作
之前做了一个项目,在做这个项目之前自己在网上买了关于权限的教程,springsecurity,shiro等。学完了才发现,这两个权限框架各有千秋,但是如果你想自己的项目能够完全适用还是自己写一个自定义权限模块比较好。千万别粘贴代码,千万别粘贴代码,千万别粘贴代码 重要的事情说三遍!!!这里只是提供一个参考的思路!OK首先,我们先新建一个springboot项目,这里就不多做示范了。...
2019-05-10 14:27:15
802
原创 关于java预览pdf
之前在项目中做了一个转pdf格式的需求,网上查了一些资料把完成了。用的是工具转换,今天主要说一些在线预览pdf的java代码的书写,如果需要了解工具的话可以留言,有时间我会把对应的代码整理出来。不多说,直接上代码。这个是通过文件的对应路径filePath 来进行访问的@RequestMapping("/read/{fileName}")public void readFile(Ht...
2019-05-05 16:26:45
460
原创 关于springboot 异步执行某个方法
之前项目里面需要异步去操作文本格式转成PDF文件,所以在网上搜索了一下。现在总结一下,加深自己的印象。首先在启动类中加入@EnableAsync注解(重要的一步)@EnableAsync //开启异步注解@SpringBootApplicationpublic class TestTaskApplication { public static void main(Str...
2019-04-22 17:24:21
502
原创 关于springboot集成activiti6.0
自学了一段时间的activiti,发现网上有很多的demo都用不起。找了很多,都比较失望。所以今天自己写一个简单的基于springboot的activiti项目。ok,开始首先,我们需要先创建一个springboot项目。下面这个pom依赖。<dependency> <groupId>org.springframework.boot</group...
2019-02-28 11:13:59
374
转载 简单阐述一下java中的堆和栈
我们平时在运行java程序时会在内存中划分出5个空间进行数据的存储:堆,栈,方法区,本地方法区,寄存器。在这里我们主要简单的阐述一下堆和栈,其余的如果有空的话会进行讲解。ok,现在我们需要知道一下什么是堆,什么是栈?简单的来说,网上有很多对堆栈的理解。很多都是千篇一律的解释,在这里不详细做讲解。对我而言,堆栈就是为了存放“数据”而产生的空间。1.栈:用来存放 基本数据类...
2018-11-14 16:26:06
330
转载 关于java多态的理解
大家面试的时候经常会遇到关于多态类型的题目,我也是之前对这块很模糊,然后这几天才拿出时间来好生学习了一下。多态真的是博大精深啊,这是我看到的一篇帖子,讲的非常好,希望给大家一点帮助。建议大家多看几次,然后把代码粘下来去亲自试一下。 看到一个很好的例子:public class Wine { public void fun1(){ System.out.prin...
2018-10-17 11:26:05
155
原创 关于IDEA使用maven整合ssm框架
工作到现在一直在用分布式,spring boot来搭建项目是非常方便而且快捷的。但是现在很多公司都很少使用分布式去进行开发,所以复习了一下ssm的搭建。废话不多说,下面进入正题。 1.创建maven项目点击next填写包名以及项目名,之后会生成maven项目。2.搭建基本项目架构然后点击src,在src下创建test文件夹(用于存放单元测试类),然后在m...
2018-09-07 14:51:54
3651
4
原创 JAVA基础(数组(1))
声明:本人也是刚开始学Java不久,所以有什么不足之处,或者是有一些知识点上的误区请大家帮忙指点出来。谢谢了!我在学数组这一章的时候有一些知识误区,所以今天想把自己总结的一些觉得比较重要东西写出来,以免初学者遇到同样的问题。-------------------------------数组,顾名思义,就是一组数据。并且是相同类型的一组数据。比如int,char等等一系列类型相同的数据组成。数组
2016-12-05 13:44:13
261
POI导出(数据库数据)
2017-11-14
请各位大神帮忙看看。问什么还能跳转页面
2017-02-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人