自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 锁与并发工具包与线程池与LockSupport与Fork/Join框架与并行流串行流与阻塞队列与JPS,jstack命令查看死锁查看线程状态与AQS个人笔记九

公平锁:多个线程按照申请锁的顺序获取锁非公平锁:多个线程获取锁的顺序不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁,有可能造成优先级反转或者饥饿现象,但是非公平锁吞吐量大ReentrantLock的默认构造是非公平锁,可以在构造中写true变成公平锁Synchronized也是非公平锁,由于其并不像ReentrantLock是通过AQS的来实现线程调度,所以并没有任何办法使其变成公平锁。...

2021-03-22 22:43:30 6691 15

原创 Apereo CAS实现单点登录(sso)

文章目录一什么是单点登录(sso)二什么是CAS三CAS Server3.1下载与部署cas的war包3.2启动tomcat查看cas Server是否安装成功3.3CAS Server其它功能演示四CAS 客户端五CAS 认证流程一什么是单点登录(sso)用户一次登录可以访问所有互相信任的应用系统传统的session无法在系统分别部署到不同的服务器中使用二什么是CAS是实现SSO单点登录的框架点击进入CAS官网:特点开源企业级单点登录解决方案CAS Service(CAS服务端): 是

2022-03-08 17:43:27 3032

原创 《 SpringBoot经典学习笔记》读书笔记

一SpringBoot返回Json数据及数据封装项目开发中,接口和接口之间,前后端之间数据传输使用Json格式,在SpringBoot中的Controller使用@RestController注解即可返回Json格式的数据,点击进入@RestController注解可以看出@RestController注解包含了原来的@Controller和@ResponseBody注解@ResponseBody将返回的数据结构转换为json格式打开idea右侧的maven栏发现在此版本中Spring

2022-02-11 14:55:36 854

原创 MySQL技术InnoDB存储引擎读书笔记

MySQL体系结构和存储引擎MySQL数据库实例在系统上的表现是一个进程MySQL数据库独有的插件式体系结构存储引擎是基于表的不是基于数据库的InnoDB存储引擎支持事务特点是:行锁设计,支持外键读操作不会产生锁InnoDB通过多版本并发控制MVCC来获取高并发MyISAM存储引擎 不支持事务不支持 行锁设计支持 全文索引MyISAM存储引擎的缓冲池只缓存索引文件,不缓存数据文件...

2022-01-18 11:36:53 721

原创 部署项目到服务器和Windows杀死进程和Linux杀死进程和远程debug

一,maven打包cleanclean成功后会吧我们项目路径下的target文件清理掉,同时控制台打印install

2022-01-04 17:59:35 682

原创 《Redis设计与实现》读书笔记

在Redis官网里有一个官方的交互式教程 点击进入Redis数据库里面每个减值对(key-value)都是由对象(object)组成键 总数一个字符串对象(string object)值 可以是字符串对象 队列对象(list object) 哈希对象(hash object) 集合对象(set object) 有序集合对象(sorted set object) 这五种对象中的一种...

2021-10-31 10:53:13 285

原创 Netty读书笔记

朝闻道,夕死可矣一脸懵逼Netty是一款创建 高性能 网络程序的框架文章目录一脸懵逼一异步和事件驱动1.1Java网络编程1.2NIO[1.2 异步和事件驱动]()1.3Netty的特点与核心组件一异步和事件驱动1.1Java网络编程传统的javaIO流只能同时处理一个连接,如果需要管理多个客户端,则需要为每个客户端Socket创建一个新的Thread大量线程处于休眠状态,只是等待输入或者输出数据,这是资源的浪费需要为每个线程分配内存,默认大小为 64KB–1MB线程间上下文切换开销问

2021-10-27 17:16:46 105

原创 2021-10-15

一Spirng架构横看成岭侧成峰,远近高低各不同.不识庐山真面目,只缘身在此山中.–宋-苏轼<题西林壁>Spring为开发者提供一个一站式轻量级开发框架Core Container(核心容器):包含基本的IoC容器BeanFactory的接口与实现core:提供框架基本组成:控制反转(IoC),依赖注入(DI)功能beans:提供BeanFactory,是工厂模式的实现conext:建立在Core和Beans模块的基础之上, 提供对象的访问方式,ApplicationC

2021-10-15 15:13:21 97

原创 MySQL 服务正在启动 . MySQL 服务无法启动。

输入下面命令查看详细信息:mysqld --console是说无法打开mysql.plugin table,请创建一个博主改变了自己的my,ini文件[mysql]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]#设置3306端口port = 3306 # 设置mysql的安装目录basedir=D:\Software\mysql\mysql-5.7.19-winx64# 允许最大连接数max_connections=.

2021-09-10 21:33:05 330 1

原创 我们一起看源码<Thread>源码逐行解析

一英文注释java虚拟机允许程序中多个线程运行每个线程都有一个优先级,优先级高的线程优先运行与低优先级线程每个线程都可以是守护线程在一个线程里面创建子线程时,子线程继承父线程优先级,并且当父线程是守护线程时子线程也是守护线程当JVM虚拟机启动时,通常会有一个非守护线程来调用某个类的指定main方法JVM虚拟金继续执行直到碰到下面的情况:已调用 Runtime 类的退出方法 , 并且安全管理器已允许退出操作发生.1.1Runtime解释Runtime的退出方法除

2021-08-23 18:57:55 390 1

原创 <HTTP权威指南>万字解读

前言HTTP(超文本传输协议)是在万维网进行通信使用的协议方案,HTTP是应用层协议,一 HTTP概述1.1Web客户端和服务器1.2MIME类型HTTP会给Web传输的对象打上MIME类型的数据格式标签MIME类型是一种文本标记,表示一种主要的对象类型和特定的子类型,中间由一条斜杠分隔.HTML格式文本文档由text/html类型标记ASCLL文本文档由text/plain类型标记GIF格式图片为image/gif类型JPEG格式图片为image/peg类型常见的MIME类型

2021-08-11 13:49:09 240

原创 Redis管道技术

一 问题原因Redis客户端和服务器之间使用的是TCP协议通信,所以无论发送请求还是接收响应必须经过网络传输,在tcp连接过程中,客户端服务端是阻塞的一问一答通信.例如在点击进入---->Redis官网命令测试在线网址我们输入以下命令:二 适用场景当短时间内发送大量对结果互不依赖对结果响应也无需立刻获得那么"管道(pipeline)"可以来充当批处理的工具,管道在redis里的执行流程如图三 原理客户端可以一次发送多条命令,这样在TCP连接中减少了"交互往返"的时间,并且服

2021-08-10 09:44:44 545

原创 Windows10/Linux杀死占用端口进程

举例:7000端口被占用了,一 打开黑窗口按下win键+r 输入cmd点击确定二 输入命令查看进程netstat -aon|findstr 7000发现 是进程 12232占用了端口7000三 输入命令杀死他taskkill /f /pid 12232代码可以运行...

2021-08-06 11:15:43 776

原创 xml里mysql数据库的if else标签

一 创建一个Servicepublic interface userService extends IService<User>{ User selectUserByIdOrByUsername(User user);}二 创建实现类@Slf4j@Servicepublic class userServiceImpl extends ServiceImpl<userMapper, User> implements userService { @Override

2021-07-30 11:34:34 1630

原创 mysql数据库用逗号切割字符串FIND_IN_SET(str,strlist)函数

一 事情缘由Spring Security有5张表 ,分别是 用户表,角色表,权限表和2张关联表我们做权限处理时没用关联表,所有在数据库存储时角色对应的权限是用逗号分隔的字符串在做表关联查询时,需要把改字符串用逗号切割,来匹配权限表的id,这不就是切割字符串吗?博主微微一笑,简单!先获取字符串,返回String类型,用java的String.split(",");切好后存入集合,在xml里用<foreach></foreach>搞定!功能是完成了但是非常辣

2021-07-09 16:21:15 4599 4

原创 “操作无法完成 文件已在windows文件资源管理器中打开”评论最多的解决办法

一个万能PDF的流氓软件上身,先在资源管理器中结束它的所有进程,然后找到它的路径删除,发现一个dll文件被Windows资源管理器打开无法删除,一:复制无法删除的文件路径这里以万能PDF为例子,它无法删除的路径 是:C:\Program Files (x86)\WnPDFReader\WpContextM64.dll二:打开资源管理器 ->性能 ->打开资源监视器三:CPU->进程中找到 explorer.exe, 右键结束进程注意:此时 电脑桌面会消失,但请不要担心,

2021-06-23 15:51:39 35940 138

原创 SpelEvaluationException: EL1007E: Property or field ‘codeId‘ cannot be found on null

错误为:controller为:解决方法:去掉注解@CacheEvict()

2021-06-15 17:08:34 1282

原创 OAuth2.0--个人笔记

理解OAuthOAuth是一个关于授权的开放网络标准,.术语名词Third-party application :第三方应用程序,又称"客户端"HTTP service: HTTP服务提供商Resource Owner: 资源所有者,又称"用户"User Agent:用户代理,指 浏览器Authorization server: 认证服务器, 即服务提供商专门处理认证的服务器Resource server : 资源服务器 , 服务提供商存放用户生成资源的服务器*OAuth就是让"客户端

2021-06-01 10:31:09 126

原创 CMPP3.0协议(移动)

CMPP接口协议(移动)业务提供者与互联网短信网关之间的接口协议互联网短信网关之间的接口协议互联网短信网关与汇接网关之间的接口协议术语和定义网络结构:互联网短信网关(ISMG)是业务提供者(SP)与移动网内短信中心之间的中介,SP发送给移动用户的信息 给ISMGISMG接收到后提交给短信中心.移动用户点播SP业务的信息由短信中心 通过 ISMG发给SP为了减轻短信中心的负荷,ISMG根据路由原则将SP提交的信息转发到相应的ISMGISMG通过汇接网关(GNS)查询的方式获取网关间的

2021-05-27 20:45:45 6213

原创 Swagger基本使用与小细节与常见错误与美化swagger

第一次接触swagger,网上各种折腾终于在项目里可以使用了,留一篇博客自我纪念一下.demo引入依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.

2021-05-27 20:15:07 4717

原创 mybatis个人笔记

与Hibernate的区别Hibernate优点是全自动的,拥有JavaBean对象与数据库的映射结构来自动生成sql,功能强大,O/R映射能力强需要写的代码少,数据库 移植强缺点但是如何设计O/R映射和性能和对象模型如何平衡都需要经验hibernate的SQL是自动生成的,无法维护,mybatis优点易于上手,可以写在xml里便于管理,解除了sql与程序的耦合,’缺点表关联多时,字段多速度慢依赖数据库移植性差...

2021-04-13 21:18:09 132

原创 实例化与初始化

实例化:内存中申请空间初始化属性的填充

2021-03-31 15:35:22 299

原创 ==与equal你能都答对吗?个人笔记一

public static void main(String[] args) { String str = "abc"; str = "bcd"; //String是只读字符串,其引用的字符串内容不可变 //str是一个引用对象,指向字符串对象"abc" //str = "bcd";是让str重新指向一个新字符串"bcd"对象 //而"abc"对象没有被改变,只是变成一个不可及对象了 ...

2021-03-30 21:23:36 87

原创 Linux记一次cpu占用过高故障个人笔记十

uptime : 精简版toptop查看Linux进程 ,其中load average后的3个值,分别代表系统1分钟,5分钟,15分钟的平均负载值,3个数字平均值大于60%,系统负担压力高不停按1会出现:vmstat -n 2 3: 每2秒采样一次共计采样3次,;查看CPU(包含不限于)mpstat -P ALL 2查看所有cpu核信息,每2秒采样一次ps -ef|grep javapodstat -u 1 -p 进程号每秒采样一次,每个进程使用cpu的用量分解信息,=

2021-03-30 17:39:48 204 1

原创 面向对象String StringBuffer StringBuilder

架构图

2021-03-27 20:19:34 99

原创 Spring-cloud无法启动嵌套的tomcat,找不到javax.xml.bind.JAXBContext

原因:jdk8以后把javax.xml.bind.JAXBContext给删除了如果继续使用jdk8之后的版本需要在导入或者改成jdk8

2021-03-26 19:43:22 419

原创 volatile与JMM与CAS与CopyOnWriteArrayList个人笔记九

对volatile理解是虚拟机提供的轻量级的同步机制可见性,禁止指令重排,不保证原子性JMM(java内存模型)jmm对同步的规定1 线程解锁前,必须把共享变量的值刷新回主内存2 线程加锁前,必须读取主内存的最新值到自己的工作内存3 加锁解锁是用一把锁...

2021-03-17 19:15:02 447

转载 java并发个人笔记九

一位前辈的话:自己造不出好轮子,且有好轮子就不要重复造烂轮子https://blog.csdn.net/u011521203/article/details/80230096

2021-03-09 09:01:28 105

转载 泛型? 与 T 与Object的区别

https://www.jianshu.com/p/95f349258afb

2021-03-08 16:11:39 257

原创 字节码与代码优化 个人笔记六

理解字节码Classfile /D:/java/Demo/JVM/ZiJieMa/target/classes/text.classLast modified 2021年3月5日; size 546 bytesMD5 checksum 99d62166e73d1405deac177780929589Compiled from “text.java”public class textminor version: 0major version: 49flags: (0x0021) ACC_P

2021-03-05 22:18:49 135

原创 五:tomcat的优化个人笔记

Tomcat8的优化对于tomcat的优化从2个方面入手,1是tomcat自身的配置,2是jvm虚拟机的调优1.1禁用AJP连接什么是AJP?AHP(Apache JServer Protocol)用户请求先请求到WEB服务器再请求到Tomcat服务器如果WEB服务器和Tomcat服务器是短连接,性能就比较低,所以,Tomcat对WEB服务器提供了一个端口为8009的连接器来提高长连接.AJP的缺点:AJP是Apache服务器才可以使用,但是我们一般都是Nginx+tomcat架构,用

2021-03-05 19:48:00 88

原创 ArrayList与LinkedList(详细版)个人笔记二

一 ArrayList线程不安全,Vector线程安全二ArrayList与LinkedList1:快速访问ArrayList实现了RandomAccess接口LinkedList没有实现RandomAccess接口RandomAccess是一个标记接口,作用是:支持快速随机访问,原理:判断list是否实现了该接口执行特定的遍历方式在Collections里面的源码如下:如果这个list实现了RandomAccess就走for循环遍历没有实现就走迭代器循环遍历2:遍历方式Array

2021-03-04 21:46:33 231 6

原创 JVM垃圾回收,参数,强 软 弱 虚,常见错误OOM,与微服务结合等---个人笔记四

一: 什么是垃圾回收?程序运行必然需要申请内存资源,无效的对象会占有内存导致内存溢出.1.1:C/C++语言的垃圾回收通过delete释放内存资源1.2:java垃圾回收有自动垃圾回收机制(GC)二:垃圾回收常见算法:引用计数法,标记清除法,标记压缩法,复制算法,分代算法2.1:引用计数法特点:历史悠久原理:任何对一个对象的引用,这个对象引用计数器就+1,当没有被引用(计数器为0),就回收’优点:~实时性高,一有0引用对象就回收~区域性,更新对象计数器只影响本对象,不扫描全部对象

2021-03-03 21:31:11 237 3

原创 redis个人笔记

一:NoSQLNot-Only SQL(泛指非关系型的数据库),作为关系型数据库的补充作用:应对海量数据的处理问题特征:可扩容,可伸缩,大数据量下高性能(内存性能比磁盘io性能快),数据模型灵活(自己有数据存储格式以保证效率),高可用(支持集群)常见的Nosql数据库:Redis,memcache,HBase,MongoDB二:Redis概念与特征与应用场景Redis:是用C语言开发的一个开源高性能键值对数据库特征:1)数据间没有必然的关联关系2)内部单线程3)高性能4)支持多数据类型

2021-03-02 10:55:38 91

原创 HashMap个人笔记三

java中的2种结构是数组和引用Hashmap,HashTable是数组+链表,JDK8后是数组+红黑树HashMap与Hashtable的区别1:nullHashMap支持键为null值为null,当键为null时这个键值对总是保存在table的第一个节点上原因:return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); (HashMap源码)HashTable键不能为null值可以原因:2:实现Has

2021-03-01 19:02:25 111

原创 ArrayList与LinkedList个人笔记二

一 ArrayList线程不安全,Vector线程安全二ArrayList与LinkedList1:快速访问ArrayList实现了RandomAccess接口LinkedList没有实现RandomAccess接口RandomAccess是一个标记接口,作用是:支持快速随机访问,原理:判断list是否实现了该接口执行特定的遍历方式在Collections里面的源码如下:如果这个list实现了RandomAccess就走for循环遍历没有实现就走迭代器循环遍历2:遍历方式Array

2021-03-01 18:19:44 95 3

原创 深浅拷贝,如何实现深拷贝(深克隆)

一:为什么用clone:在某一时刻对象A中已经包括了一些有效值,此时可能会需要一个和A完全相同的新对象B,并且对B任何改动不会影响到A的值A和B是两个对象,但B的初始值由A确定.在Java中用简单的赋值语句不能满足这样的需求,可以new一个新对象B,给B赋值,但是这样比较麻烦clone()最简单最高效二:new对象和clone()一个对象的过程区别new的本意是分配内存,程序执行到new操作符时,实现去看new操作符后面的类型,因为真的了类型才知道分配多大的内存空间,分配内存后,再调用构

2021-02-19 23:46:13 830 1

原创 window10闹钟不解释

点开菜单向下滑动

2021-01-30 22:58:58 100

空空如也

空空如也

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

TA关注的人

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