- 博客(31)
- 资源 (2)
- 收藏
- 关注
原创 ContentType对应值
1、xlsapplication/vnd.ms-excel2、xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet3、pptapplication/vnd.ms-powerpoint4、pptxapplication/vnd.openxmlformats-officedocument.presentationml.presentation5、docapplication/msword
2023-09-08 13:34:47
152
原创 ArrayList扩容机制
初始化private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;}如上所示,初始化时,如果不带初始容量大小会默认使用空数组;public ArrayList(int initialCapacity) { if (initialCapacity &g
2021-10-21 09:22:49
209
原创 InnoDB事务隔离与回滚
InnoDB是MySQL默认的事务型存储引擎,它通过redo log和undo log实现了事务的提交和回滚操作,redo log为事务提供了持久性和原子性的保证,undo log提供了隔离性和一致性的实现。事务的四个特性ACID,atomicity,consistency,isolation,durability;原子性表示原子操作不可拆分;一致性是事务内的操作同时成功同时失败;隔离性,未提交的数据无法被读取;持久性,持久性表示数据会存储在日志中,即使事务过程中服务器宕机,仍然
2021-10-16 14:57:29
507
原创 SQL更新语句执行过程及其缓存备份实现
首先SQL更新在词法语法解析和优化其实和查询语句是相似的,都是通过连接器连接,分析器解析,优化器优化,最后通过执行器调用Inndb存储引擎查询数据然后更新数据。而在执行操作语言时,会与查询语言不同。清空缓存如果MySQL数据库开启了缓存功能,那么,查询语句会根据表名去清空该表所有的缓存,在更新等操作语句较多的情况下,不开启缓存可能会有更高的性能。操作日志MySQL操作日志有多种,操作语句会先操作数据,然后将操作存储到日志,包括redo log(重做日志)、undo log(提供回滚和多个
2021-10-14 23:53:16
325
原创 Shedlock分布式锁源码解读
前言,我在测试使用Shedlock时,使用的是Redis作为其存储库,因此本篇也是以Redis分布式锁来描述的。准备程序引入依赖<!-- 分布式定时任务锁 --><dependency> <groupId>net.javacrumbs.shedlock</groupId> <artifactId>shedlock-spring</artifactId> <version>4.0.4&l
2021-10-14 22:49:02
511
原创 Redis实现分布式锁
Redis能做的事情有很多,不仅于缓存,如分布式锁,也有很多很好的实现;什么是分布式锁首先锁的作用是为了避免资源争夺或者资源被篡改导致程序错误,如synchronized、Lock和ReentrantLock都可以实现资源的锁定,给资源添加一把锁,其他程序再次访问时,发现有锁就等待锁释放后再访问;而集群模式下,程序内部锁最多只能保证一个服务只有一个线程在操作,但两个服务就会有两个线程,对于资源,又会出现两个线程并发处理的情况,所以我们就用到了分布式锁;分布式锁:通过外部的一个锁变量,来保证资
2021-10-13 23:22:37
309
原创 SQL查询语句执行过程
查询就是用通过数据库规定的语法编写一条SQL,再通过数据库的逻辑处理,然后匹配出相应的数据信息;语法我们知道,所以想知道SQL执行的原理就需要知道数据库的逻辑和架构,先看数据库的架构。MySQL数据库的架构首先先看架构图MySQL数据库的架构主要包含两个模块,Service模块和存储模块,Service中包含连接器、分析器、缓存器(MySQL8.0版本去除了服务器端的缓存器模块)、优化器和执行器,Service模块是MySQL的主要业务模块连接器是作为MySQL的入口,连接器负责跟客
2021-10-13 22:37:25
596
原创 单例模式详解(七种实现方式)
定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式结构图:单例模式有多种写法各有利弊,现在我们来看看各种模式写法。1. 饿汉模式public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){ } public static Singleton getInstance() { ..
2021-10-11 22:07:49
473
原创 建造者模式详解
目录1. 概述2. 结构3. 角色● Product产品类● Builder抽象建造者● ConcreteBuilder具体建造者● Director导演类4. 优点● 封装性好● 扩展性好● 便于控制细节风险5. 缺点6. 使用场景7. 实际应用● Guava::ThreadFactoryBuilder● StringBuilder8. 总结1. 概述建造者模式(Builder Pattern)也叫做生成器模式;定义:将.
2021-10-09 15:15:25
289
原创 如何实现死锁(2)锁顺序死锁
概念:当一个线程永远的持有一个锁,并且其他线程都尝试获得这个锁时,那么它们将永远被阻塞锁顺序死锁(抱死)/** * 锁顺序死锁 */public class LeftRightDeadLock { private static Object left = new Object(); private static Object right = new Object(); public static void leftRight() { synchronize
2021-03-16 18:04:21
387
2
原创 如何实现死锁(1)线程饥饿死锁
线程饥饿死锁1,父线程等待子线程返回值public class DeadLockDemo { private static ExecutorService exec = Executors.newSingleThreadExecutor(); public static class DeadLockTask implements Callable<String> { @Override public String call() throw
2021-03-12 09:45:36
254
4
原创 关于线程中断的理解
1,概述首先,线程的中断是一种协作机制,什么是协作机制呢?每个线程都有一个boolean类型的中断状态,其他线程通过修改该线程的中断状态来控制该线程的中断;2,Thread中断方法interrupt():设置中断isInterrupted():是否中断(返回是否已经设置中断状态)interrupted():清除调用方当前线程的中断状态(静态方法)public static boolean interrupted() { return currentThread().isInterrupted(
2021-03-08 22:31:24
229
原创 高效缓存的实现及其应用于接口幂等性的尝试
1,前言该缓存为Java并发编程实战中实现的,主要是为了将性能瓶颈并转变为可伸缩瓶颈,用于提升单线程的性能;该缓存主要是为了解决高开销高耗时接口的性能提升。而基于此接口,能够尝试实现接口的幂等性。2,实现@FunctionalInterfaceinterface Computable<A,V> { V compute(A arg) throws InterruptedException;}/** * 高耗时接口DEMO */class ExpensiveFu
2021-03-05 08:55:53
334
2
原创 “装饰者模式”详细分析
装饰者模式1,概述装饰者模式就是在不修改当前类的前提下向现有对象添加新功能,通过包装类来提供额外的功能。2,关键对象 抽象被装饰类(接口或抽象类):用于规范接口或方法定义 被装饰类:方法源,通过装饰者为其添加方法 抽象装饰者(非必要):继承抽象构建,并包含装饰类,通过子类来进行具体扩展 具体装饰者:实现抽象构建的方法,并进行扩展,添加新功能或修改原方法的具体实现 3,示例装饰者模式是较为简单的结构型设计模式,主要为了扩展类功能,如果仔细琢磨装饰者模
2021-02-18 16:34:18
181
2
原创 如何实现数组转树结构(List to Tree)
1,编码实现该方法来自一位国外大神的博客,通过Map以及Java对象在内存中的关系来实现树结构的组装class Node { private String name; private Integer id; private Integer parentId; private List<Node> children; // getter and setter}public class CreateTree { publi
2021-01-28 09:33:48
950
2
原创 “访问者模式”--如何实现删除多级目录
抽象类或者接口,声明访问者可以访问哪些元素,具体到程序中就是visit方法的参数定义哪些对象是可以被访问的。
2020-04-23 10:03:44
828
原创 media.player.js
/** 定义一个新的player类 */ /* MediaPlayer类定义 冰点原创 */ function MediaPlayerE() { this.dom=null; } MediaPlayerE.uiMode= { Full:"full", Mini:"mini", None:...
2020-04-02 17:25:50
421
原创 wdcp安装之后无法访问
wdcp安装之后仍然无法通过端口进行访问使用的阿里云的ECS云服务器1. 原因:阿里云服务器后台的安全组要设置下> 阿里云服务器ECS处于安全考虑默认自带安全组(仅开放了22号和3389号端口)>https://yq.aliyun.com/articles/701181?spm=a2c4e.11155472.0.0.38bf677avSOMog但是在开启了安全...
2019-06-08 23:31:59
1251
原创 如何实现Java字符串自动补零
Java 中给数字左边补0(1)方法一import java.text.NumberFormat;public class NumberFormatTest { public static void main(String[] args) { //待测试数据 int i = 1; //得到一个NumberFormat的实例 ...
2019-06-06 10:31:13
678
原创 Mybatis配置SqlServer, 踩坑记录
<!-- sqlServer数据库配置 --> <bean id = "dbcp2" class = "org.apache.commons.dbcp.BasicDataSource"> <property name ="username" value ="sa"></property> &...
2019-04-03 11:51:49
2332
原创 Media Player视频播放插件,兼容ie8+等, 记录
通过HTML代码实现 <object id="mediaPlayer" classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" width="800" height="600" standby="Loading Windows Media Player components…" type="application/x-oleo...
2019-03-20 13:54:20
2131
1
转载 markdown编辑器
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2019-03-20 13:50:48
106
原创 程序报错 Unable to compile class for JSP ,
报错如下: org.apache.jasper.JasperException: Unable to compile class for JSP:An error occurred at line: 16 in the jsp file: /grstemp/SpecialModule/metropro/paiban/classBasic/classBasicSave.jspcheck ...
2019-02-13 16:57:40
1241
转载 mysql中不等于和isnot的比较
//不会查出字段是null的数据SELECT * FROM table WHERE IsDeleted <> true AND name LIKE '%%'SELECT * FROM table WHERE IsDeleted != true AND Name LIKE '%%'//可以查出字段是null的数据 SELECT * FROM table WHERE...
2018-12-29 10:41:39
3171
原创 windowlocation跳转页面时,通过post传递数据
先贴代码:html部分: 创建一个隐藏div<div id="otherform" style="display:none;"> </div> <!-- 这里构造一个div -->js部分: 通过js生成一个虚拟的form表单,通过直接提交 $("#otherform").html( "<for
2018-11-01 13:10:52
3094
转载 js取整与进位
js中小数向上取整数,向下取整数,四舍五入取整数的实现。1.ceil() 向上-------------ceil英文意思是:天花板-----------就是在上2.floor() 向下-------------ceil英文意思是:地面-----------就是在下3.round() 四舍五入-------------ceil英文意思是:大约-----------就是附近直接看下面...
2018-10-27 14:23:50
2429
转载 js获取当前日期和时间(待完善)
//获取当前时间,格式YYYY-MM-DD function getNowFormatDate() { var date = new Date(); var seperator1 = "-"; var year = date.getFullYear(); var month = date.getMonth() + 1; ...
2018-10-27 13:55:40
107
转载 Spring IOC控制反转和DI依赖注入
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。 一、分享Iteye的开涛对Ioc的精彩讲解 首先要分享的是Iteye的开涛这位技术牛人对S...
2018-09-06 17:55:17
199
转载 各数据库的默认端口号
今天开始记录工作中所遇到的问题,以及对问题的思考.关系型数据库一 :Oracle驱动:oracle.jdbc.driver.OracleDriverURL:jdbc:oracle:thin:@<machine_name><:port>:dbname注:machine_name:数据库所在的机器的名称,如果是本机则是127.0.0.1或者是localhost,如...
2018-09-05 13:42:51
385
2020更新-省市区街道数据.rar
2021-01-25
MediaPlayer.js
2019-03-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人