自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Note(Serialize)

一.redis中的sort排序:1.1 redis支持对list,set,sorted set元素的排序比如:127.0.0.1:6379> lpush mimvp 12(integer) 1127.0.0.1:6379> lpush mimvp 11(integer) 2127.0.0.1:6379> lpush mimvp 13(integer) 3127.0.0.1:6379> lpush mimvp 10(integer) 4127.0.0.1:

2021-08-10 19:27:32 128

原创 分布式锁

分布式锁一 为什么要使用分布式锁在以前,我们使用单机应用,开发应用时,都是用的多线程来控制程序的同步访问,来防止业务逻辑上的出错,比如可能会出现一个库存超载的问题。举个例子,门票售卖时,总共商品只有一百件,在最后一件时,可能会同时出现好几个人同时想来购买门票的情况,这种时候如果不用一些手段来控制就会出现门票超卖的情况。这时候作为消费提供者也...

2021-04-29 09:45:32 172 10

原创 多线程之总线风暴

先来点真实的,volatile和cas会导致总线风暴。说到总线风暴,先讲一下volatile,cas就不说了吧,Compare And Swap很好理解吧,题外话(会导致ABA问题)Volatile:讲到volatile先讲一下内存模型,众所周知,cpu和内存之间的运算效率差了许多数量级,为了保证效率,中间会有好多LLV那种缓存,我们线程在缓存中工作,在工作时,会将数据从主内存中加载到工作内存中,这个时候就会出现一个问题,多个线程之间的可见性(内存屏障)。在jvm层面为了解决问题,抽象出

2021-08-11 11:25:10 2179

原创 CPU密集型和IO密集型

就是当前应用是浪费CPU就是CPU密集型当前应用是浪费IO就是IO密集型,IO无论是网络IO还是磁盘读写IO,包括从数据库中读数据,包括从redis中缓存读数据。CPU密集型就是大量的计算,比如查到一堆数据,进行计算,排序,整合。如果发现每次CPU占用率就是百分之30,40,最多到70,这种就是CPU很闲,反之则是CPU密集。如果是CPU密集型,那我们加上CPU,升级服务器,或者用多台服务器就能解决问题如果是IO密集型,就换固态硬盘,加内存条,使用各种缓存技术,提高网卡的传输效率等等

2021-07-12 13:50:52 308

原创 idea左下方显示多个springboot的方法

只需要在这里找到workspace然后修改<component name="RunDashboard"> <option name="configurationTypes"> <set> <option value="SpringBootApplicationConfigurationType" /> </set> </option> <opti..

2021-06-16 11:42:58 664

原创 vagrant初始化失败(解决)

Vagrant failed to initialize at a very early stage: Failed to locate the powershell executable on the available PATH. Please ensure powershell is installed and available on the local PATH, then run the command again.

2021-06-14 18:31:18 3102 1

原创 面试题汇总

1.JavaSE面试题之自增变量int i=1;i=i++;结果为i=1解释:一般的运算都是在操作栈中,例如1+1就要ipush 1 然后ipush 1 然后iadd

2021-06-06 12:38:46 94

原创 同步和异步

举个栗子同步:奶茶店卖饮品,一个客人来了点好水,然后店员去做,做完了给这个客人,然后接待下一位异步:ke'ren'dian

2021-06-01 23:13:50 59

原创 八锁问题详解

就是关于锁的八个问题package sort;import java.util.concurrent.TimeUnit;/*** * 8锁,就是关于锁的8个问题 * * 1、标准情况下,两个线程先打印 发短信还是 打电话? 1/发短信 2/打电话 * 2、sendSms延迟4秒,两个线程先打印 发短信还是 打电话? 1/发短信 2/打电话 */public class Test1 { public static void main(String[] args) { ...

2021-06-01 20:48:17 269

原创 JUC详解

1.什么是JUCUC就是java.util .concurrent工具包的简称,这个包是处理线程的。2.进程和线程进程是一个程序,比如qq.exe,

2021-05-30 13:10:57 229

原创 算法之排序算法

1.冒泡排序思想:两个两个的比较,第一和第二比,如果第一<第二,交换位置,接着第一和第三比,同样小的放前面,这样走一轮最后一位就确定绝对是最大的。然后再走

2021-05-28 21:43:48 256 6

原创 Minor GC、Major GC、Full GC

new的对象先放伊甸园区。此区有大小限制。 当伊甸园的空间填满时,程序又需要创建对象,JVM的垃圾回收器将对伊甸园区进行垃圾回收(Minor GC),将伊甸园区中的不再被其他对象所引用的对象进行销毁。再加载新的对象放到伊甸园区 然后将伊甸园中的剩余对象移动到幸存者0区。 如果再次触发垃圾回收,此时上次幸存下来的放到幸存者0区的,如果没有回收,就会放到幸存者1区。 如果再次经历垃圾回收,此时会重新放回幸存者0区,接着再去幸存者1区。 啥时候能去养老区呢?可以设置次数。默认是15次。·可以设置参数:-

2021-05-23 17:45:05 226 2

原创 算法之递归

1.迷宫问题代码如下:package recursion;public class migong { public static void main(String[] args) { int [][] map =new int[8][7]; for (int i=0;i<7;i++) { //设定1为围墙,不能走 map[0][i]=1; map[7][

2021-05-23 15:12:32 114

原创 JVM面试题汇总

1.使用PC寄存器存储字节码指令地址有什么用呢?/ 为什么使用PC寄存器记录当前线程的执行地址呢? 因为CPU需要不停的切换各个线程,这时候切换回来以后,就得知道接着从哪开始继续执行JVM的字节码解释器就需要通过改变PC寄存器的值来明确下一条应该执行什么样的字节码指令2.PC寄存器为什么会设定为线程私有我们都知道所谓的多线程在一个特定的时间段内指回执行其中某一个线程的方法,CPU会不停滴做任务切换,这样必然会导致经常中断或恢复,如何保证分毫无差呢?为了能够准确地记录各个线程正在执行的当前字节码指令地址

2021-05-22 09:02:35 101

原创 算法之单链表

为了保持统一,所有的链表都用这个实现,这个ranking属性是有一次写算法需要排序时用的,在下面例子中没用到,可以把他忽略,只是我不想把他改掉罢了public class hero{ private String name; private int ranking; public hero next; hero(String name,int rank) { this.name=name; this.ranking =rank.

2021-05-21 20:28:10 70

原创 SpringCloud使用(后半部)

1.Feign简介:Feign也叫伪装: Feign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等 操作,一切都交给Feign去做。1.1Feign的客户端@FeignClient("user-service")public interface UserClient {@GetMapping("/user/{id}")User queryById(@PathVariable("id") Long id);}

2021-05-20 18:39:34 88

原创 栈的局部变量表(解决多年困惑为什么this不能在static里面使用)

局部变量表(Local Variables)概述:局部变量表也被称之为局部变量数组或本地变量表 定义为一个数字数组,主要用于存储方法参数和定义在方法体内的局部变量这些数据类型包括各类基本数据类型、对象引用(reference),以及returnAddressleixing 由于局部变量表是建立在线程的栈上,是线程私有的数据,因此不存在数据安全问题 局部变量表所需的容量大小是在编译期确定下来的,并保存在方法的Code属性的maximum local variables数据项中。在方法运行期间是不

2021-05-19 18:20:47 525

原创 时间片

CPU时间片CPU时间片即CPU分配各各个程序的时间,每个线程被分配一个时间段。称作它的时间片。在宏观上:我们可以同时打开多个应用程序,每个程序并行不悖,同时运行。 但在微观上:由于只有一个CPU,一次只能处理程序要求的一部分,如何处理公平,一种方法就是引入时间片,每个程序轮流执行。并行与并发并行:同一时间多个线程同时执行;并发:一个核快速切换多个线程,让它们依次执行,看起来像并行,实际上是并发...

2021-05-19 16:14:33 455

原创 程序计数寄存器

作用:PC寄存器用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令。简介:他是一块很小的内存空间,几乎可以忽略不计。也是运行速度最快的存储区域,每个线程都有自己的程序计数寄存器,是线程私有的。举例:举例之前,先明确一个概念:就是反编译之后,可以看到0:iconst_3这样的,0就是指令地址,iconst_3就是操作指令。现在开始正式举例:假设有三个线程ABC,切换线程时,A线程执行到第五步,也就是上面说的指令地址5,这时候切换到B了,那再切换回

2021-05-19 11:55:18 406

原创 双亲委派机制

工作原理:1.如果一个类加载器收到了类加载请求,他并不会自己先去加载,而是把这个请求委托给父类加载器去执行2.如果父类加载器还存在其父类加载器,则进一步向上委托,一次递归,请求最终将到达顶层的启动类加载器3.如果父类加载器可以完成类加载任务,就成功返回,倘若父类加载器无法完成此加载任务,子加载器才会尝试自己去加载这就是双亲委派机制的概念。但是提到双亲委派机制不得不提到类加载器的概念(ClassLoader)。java是运行在Java的虚拟机(JVM)中的,但是它是如何运行在JVM中.

2021-05-18 18:48:26 143

原创 idea安装jclasslib和BindEd,以及使用

一 安装1.file->settings->plugs2.重启idea二:jclasslib使用:第一步:先选择好.class文件第二步:选择View–>Show Bytecode With Jclasslib即可BindEd使用:第一步:选择class文件第二步:结果:...

2021-05-18 12:19:41 267

原创 Session共享

当我们运行微服务分布式项目的时候,一般我们用的都是SpringBoot,众所周知的是,SpringBoot是自带TomCat的,所以每启动一个SpringBoot项目,此项目就会在自己的Tomcat中运行。而Session是被不同的TomCat隔开的,会导致服务运行时,数据不能共享,用户会话数据发生错误。在这样的大环境下,以前的工程师们像了许多种解决方法,比如将Session的数据存在Cookie中,反向代理等。但是这些方法都有着各种各样的问题,而现在的程序员们有了更好的选择,Spring大

2021-05-13 19:12:12 77

原创 @RequestParam注解详解

1.作用:@RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)2.实战:@Controller@RequestMapping("test")public class HelloController2 { /** * 接收普通请求参数 * http://localhost:8080/test/a?name=zhangsan * url参数中的name必须要和@RequestParam("nam

2021-05-13 18:15:00 524

原创 Tinymce可视化编辑器在vue-element-admin中的使用

一。1.复制脚本库将脚本库复制到项目的static目录下2、配置html变量在build/webpack.dev.conf.js 中添加配置使在html页面中可是使用这里定义的BASE_URL变量new HtmlWebpackPlugin({......,templateParameters: {BASE_URL: config.dev.assetsPublicPath + config.dev.assetsSubDirectory }})3、引入js脚本在ind

2021-05-13 17:57:15 604

原创 设置让同一种后缀的文件用指定的程序打开

选中该文件,右键选择属性,在打开方式中选择指定程序,点确定应该就可以了

2021-05-09 20:55:03 609

原创 SpringSecurity使用简介

简介:Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。相关概念:主体(principal):就是使用系统

2021-05-09 11:47:45 129

原创 RBAC权限控制

为什么要进行权限控制?因为一个系统需要的不同级别,当没有权限控制,你的所有功能完全不设防,这是不符合要求的,也是不合理的?怎么进行权限控制?1.先定义资源定义受保护的资源,比如你的handler方法,service方法,一些静态资源等2.创建权限一个一个控制太复杂了,也太麻烦了。所以可以直接创建权限,给这个权限操作某些资源的权力,然后可以把这个权限授予给某个人3.创建角色比如创建管理员角色,赋予它增删改查的权力,让他能够管理普通用户。在比如创建普通用户角色,赋予它查的权力,让

2021-05-09 10:23:07 171

原创 EasyExcel

EasyExcel是阿里开发的一款快速读写Excel表格的java工具,今天教大家如何使用第一步引入依赖:<dependencies><!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --><dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactI

2021-05-08 19:20:25 173

原创 查看端口号

端口是应用在电脑上占用的端口,有时候我们启动一个java项目时,它会提示你端口号已经被占用,这时候有可能是你上次启动没有关闭。还有的时候是你还没有启动项目,想要选择一个端口号,怎么查看是否已经被占用?更有时候我想知道数据库用的端口是什么?是3306吗,这时候也要看端口号。今天我就来分享一个查看端口号的方法。首先,打开360(没有360的可以关闭这个博客了,哈哈),然后点击功能大全,->流量防火墙 ->网络连接在这里就可以查看端口号了!!...

2021-05-07 20:36:56 899

原创 maven

占个坑,我想起来这个了。到时候能记得写,过两天更新

2021-05-06 17:41:01 47

原创 springCloud使用(前半部)

知识导读:认识RestTemplate,并且使用它发送请求 了解SpringCloud,知道它的作用 熟悉Eureka注册中心 知道Ribbon负载均衡 使用Hystrix熔断器1.系统架构的演变随着互联网的发展,网站应用的规模不断扩大。需求的激增,带来的是技术上的压力。系统架构也因此也不断的演进、升级、迭代。从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服务架构。是什么导致了架构的不断演变,哪些需求需要我们来不断地更新架构,这些架构又是如何解决这些问题的。1.

2021-05-06 17:15:03 98 1

原创 访问docker中的nginx容器部署

1搜索nginx镜像docker search nginx2拉取nginx镜像docker pull nginx3创建容器,设置端口映射、目录映射# 在/root目录下创建nginx目录用于存储nginx数据信息mkdir ~/nginxcd ~/nginxmkdir confcd conf# 在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容vim nginx.confuser nginx;worker_processes 1;.

2021-05-04 22:54:10 2856 4

原创 nginx

三大功能反向代理(请求转发) 负载均衡 动静分离反向代理正向代理:Nginx 不仅可以做反向代理,实现负载均衡。还能用作正向代理来进行上网等功能。 正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访 问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。反向代理:反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只 需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获

2021-05-04 18:34:06 75

原创 java8新特性

一1.新特性主要内容:Lambda 表达式 函数式接口 方法引用 / 构造器引用 Stream API 接口中的默认方法 / 静态方法 新时间日期 API 其他新特性2.新特性作用:速度更快:hashMap的改动: jdk1.7的hashMap: 就是hash表,我们称它为hash表,但是底层其实就是数组,这个数组中存的都是entry。用这种数组有什么好处呢?我们知道数组都得有索引值,比如0,1,2,3,4。当新添加一个值时,通过hash算...

2021-05-04 16:01:07 143

原创 一些问题的汇总(持续更新)

一 项目中重定向的问题问题描述:http://localhost:4000http://localhost:80是两个不同网站,浏览器工作时不会使用相同的cookie解决问题的方法:重定向的地址都通过zuul访问的方式写地址比如:redirect:http://www.crowd.com/auth/member/to/center/page...

2021-04-29 18:09:01 98

原创 oss的使用

oss的使用一 为什么要使用oss以前我们上传文件时,上传到的其实是服务器,也就是tomcat中。这种当然也可以保存文件,但是他有一些问题,比如Web 应用重新部署导致文件丢失,集群环境下文件难以同步等问题。而且你上传的文件存在tomcat中,如果文件体积太大也会影响tomcat的执行效率。所以这时候我们必须解决这些问题,你可以搭建一个文件服务器,但是这样做可能成本太高。所以如果不想这么干,那么阿里云oss...

2021-04-29 17:30:21 2003

原创 启动springboot但是不想配置数据库的解决方法

有时候启动一个springboot模块但是并不进行数据库层的业务操作,这时候在配置文件中没有配置数据库相关配置项,会报一个错误,如下:但是这个时候你不想配置数据库文件,因为毕竟我并不操作数据库,我只是进行一个文件上传到oss的操作这种,所以这时候就需要解决方法了。先来解释一下这个问题的原因:spring boot 会默认加载org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration这个 类, 而Dat

2021-04-29 14:39:38 1876 1

空空如也

空空如也

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

TA关注的人

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