- 博客(52)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
原创 html2canvas图片模糊问题解决方案
不多说,上代码 function test() { html2canvas($('#test'),{ dpi:1000, onrendered: function(canvas) { convertCanvasToImage(canvas); } }) } function convertCanvasToImage(canvas) {
2020-08-29 20:40:03
3366
1
原创 js脚本实现自由复制百度文库文字
这几天查看百度文库的文档,当复制部分文字的时候发现百度文库对文本复制做了长度限制,而开通VIP则略显不必要,同时也为了复习下js脚本制作,这里制作一个能够自由复制文库文字的脚本。分析了下百度文库的限制方式,目测是通过js重写覆盖了默认的 ctrl+c的方法并限制了复制的文字长度,因此原来的基本思路就是自己重写一个方法再次覆盖 ctrl+c指令并将复制的内容直接复制到粘贴板上,但是脚本做好之...
2019-08-01 14:02:16
5194
原创 解决ImportError: cannot import name 'ClockDisplay'
首先贴图:问题定位在fps.py中,pyglet.clock没有ClockDisplay方法,原因是安装了最新版的(1.4.0)pyglet,解决办法是安装1.3.0版本:Windows:pip install pyglet==1.3.0Linux:wget https://bitbucket.org/pyglet/pyglet/downloads/pyglet-1.3.0...
2019-07-24 16:40:34
2532
原创 Java查看class文件字节码
现在对Java的class文件反编译工具功能已十分强大,强大的反编译工具使得我们能够轻松的查看class文件对应的Java代码,但是有时候我们为了学习及研究,需要查看class文件对应的字节码,这里提供一个简单的指令来查看:假设我们现在需要查看single.java的字节码:在路径栏其输入cmd并按回车打开指令框:首先我们需要生成class文件:javac Single.jav...
2019-07-12 15:56:49
342
原创 Java 基于volatile关键字修饰的变量在并发中不一致性的问题
这几天在复习多线程及高并发的相关知识。volatile关键字一般认为是一种较轻量级的多线程并发解决方案。确实,使用volatile关键字所修饰的变量能够保证变量值一旦更新则所有线程都能够看到最新的值,但这并不意味着使用volatile关键字修饰的变量在做运算操作时能够保证数据的一致性,因为Java的运算操作并非为原子操作。下面我们举个例子:public class test { pub...
2019-07-12 15:47:52
2589
原创 poi 解决读取整数会转为double问题
poi默认读取数值时会将其转为double,但有些时候这样做会带来数据的不准确,比如Excel里是1而读取出来的数值时1.0,因此我们需要将真正的数值获取到。这里可以先检测当前cell格式,若为数值则将单元格强制转为string类型再获取stringValue,如此可获取真实的数值,代码如下: //校验数值型单元格 private static String validateC...
2019-06-20 15:01:32
5183
原创 使用HttpURLConnection传递文件及参数
这几天在研发公司自用的excel校验工具,需要将后台存储的excel通过http传递到excel校验服务端同时传递相关的参数,查询网上的解决方案并没有适合的,这里结合网上提供的解决方案给出我自己的解决办法:Http传输工具类方法: /** * 文件上传 * @param httpUrl 文件上传的url * @param uploadFilePath ...
2019-05-24 14:27:29
5112
原创 Shiro学习笔记(三)权限验证的两种方式
一般来说,项目中能用两种方式进行权限验证:手动调用shrio提供的login方法并捕捉异常或者由shrio自己验证并返回验证的异常信息。网上对于shrio的验证流程已经有很多这里不再具体说明。手动调用shrio提供的login方法 @RequestMapping("/login") public String login(HttpServletRequest request...
2019-03-27 11:53:56
856
原创 Shiro学习笔记(二)UsernamePasswordToken源码简单解析
在shrio中,AuthenticationToken用于存储前端传来的登录信息,通俗来说就是用户名及密码等。而在这之中比较常用的就是UsernamePasswordToken。为了了解shrio的验证过程有必要先了解与验证相关的主要的几个类。首先看下shrio对UsernamePasswordToken的描述:/** * <p>A simple username/passwo...
2019-03-27 09:53:46
30849
2
原创 选择排序 Visual Basic, C, Java, Python3及JavaScript的实现
Visual Basic实现:Private Sub Command2_Click() Dim bubbleList(4) As Integer bubbleList(0) = 1 bubbleList(1) = 11 bubbleList(2) = 132 bubbleList(3) = 21 bubbleList(4) = 43 l...
2019-03-14 15:14:16
309
原创 冒泡排序 Visual Basic, C, Java, Python3及JavaScript的实现
Visual Basic实现:Private Sub Command1_Click() Dim bubbleList(4) As Integer bubbleList(0) = 1 bubbleList(1) = 11 bubbleList(2) = 132 bubbleList(3) = 21 bubbleList(4) = 43 l...
2019-03-13 11:32:45
320
原创 通过Executors工具类创建线程池的隐藏风险
最近看了下阿里开发手册,其中有一条写的是通过Executors工具类创建的线程有可能会OOM。因为平时处理多线程问题的时候多以ExecutorService配合Excutors使用,专门查看了下源码,这里记录下加深印象。通过Executors工具类创建线程池一般有4种方式:newFixedThreadPool:创建一个有固定线程数的线程池。newSingleThreadExecutor...
2018-11-21 11:41:01
926
原创 ExecutorService的invokeAll方法详解
平时工作中因为用到ExecutorService的频率略多,而在这之中invokeAll方法又是常用方法,因此这里详细解读下invokeAll方法。首先贴上源代码:public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) ...
2018-11-09 16:06:27
15769
原创 Spring Boot 通过@PropertySource或者@PropertySources实现设置多配置文件
Spring Boot 官网使用的是application.properties文件来实现文件的配置。但是实际情况下一个配置文件是不够用的,比如项目集成redis,mq,以及数据库比如mysql的时候,多个配置文件有利于开发及维护的管理。Spring Boot是通过@PropertySource或者@PropertySources来实现多配置文件的。首先看下@PropertySource源码:...
2018-11-07 15:26:29
17205
原创 Spring Boot 自定义Controller所在路径
Spring Boot 官方默认controller包需要和启动类同级,但正常开发这样做有些不规范,因此需要通过其他方式将Controller及启动类进行分离。解决办法是在启动类上添加@ComponentScan注解:@ComponentScan(basePackages = {"项目路径"})这里举例,假设这里项目路径如下:这里@ComponentScan可以加在启动类上:...
2018-11-07 11:46:34
2895
原创 js 绘制2D机柜(二)2D机柜的进阶绘制
上一篇写了基础的2D机柜绘制,今天这篇记录下机柜绘制的进阶篇。本篇主要是就数据封装及机柜界面的优化。首先是数据封装,正常来说数据的封装不会如上篇那么简单,这里加入更详细的数据用于展示信息,所需封装的数据如下: //configuration 机柜配置信息 //cabinet_id 机柜id //u_number ...
2018-11-02 14:13:04
2460
3
原创 Shiro学习笔记(一)ThreadContext源码解析
最近有空,看了下shiro源码,这里写下来用以加深记忆。本篇记录下ThreadContext类的源码解析。本篇用到的ThreadLocal及ThreadLocalMap的相关知识戳这里。首先看下ThreadContext类的说明:/** * A ThreadContext provides a means of binding and unbinding objects to th...
2018-10-25 15:50:01
11652
5
原创 LeetCode 520 Detect Capital
Given a word, you need to judge whether the usage of capitals in it is right or not.We define the usage of capitals in a word to be right when one of the following cases holds:All letters in this ...
2018-10-23 23:04:16
146
原创 js 绘制2D机柜(一)2D机柜的基本绘制
今天被领导要求用js绘制2D机柜用于向客户展示客户资产以及管理设备,虽然我是后端,既然被分配到这个任务那就得做好。首先上网查了下资料,网上目前现有的2D绘制机柜的示例不多,产品的话大概也就那么几款例如TWaver以及Hightopo,TWaver想要下载示例及js需要非免费邮箱,虽然可以通过查看网页源码规避掉这个限制,等待他们反馈实在没耐心;Hightopo则联系过客服需要付费使用,这也很大程...
2018-10-23 22:16:28
4577
2
原创 LeetCode 108 Convert Sorted Array To Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the...
2018-10-18 22:39:03
154
原创 ThreadLocal内存泄漏基于源码的个人理解
前段时间在网上看到一篇关于ThreadLocal内存泄漏的文章,觉得很有趣,因此最近抽空看了下ThreadLocal的源码,在这里记录下自己对于ThreadLocal内存泄漏的个人理解。ThreadLocal的定义和作用这里不写了,网上有很多,这里直奔主题,首先看下ThreadLocal几个比较核心的方法。GET方法 /** * Returns the value i...
2018-10-18 17:24:42
849
原创 Redis使用汇总4 hash命令
近期有空,汇总下redis各个数据结构的操作命令。这篇汇总hash命令用于加深记忆。HDELhdel命令用于移除指定的hash中的key值,返回值为移除的数量。 Jedis jedis = new Jedis("127.0.0.1", 6379); jedis.hset("append", "key1", "value1"); jedis.hset("append", "k.
2018-10-12 09:56:32
446
原创 Redis使用汇总3 set命令
近期有空,汇总下redis各个数据结构的操作命令。这篇汇总set命令用于加深记忆。SADDsadd命令用于插入set集合value。返回插入成功的元素。 Jedis jedis = new Jedis("127.0.0.1", 6379); System.out.println("sadd命令执行结果 " + jedis.sadd("append1", "a", "b", "c.
2018-10-11 22:06:35
382
原创 差集的基本定义
假设有集合A和B,所有属于A且不属于B的元素的集合被称为A与B的差集。示例:对于集合A = {a, b, c, d}和集合B = {b, c, w},则A与B 的差集为{a, d}
2018-10-11 15:14:19
41786
2
原创 Redis使用汇总2 list命令
近期有空,汇总下redis各个数据结构的操作命令。这篇汇总list命令用于加深记忆。BLPOPblpop命令用于阻塞式弹出列表元素,当给定列表中没有任何元素可弹出,连接将阻塞。当给定多个key时,连接会按key的顺序依次检索各个列表并且弹出第一个非空列表的元素。返回的结果为弹出的元素列表对应的key以及被弹出的元素。 Jedis jedis = new Jedis("127.0.0...
2018-10-11 14:36:43
338
原创 Redis使用汇总1 string命令
近期有空,汇总下redis各个数据结构的操作命令。这篇汇总string命令用于加深记忆。APPENDappend命令用于在string后追加新的字符串,若该key不存在则先创建一个空字符串的key再执行追加。append命令会返回执行之后value的长度。 Jedis jedis = new Jedis("127.0.0.1", 6379); ...
2018-10-10 16:20:52
313
原创 使用ExecutorService接口及Executors工具类实现多线程操作
今天项目上碰到一个问题,需要调取第三方的数据来处理一些业务需求。因为一次性调用数据返回的json格式的结果无论是响应速度还是解析效率上都是十分低下,为了优化这个功能,于是想到了通过ExecutorService接口及Executors工具类来实现多线程的处理数据。这里分享下本次优化的内容同时也复习下这几个相关的知识点。Executor工具类在说ExecutorService前必须先了解下E...
2018-09-06 21:05:39
1579
原创 Personal Conclusion For Pre Half Year 2018
Well, as a matter of fact, I do have no idea about where to start. During the time since I published my previous conclusion which also contained my recent target, I do follow what I ever said. I tried...
2018-08-23 10:39:02
201
原创 通过自制js脚本屏蔽网页元素
现如今各类网站已经成为我们日常生活获取信息的一个重要渠道,与此同时,网站上往往也充斥着很多我们不需要的信息,这里通过这篇文章分享下如何通过自制js脚本来屏蔽平时咱们不想看到的网站元素:这里就以咱们csdn个人博客上弹出的信息为例,事实上这里的信息我已经知道并已经参与了,但是每次刷博客都会出现,虽然有关闭按钮但是每次都点下太麻烦因此这里我想暂时把它屏蔽掉。首先我们通过浏览器上的调试器查看下网站元素:...
2018-06-29 16:09:23
11887
2
翻译 [翻译]不可变空集合与迭代器(Immutable empty collections and iterators)
原文链接:https://www.javaworld.com/article/3103442/learn-java/immutable-empty-collections-and-iterators.html你是否曾经有过这样的疑问:为什么 java.util.Collections 类会包含各类"empty"的类方法并且这些方法会返回不可变空集合以及不可变空迭代器?这篇文章将会揭示答案。 ...
2018-06-20 14:05:17
272
翻译 [翻译]方法重载在JVM中的实现原理(Method overloading in the JVM)
原文链接:https://www.javaworld.com/article/3268983/learn-java/java-challengers-1-method-overloading-in-the-jvm.html什么是方法重载?方法重载是一种允许开发者在同一个类中多次使用拥有不同参数及相同方法名方法的一种编程技巧。在这种情况下,我们称之为方法被重载。下面的示例显示了拥有不同参数(不同之处...
2018-06-06 15:02:28
224
原创 JVM学习笔记(四)类加载机制
今天巩固下JVM类(class)加载机制。在Java中一个类从加载进JVM内存直至卸载一共会经历过7个流程,分别为:加载(Loading),验证(Verification),准备( Preparation),解析(Resolution),初始化(Initialization),使用(Using),卸载(Unloading)。加载 加载阶段共分三步: 1)通过类的全限定名来获取定义此类的二进制...
2018-06-05 11:26:44
260
翻译 [翻译]在字符串常量池中字符串方法,关键字以及运算符如何处理字符串比较 (How String methods, keywords, and operators process comparison)
原文链接:https://www.javaworld.com/article/3276354/java-language/java-challengers-2-string-comparisons.html在Java中,String类封装一个char数组。简单来说,String 是一个char数组用于组合文字,语句或者任何你想要的数据。封装是面向对象编程最强大的概念之一。因为封装,你不用了解Str...
2018-06-01 14:30:45
183
原创 Android sdkmanager tool not found (D:\AndroidStudio\androidSDK\tools\bin\sdkmanager. 解决办法
今天安装给电脑安装Flutter,开始按照Google提供的教程首先下载Flutter压缩包,之后双击flutter_console.bat并输入flutter doctor指令检查安装环境及配置,之后报错Android sdkmanager tool not found (D:\AndroidStudio\androidSDK\tools\bin\sdkmanager. 这个问题可以通过upda...
2018-05-24 17:11:49
7025
翻译 [翻译]Java虚拟机如何实现线程同步 (How the Java virtual machine performs thread synchronization)
所有的Java程序最终都会被编译成包含字节码(Java虚拟机的机器语言)的class文件。这篇文章将带着大家一探Java虚拟机处理线程同步的机制。线程与数据共享Java有许多优点,其中之一就是其在语言级别上对于多线程的支持。该特性的主要特性主要体现在多线程情况下对数据共享的调配与访问。对于一个正在执行的Java应用,其运行时所产生的数据会被JVM划分并分别存储于多个不同的区域,包括一个或多个Jav...
2018-05-23 16:07:15
225
原创 关于Java类初始化的一些特性
在 Java中,虚拟机对于类的加载时机并未严格的约束而是根据各虚拟机的特性自行决定,但是对于初始化来说,存在几种情况使得类必须立即执行初始化操作: 1)当使用new,putstatic,getstatic,invokestatic这4条指令时,若该类未被初始化则需立即对该类进行初始化。 2)对类进行反射调用时,若该类未被初始化则需立即对该类进行初始化。 3)初始化一个类时,若该类...
2018-05-18 16:19:53
136
原创 bootstrap-datetimepicker日期选择框左右箭头不显示解决办法
今天碰到一个问题,正常引入bootstrap-datetimepicker相关css及js之后日期选择框的左右箭头图片显示不出来,不同于网上的直接图表部分为空白,而是找不到图片的样子,问题截图如下:如果只是显示为白色则在input的class里加上form-control应该就可以了但是这种情况不行,F12之后查看浏览器控制台发现几个404,如下图:问题找到,就是在项目static/fonts下缺...
2018-05-08 14:22:37
7218
1
原创 np.random.multivariate_normal方法浅析
np.random.multivariate_normal方法用于根据实际情况生成一个多元正态分布矩阵(正态分布基本概念戳这里),其在Python3中的定义如下:def multivariate_normal(mean, cov, size=None, check_valid=None, tol=None) 其中mean和cov为必要的传参而size,check_valid以及tol为可...
2018-04-19 16:54:58
65090
7
原创 正态分布基本概念及公式
正态分布,又称高斯分布。其特征为中间高两边低左右对称。它有以下几个性质:集中性:曲线的最高峰位于正中央,且位置为均数所在的位置。对称性:正态分布曲线以均数所在的位置为中心左右对称且曲线两段无线趋近于横轴。均匀变动性:正态分布曲线以均数所在的位置为中心均匀向左右两侧下降。面积恒等:曲线与横轴间的面积总等于1。正态分布函数公式如下:其中μ为均数,σ为标准差。μ决定了正态分布...
2018-04-19 15:17:06
89084
1
原创 协方差基本概念及公式
协方差用于表示变量间的相互关系,变量间的相互关系一般有三种:正相关,负相关和不相关。 正相关:假设有两个变量x和y,若x越大y越大;x越小y越小则x和y为正相关。 负相关:假设有两个变量x和y,若x越大y越小;x越小y越大则x和y为负相关。 不相关:假设有两个变量x和y,若x和y变化无关联则x和y为负相关。协方差的公式如下(2个变量的情况下):当维度多的时候可以用协方差矩阵来表示...
2018-04-19 11:39:51
39064
Spring+SpringMVC+Mybatis框架整合
2017-12-12
html2canvas div标签设置border-top图片不显示上边框
2020-08-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人