自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (2)
  • 收藏
  • 关注

原创 jquery监听复选框事件,导致ajax重复提交问题解决方法

问题描述点击一次复选框,ajax重复提交解决方案 $("input[type='checkbox']").unbind('change').change(function(){ alert("ok"); });因为原有的change事件会与自己编写的change监听事件叠加 , 导致了ajax的重复提交 ,使用unbind解绑原有的change事件,使得ajax只提交一次unbind函数中的事件名与你监听的事件名相同最后效果 :...

2020-06-30 13:50:09 476

原创 后端实现WebSocket推送消息

场景在管理平台中需要对前端传来的远程控制消息进行处理并传递到中控服务,中控服务再将控制消息转发给被控设备,从而实现远程控制在这个场景中需要在后端创建一个WebSocket的长连接实现后端向中控服务推送消息出现的问题org.java_websocket.exceptions.WebsocketNotConnectedException: null思路1、先检查url是否能连通 , 测试连接2、如果连接也没有问题,在代码中增加一个等待连接状态循环while (!webSocketClient

2020-06-29 11:02:27 1134

原创 echarts通过ajax动态加载数据x轴显示不全问题

X轴数据显示不全问题原本应该显示的x轴数据实际上图表中展示的x轴数据原因是图表初始化的宽度的问题解决方法1、将容器初始化的宽度拓宽这里宽度设置为1400px,成功显示了所有数据<div id="linetable" style="width:1400px;height:400px;"></div>2、增加x轴的滚动条具体可以参考echarts官网文档关于dataZoom的教程 :dataZoom如果对容器宽度有限制的话,可以使用滚动条的形式,只需

2020-06-19 11:27:30 753

原创 SpringMVC-中文乱码问题与静态资源(CSS,js,images)无法访问问题

一、中文乱码问题1.1、web.xml文档的配置Spring框架给我们提供过滤器CharacterEncodingFilter这个过滤器就是针对于每次浏览器请求进行过滤的,然后再其之上添加了父类没有的功能即处理字符编码。其中encoding用来设置编码格式,forceEncoding用来设置是否理会 request.getCharacterEncoding()方法, 设置为true则强制覆盖之前的编码格式在web.xml中配置的初始页面是不会进入过滤器的,结果就是导致访问初始页面时出现中文乱码

2020-06-11 10:53:08 818

原创 谈谈Java中的锁机制

一、Synchronized关键字原理什么是SynchronizedSynchronized是java内建的同步机制,提供了互斥的语义和可见性,当一个线程已经获取当前锁时,其他试图获取锁的线程会被阻塞Synchronized核心组件Wait Set那些调用wait方法被阻塞的线程被放置在这里Contention List竞争队列,所有请求锁的线程首先被放在这个竞争队列中Entry ListConnection List 中那些有资格成为候选资源的线程被移动到Entry List

2020-06-06 14:55:58 416

原创 分析HashTable、HashMap与ConcurrentHashMap

一、HashTable、HashMap有什么不同1.1 HashTableHashTable是遗留类,很多映射的常用功能与HashMap类似,不同的是它继承自Dictionary类不支持null键和值,并且是线程安全的,任意时间只有一个线程能写HashTable,锁的粒度粗,并发性不如ConcurrentHashMap,因为其引入了分段锁,每次只将一个小部分上锁1.2 HashMap(数组+链表+红黑树)HashMap不是同步的,最多只允许一条记录的键位null,允许多条记录的值为null,它是根据

2020-06-03 22:22:29 198

原创 分布式事务的两阶段提交协议与三阶段提交协议

两阶段提交协议定义 :在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的算法情景在分布式系统中,每个节点虽然可以知道自己的操作是否成功,却无法知道其他节点是否成功,当一个事务跨越多个节点时,为了保持事务了ACID特性,需要引入一个作为协调者的组件来统一掌控所有节点(称作参与者)的操作结果并最终指示这些节点是否要把操作结果进行真正的提交算法思路参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报来决定各参与者是否要提交操作还是中止操作操

2020-05-30 13:04:11 423

原创 ubuntu 18.04 安装Anaconda4.4.10遇到的Command not found问题(已解决)

1、首先我自己创建了一个名为Anaconda的文件夹2、使用Wget 将安装包下载到Anaconda目录3、在命令行输入安装命令4、回车阅读注册信息5、是否接受用户协议(yes)6、最重要的一步 :选择安装目录(要看清楚到底安装在哪里)我以为是直接安装在我自己创建的Anaconda目录,但是它自己重新创建了一个anaconda3的目录7、环境配置红线位置写上你的anaconda安装目录,第六步看到的export PATH="/home/ubuntu/anaconda3/bin:

2020-05-26 16:20:28 301

原创 Java提供了哪几种IO方式

同步、异步、阻塞、非阻塞概念阻塞、非阻塞IO操作分两部分,发起IO请求和IO数据读写,阻塞、非阻塞主要是针对线程发起IO请求后,是否立即返回同步、异步针对IO数据读写定义的,读写数据过程不阻塞线程称为异步IO阻塞IO模型最传统的一种IO模型,在读写数据的过程中会发生阻塞现象,当用户线程发出IO请求之后,内核会去查看数据是否准备就绪,如果没有准备就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。数据准备就绪后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才

2020-05-24 12:19:50 3386

原创 趁热打铁——JVM的垃圾回收机制(GC)

堆的概念堆是被线程共享的一块内存区域,创建的对象和数组都保存在Java堆内存中,也是垃圾收集器进行垃圾收集的最重要的内存区域,堆从GC角度角度还可以细分为新生代和老年代新生代Eden区Java新对象的出生地(如果新创建的对象占用内存很大,则直接分配到老年代),当Eden区内存不够的时候就会触发MinorGC,对新生代区进行一次垃圾回收MinorGC采用的是复制算法,因为新生代对象大量死去,只有少部分存活将少部分存活的对象复制到copy区域后,直接将其余部分抹去Survivor1区和

2020-05-23 17:46:07 238

原创 一条大路通向JVM

基本概念JVM是可运行Java代码的假象计算机,包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收,堆和一个存储方法域,JVM是运行在操作系统之上,它与硬件没有直接的交互JVM内存模型JVM运行时内存区域划分,哪些线程私有类加载机制加载把A.class字节码文件从各个来源通过类加载器装载入内存,然后将该字节流所代表的静态数据结构转化为方法区(和堆一样,被所有线程共享)中运行的数据结构,并且在堆内存中生成一个A class对象作为访问方法区数据结构的入口,当第二次还需要创建A对象的时候,此

2020-05-23 11:26:18 213

原创 MySQL-MVCC 实现乐观锁的一种方式

什么是MVCCMVCC-多版本的并发控制协议 , MVCC是通过保存数据在某个事件点的快照来实现的优点是 : 读不加锁 , 读写不冲突MVCC原理每开启一个新的事务,事务的ID就会自动递增,也就是为事务分配单向增长的时间戳,为每一个修改保存修改之前的版本(相当于快照),读操作只读该事务开始前的数据库的快照,这样读操作就不用阻塞写操作,写操作不用阻塞读操作的同时,避免了脏读和不可重复读脏读 : 读取未提交数据 , A事务读取B事务未提交的数据,如果此时B事务发生回滚,A事务读取的数据称为脏数据

2020-05-22 22:17:54 206

原创 软件设计的里氏替换原则与单一职责原则(读书笔记)

一、里氏替换原则若对每个类型 T1 的对象 o1,都存在一个类型 T2 的对象 o2,使得在所有针对 T2 编写的程序 P 中,用 o1 替换 o2 后,程序 P 的行为功能不变,则 T1 是 T2 的子类型。简单的阐述里氏替换原则 : 一个父类A,一个子类B继承自A类,在程序代码之中可以用子类B的对象引用去替换掉原本代码中的A类对象引用,并且程序不会出问题要满足这个条件就需要子类A的...

2020-02-13 20:46:54 224

原创 软件设计的开闭原则与倒置原则(读书笔记)

Todo :早上总结两篇文章的笔记进行发布

2020-02-12 18:39:33 254

原创 如何使用UML完成一个设计文档(读书笔记)

软件建模与设计过程可以拆分成需求分析、概要设计和详细设计三个阶段。UML 规范包含了十多种模型图,常用的有 7 种:类图、序列图、组件图、部署图、用例图、状态图和活动图。一、类图类图用于描述类的特性和类之间的静态关系类的组成部分类的名字,类的属性,类的方法类之间的关系关联当一个类的属性保存了对另一个类的实例的引用时,就产生了关联关系单向关联 双向关联自身关联多维关联...

2020-02-10 13:14:47 1088

原创 文件系统原理(读书笔记)

硬盘标题机械式硬盘和固态硬盘 :机械式硬盘 : 通过移动磁头臂进行读取相应的数据,如果数据存储不是连续的会造成来回移动,时间损耗大固态硬盘 : 完全的电子操作,对于文件的访问速度快于机械式硬盘实际场景 :由于固态硬盘成本高于机械式硬盘,通过使用固态硬盘与机械式硬盘的混合部署方式,满足不同文件类型的存储需求文件系统文件系统将硬盘以块为单位进行划分,每个文件占据若干块,然后通过文件...

2020-02-09 17:54:03 189

原创 Samba 实现 Windows 访问 Linux的共享目录

准备工作Samba的安装使用yum安装Sambayum install samba -y创建共享文件夹创建共享目录share,修改目录权限为777配置Samba服务设置在Selinux环境下使用Samba/usr/sbin/setsebool -P samba_export_all_rw on重启Samba服务Windows开启Samba服务并访问共享目录...

2019-11-30 16:33:09 298

原创 Linux Redhat6.3 下安装 Zhcon教程

将zhcon安装包导入到root目录下 :使用yum安装gpm :安装zhcon运行zhcon报错 :处理方法 :在kernel 行末尾添加 vga=ask ,重启后可以进行显示模式选择选择显示模式 :启动zhcon :使用zhcon命令启动后还是乱码 :使...

2019-11-20 23:46:59 727

人工智能四则运算手写体识别训练模型

能够区分0-9的数字,以及+,-,*,/,()运算符,支持括号运算,识别精度达到90%以上,需要的请自取

2020-06-07

Redhat6.3 zhcon 无冲突rpm安装包

其他版本的zhcon安装包进行安装时需要下载大量的依赖程序 ,流程繁琐,容易出错, 而在Redhat6下直接安装该rpm , 不会报缺少依赖库的错误提示,需要的可以下载

2019-11-20

空空如也

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

TA关注的人

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