自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (3)
  • 收藏
  • 关注

原创 SSH项目,spring security 从3.2升级到5.5 xml配置文件报错问题

1.问题一使用构造函数注入属性即可问题2也是用构造函数注入参数值问题三同问题二一样问题四同问题二一样问题五xml配置 修改基本技术了。

2023-06-15 12:45:25 523

原创 记一次PC WEB前端连不上mqtt的问题 AMQJS0007E Socket error:undefined

连接mqtt前端一直报错 AMQJS0007E Socket error:undefined。vivo10块(多少都行 意思意思) 我给解决方案。后端是用的nginx服务器做分发。差了mosquitto 没什么问题。经排查 是nginx 配置少了。nginx 改下配置就行。

2023-05-17 17:26:27 647

原创 Mysql5.7安装一直报错的问题

mysql5.7安装报错 [ERROR] The server option 'lower_case_table_names' is configured to use case sensitive table names but the data directory is on a case-insensitive file system which is an unsupported combination. Please consider either using a case sensitive f

2022-11-14 10:17:48 674

原创 IDEA的tomcat的web项目解决控制台中文乱码问题

IDEA解决中文乱码的问题

2022-09-21 09:43:09 283 1

原创 spring boot项目配置日志打印

springboot打印日志

2022-08-07 14:12:17 179

原创 git恢复已删除分支的提交记录

记一次开发中事故,一个功能代码丢了,且分支也被删了,找不到原代码,当时想着重新写。试着搜索git如何恢复远端已删除的分支,结果成功了,我的天。一.查看reflog,找到最后一次commitid“reflog是reference log的意思,也就是引用log,记录HEAD在各个分支上的移动轨迹。选项 --date=iso,表示以标准时间格式展示。这里你肯定会问,为什么不用git log?git log是用来记录当前分支的commit log,分支都删除了,找不到commit log了。”查看提交记录,找

2022-06-08 16:59:48 1698

原创 easyui datagrid 获取当前页所有行

easyui datagrid 获取当前页所有行利用id选择器即可,getRows$("#idName").datagrid("getRows")获取到是一个集合,遍历处理即可

2022-05-24 17:22:20 767

原创 Spring Boot项目整合FreeMarker模板引擎

Spring Boot项目整合FreeMarker模板引擎pom.xml文件中引入代码如下 ` <!-- 模板ftl --> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.31&

2021-05-15 23:23:10 153 1

原创 SpringBoot + Mybatis项目sql日志打印配置

我的SpringBoot是1.5版本,版本可以说很低。mybatis的sql日志打印配置很简单,在application.yml中加个代码即可;代码如下:logging: level: com.itheima.hchat.mapper: debug # 这是项目的mapper包路径把mapper文件所在的包路径写上即可。配置后的效果...

2021-05-10 23:12:50 170

原创 Spring Boot自动装配原理和源码

自动配置原理简单剖析从@SpringBootApplicaiton注解下手SpringBootApplication注解包含@EnableAutoConfiguration注解,字面意思启用自动配置EnableAutoConfiguration注解包含@Import注解且有一个class参数AutoConfigurationImportSelector.class紧接着进入AutoConfigurationImportSelector类的getAutoConfigurationEntry方法

2021-05-04 22:00:19 1204 11

原创 JVM类加载机制

类加载全过程当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到JVM。ClassLoader类加载过程有如下几步:加载》验证》准备》解析》初始化》使用》卸载加载:在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的main()方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口验证:校验字节码文件的正确性准备:给类的静态变量分配内存,并赋予默认值解析:将符号

2021-05-01 12:40:24 103

原创 计算机网络原理

计算机网络性能速率速率即数据率(data rate)或称为数据传输速率或比特率(bit rate)单位时间内(秒)传输信息(比特)量计算机网络中最重要的一个性能指标单位:b/s(或bps)、kb/s、Mb/s、Gb/sK=103 、M=106 、G=109速率往往是指额定速率或标称速率平常所说的100M,50M网速,其实指的是最快时的速率,即大部分时间速率都会比额定速率慢,这个要理解。带宽“带宽”(bandwidth)原本指信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹

2021-04-13 13:34:47 19231 6

原创 SpringCloud微服务项目,服务启动控制台并没有错误,但服务却不能访问的问题

排错步骤看Consul注册中心服务是否有错误第二步根据有错误的服务查看健康日志,访问地址如下http://{service}:{port}/actuator/health第三步就可以看到如图的日志, 我这个问题是redis IP地址打错了,由redis引起服务不可用....

2020-09-22 15:51:32 1327

原创 Java可重入读写锁ReentrantReadWriteLock之实战缓存

简介写一个简单的缓存读写锁demo, 基本操作set和get, set是写锁,get是读锁.反例没加读写锁前的程序执行public class ReadWriteLockDemo { public static void main(String[] args) { for (int i = 0; i < 5; i++) { final int temp = i; new Thread(()->{

2020-08-31 22:12:21 462 1

原创 Java中利用AtomicReference手写自旋锁Demo

自旋锁简介自旋锁是一种非阻塞锁,抢到执行权的线程并不会自旋,自旋的精髓在于没抢到执行权的线程,它们会空转cpu,一直循环,这就是自旋,并非把线程改为阻塞状态.它们还是在运行的,自旋重试想获取锁.源代码public class SpinLockDemo { public static AtomicReference<Thread> spinLock = new AtomicReference<>(); private static Integer count

2020-08-27 22:42:50 657 1

原创 Java中可重入锁synchronized,ReentrantLock简介

可重入锁即可以加锁多次,解锁也可以多次,且加锁解锁次数相抵消才行.synchronized和ReentrantLock都是可重入锁代码案例演示public class ReentrantLockDemo2 { private static ReentrantLock lock = new ReentrantLock(); public static void main(String[] args) { new Thread(()->{

2020-08-27 21:37:05 186

原创 简单介绍MySQL存储引擎之MyiSAM和InnoDB简介

MyiSAM存储引擎不支持事务,强调的是性能,每次查询具有原子性,其执行速度比InnoDB类型更快,但是不提供事务支持.MyiSAM锁是表级别的,用户在操作时,select insert update delete语句都会给表自动加锁MyiSAM不支持外键MyiSAM支持全文索引MyiSAM会在磁盘中存储三个文件, .frm文件存储表定义. .MYD是数据文件, .MYI索引文件InnoDB是MySQL5.5后默认的存储引擎支持事务,支持主键,支持外键约束InnoDB不支持全文索引Inn

2020-08-26 09:56:06 101

原创 关于线程池任务管理,宕机了怎么处理没执行的线程

思路首先设计一张表,记录任务状态,执行时间,已执行,未执行等等其次任务来的时候写入表中,任务标识未执行如果此时有1000个任务都过来了,那么表中也有1000行记录接着JVM内存溢出OOM,程序挂了,未执行的任务就知道是哪些了.系统再次启动的时候,依次读取未执行的任务加入线程池中复盘,二次执行...

2020-08-25 22:34:20 1789

原创 简单介绍newFixedThreadPool线程池原理

实现原理底层是采用队列来存储进来的线程,如果工作队列满了无空闲工作线程,则加入队列阻塞,如果工作线程有空闲,则不用阻塞直接被执行.默认是一个无界队列int.MAX_VALUE这么大,如果请求过大会造成JVM内存OOM...

2020-08-25 22:10:53 602

原创 简单介绍AQS底层原理

AQS简介全称Abstract Queued Synchronizer, 抽象队列同步器,它是并发包中的基础类,比如ReentrantLock就基于AQS实现可重入锁AQS原理AQS中有state丶临界区线程丶等待队列三个重要部分组成其中线程去CAS更新state为1,更新成功的线程进入代码临界区,其它CAS更新失败的线程进入等待队列临界区线程释放锁后,唤醒等待队列线程.如果此时有其它线程进来CAS更新state为1,那么等待队列线程继续等待,这就是被插队,非公平锁,Java中ReentrantL

2020-08-25 21:51:54 768

原创 简单介绍synchronized底层原理

synchronized加锁方式大致三种锁对象锁this指针,当前对象锁类.classsynchronized的原理底层主要是有monitor对象,获取锁时判断标志位是否为0,为0则进入临界区对应的指令monitorenter,获得锁后标志位改为1,其它线程获取锁发现标志位1,进入阻塞状态,直到临界区线程出来是标志位-1变为0对应的指令monitorexit...

2020-08-25 21:21:09 149

原创 Java观察者(Observe)模式--项目实战应用

观察者模式简介我简单说一下, 理论知识网上有很多,我不细说了组成结构组要有Subject和Observe组成表结构 对象关系User对象和Article丶UserRecord有关联可以理解为User对象是主题Article丶UserRecord是订阅者运行结果User添加会通知Article和UserRecord去添加相应的数据User删除会通知Article和UserRecord去删除相应的数据总结观察者模式便于维护对象之间的依赖关系,保证数据的一致性优点即可扩展性和可维护

2020-08-25 13:39:07 317

原创 JDK动态代理使用及底层原理和源码

JDK动态代理步骤1.实现代理前需要实现一个接口的invoke方法即可2. 使用动态代理如下关键代码3.执行结果调试JDK动态代理源码首先进入newProxyInstance方法,719行代码是获取到代理对象的Classcom.sun.proxy包下的,而且类名有个0结尾,避免代理类重复,保持唯一ID紧接着跟进去719行代码的细节 Class<?> cl = getProxyClass0(loader, intfs);429行代码很关键,首先从缓存中找接口,找不到

2020-08-23 15:14:22 794 1

原创 Java手写简易spring ioc实战。

准备环境1.一个maven web工程2.引入dom4j依赖<dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.1.3</version> </dependency>3.创建一个spring.xml4.创建BeanFactory用于解析xml

2020-08-23 00:57:11 188

原创 Java手写动态代理,模拟动态代理,任意逻辑动态代理

实现思路1.字符串拼接生成一个Java文件2.用IO流输出到磁盘3.运行时编译4.执行动态代理自己写的动态代理只用于理解JDK动态代理的思想, 无其他用处, 目前可以实现任意逻辑的代理,执行前和执行后执行效果源代码:: 码云....

2020-08-22 11:59:11 95

原创 Windows IDEA中debug模式启动提示端口占用解决方案

抛出异常异常中提示1199端口被占用第一步打开cmd 输入命令: netstat -ano | findstr “1199”第二步打开任务管理器找到PID 8488的程序把它kill掉,根据PID升序显示,更好定位PID第三步 结束任务后,直接启动IDEA即可,完美解决...

2020-08-21 09:42:54 2072 1

原创 2020CentOS 6 安装2020Jenkins不能安装插件全网最稳最新解决方案

原因jenkins启动后,我访问web网页后提示网络离线不能安装插件,由于我不屈不挠的精神,一天一夜终于找到解决方案,感谢这位博主马文建解决办法链接: 下载地址.提取密码:p2cg这是jenkins的插件包,把jenkins安装好后跳过插件安装,然后去到jenkins的plugins目录下面,把插件全部上传进去就好了,我的目录是 ** /root/.jenkins/plugins **,参考他写的这篇文章找到的解决方案https://mawenjian.net/p/1600.html/comm

2020-08-19 12:31:11 183

原创 CentOS 6 安装docker的问题

安装 docker-ce错误错误:Package: 3:docker-ce-19.03.12-3.el7.x86_64 (docker-ce-stable) Requires: libseccomp >= 2.3错误:Package: containerd.io-1.2.13-3.2.el7.x86_64 (docker-ce-stable) Requires: libseccomp错误:Package: 3:docker-ce-19.03.12-3.el

2020-08-18 21:49:52 322

原创 IDEA把本地项目提交到Git远程仓库

首先下载Git并安装 链接: 参考其它博客.IDEA中打开设置界面指定Git.exe文件所在路径创建本地仓库,弹出框后,选择自己的项目文件夹即可然后确定.右击项目名称,找到git选项点击add给项目设置Git远程仓库输入码云账号密码设置远程仓库完成了右击项目提交目录点击提交首次使用git需要填写用户名称,随便写就行,只是一个代号右击项目找到git下的push,推送到远程仓库去等待推送完成刷新git仓库项目已经提交完成

2020-08-18 17:08:23 828

原创 Spring Cloud微服务feign远程调用404问题

问题调用场景有两服务课程服务和订单服务,课程服务 --> 调用订单服务,主要是查询课程是否存在支付过的订单— 明天再写吧 先睡觉 2020年8月12日22:49:23

2020-08-12 22:50:12 3183

原创 前端Vue项目node_modules依赖下载失败解决方案

npm install命令下载依赖失败把node_modules文件夹删除,然后用cnpm install命令下载依赖即可

2020-08-12 20:29:38 5015 3

原创 Java中公平锁和非公平锁各自的特点

公平锁公平锁对于线程来说是先请求先调度执行,即FIFO队列,队列头部第一个线程永远先执行,吞吐量不理想.例如Java中的ReentrantLock可以通过参数改为公平锁,默认是非公平锁.FairSync()实现类公平锁非公平锁非公平锁见名知意,并不是线程先请求就会先被执行,底层是采用某种机制可能是优先权抢占,短线程抢占,来抢锁,好处就是提高了系统的吞吐量,其中短线程抢占算法可能会导致长线程得不到执行产生"饥饿"现象,不过可以采用"老化技术"来解决饥饿问题.总结至于使用什么锁,是需要看使用场

2020-08-10 22:30:43 510

原创 Java并发HashMap报错ConcurrentModificationException解决方案

HashMapHashMap是散列表存储,采用key-value键值对存储数据,其中k用hash散列函数找到存储位置,为的就是减少查找比较次数,特点: 无序,key不可重复,key可以为null,value可重复,线程不安全.JDK1.7底层是采用数组+链表,hash碰撞后采用拉链法来解决碰撞问题.JDK1.8底层采用数组+链表+红黑树,链表长度大于等于8且容量大于等于64就会树化,否则会反树化.案例代码public class HashMapConcurrentDemo { public

2020-08-09 14:36:00 3018

原创 Java并发HashSet报错ConcurrentModificationException解决方案

HashSetHashSet特点: 元素不可重复,无序,线程不安全,底层是HashMap实现,HashMap的key是唯一不可重复的,value则是用的一个Object对象"占位",主要是key用来存取数据.案例代码public class HashSetConcurrentDemo { public static void main(String[] args) { Set<String> list = new HashSet(); for

2020-08-09 14:19:20 1576

原创 Java并发ArrayList报错ConcurrentModificationException解决方案

ArrayListArrayList是一个集合,特点: 有序,元素可重复,随机查找快,删除和插入较慢,线程不安全.默认10个容量大小,底层实现是一个数组和动态扩容技术,扩容时是当前容量的1.5倍,即10*150% = 15.案例代码public class ArrayListConcurrentDemo { public static void main(String[] args) { List<String> list = new ArrayList&lt

2020-08-09 13:58:12 506

原创 Java并发CAS之ABA问题

CAS锁有ABA问题因为CAS是乐观锁,只要预期值和当前值相同则可以修改成功,但是这会有个"ABA"问题.什么是"ABA"问题呢,我上段程序就知道了public class AtomicReferenceDemo { static AtomicReference<Integer> atomicReference = new AtomicReference<>(100); static AtomicStampedReference<Integer>

2020-08-08 22:14:47 151

原创 Java并发CAS原理

CAS(CompareAndSet)实现原理Unsafe类的支持自旋锁Unsafe类是什么?是CAS的核心类,Unsafe类是一个native方法,底层是C++语言实现的,Unsafe在Sun.misc包下,由此Java可以操作底层的内存,得以实现CAS的原子操作.

2020-08-08 21:09:32 124

原创 Java并发CAS基本功能

CAS简介CAS全程CompareAndSet,比较并交换,有一个期望值,和一个最终修改值,如果期望值不相等则修改失败,否则修改成功.CAS案例public class CompareAndSetDemo { static AtomicInteger atomicInteger = new AtomicInteger(6); public static void main(String[] args) { boolean b = atomicInteger.compa

2020-08-08 19:22:22 215

原创 Java内存模型之原子性

原子性原子性,不可分割,操作不能打断.比如人说一句话不被打断这就是原子性.程序也是执行某个操作被打断就会产生致命的错误.原子性反面案例class Data{ volatile int number=0; public void numberIncrement(){ this.number++; }}public class Main { public static void main(String[] args) { Data da

2020-08-08 12:33:47 227

原创 Java内存模型可见性之volatile(三)

上一篇文章说到了JMM可见性的案例 链接: Java内存模型之可见性(二).volatilevolatile关键字是可以保证线程间的可见性,线程间通信,可以认为是轻量级的synchronized.案例class Data{ volatile int number=0; public void addTo60(){ this.number = 60; }}public class Main { public static void main(Str

2020-08-08 11:48:07 102

c#7.0本质论带图片完整版

c#7.0本质论 高清彩色扫描 c#7.0本质论带图片完整版 c#7.0本质论带图片完整版

2021-06-25

NetBeans 2007考试版本 Java全国等级计算机二级考试

NetBeans 2007考试版本 Java全国等级计算机二级考试 NetBeans 2007考试版本 Java全国等级计算机二级考试

2020-09-22

Nice Vibrations Haptic Feedback for Mobile Gamepads v3.6.unitypackage

Unity震动插件Nice Vibrations v3.6下载 Nice Vibrations Haptic Feedback for Mobile Gamepads v3.6.unitypackage

2020-08-14

空空如也

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

TA关注的人

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