zch1990s
码龄14年
关注
提问 私信
  • 博客:414,594
    社区:579
    问答:501
    415,674
    总访问量
  • 48
    原创
  • 1,725,531
    排名
  • 50
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
  • 加入CSDN时间: 2010-12-31
博客简介:

zch-兴趣使然-blog

博客描述:
博学,审问,慎思,明辨,笃行 --- 博采众长,学以致用,韬光养晦,厚积薄发,待时而动,用自己的勤奋与才智,使自己立于不败之地。
查看详细资料
个人成就
  • 获得141次点赞
  • 内容获得25次评论
  • 获得448次收藏
  • 代码片获得443次分享
创作历程
  • 1篇
    2020年
  • 10篇
    2019年
  • 39篇
    2018年
  • 2篇
    2017年
成就勋章
TA的专栏
  • career
    4篇
  • 微信公众号开发
    2篇
  • java开发
    20篇
  • nginx
    1篇
  • JVM
    7篇
  • Python
    3篇
  • 数学
    3篇
  • Android
    1篇
  • script
    2篇
  • js
    5篇
  • 多线程
    6篇
  • redis
    4篇
  • Leetcode
    2篇
  • 数据结构
    2篇
  • 算法
    3篇
  • Shiro
    3篇
  • Spring Boot
    2篇
兴趣领域 设置
  • 后端
    spring
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Shiro学习笔记(二)UsernamePasswordToken源码简单解析

在shrio中,AuthenticationToken用于存储前端传来的登录信息,通俗来说就是用户名及密码等。而在这之中比较常用的就是UsernamePasswordToken。为了了解shrio的验证过程有必要先了解与验证相关的主要的几个类。首先看下shrio对UsernamePasswordToken的描述:/** * <p>A simple username/passwo...
原创
发布博客 2019.03.27 ·
31139 阅读 ·
25 点赞 ·
2 评论 ·
50 收藏

Personal career schedule

It's been almost one year since I started to work. Currently, I think that I can handle most of the problems which I meet during my daily work. Today, I just talked with HR in my company and actually,
原创
发布博客 2017.06.29 ·
377 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

html2canvas图片模糊问题解决方案

不多说,上代码 function test() { html2canvas($('#test'),{ dpi:1000, onrendered: function(canvas) { convertCanvasToImage(canvas); } }) } function convertCanvasToImage(canvas) {
原创
发布博客 2020.08.29 ·
3439 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

html2canvas div标签设置border-top图片不显示上边框

发布问题 2020.08.28 ·
1 回答

js脚本实现自由复制百度文库文字

这几天查看百度文库的文档,当复制部分文字的时候发现百度文库对文本复制做了长度限制,而开通VIP则略显不必要,同时也为了复习下js脚本制作,这里制作一个能够自由复制文库文字的脚本。分析了下百度文库的限制方式,目测是通过js重写覆盖了默认的 ctrl+c的方法并限制了复制的文字长度,因此原来的基本思路就是自己重写一个方法再次覆盖 ctrl+c指令并将复制的内容直接复制到粘贴板上,但是脚本做好之...
原创
发布博客 2019.08.01 ·
5255 阅读 ·
1 点赞 ·
0 评论 ·
7 收藏

forbid.user.js

发布资源 2019.08.01 ·
js

解决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 ·
2571 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Java查看class文件字节码

现在对Java的class文件反编译工具功能已十分强大,强大的反编译工具使得我们能够轻松的查看class文件对应的Java代码,但是有时候我们为了学习及研究,需要查看class文件对应的字节码,这里提供一个简单的指令来查看:假设我们现在需要查看single.java的字节码:在路径栏其输入cmd并按回车打开指令框:首先我们需要生成class文件:javac Single.jav...
原创
发布博客 2019.07.12 ·
378 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java 基于volatile关键字修饰的变量在并发中不一致性的问题

这几天在复习多线程及高并发的相关知识。volatile关键字一般认为是一种较轻量级的多线程并发解决方案。确实,使用volatile关键字所修饰的变量能够保证变量值一旦更新则所有线程都能够看到最新的值,但这并不意味着使用volatile关键字修饰的变量在做运算操作时能够保证数据的一致性,因为Java的运算操作并非为原子操作。下面我们举个例子:public class test { pub...
原创
发布博客 2019.07.12 ·
2633 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

poi 解决读取整数会转为double问题

poi默认读取数值时会将其转为double,但有些时候这样做会带来数据的不准确,比如Excel里是1而读取出来的数值时1.0,因此我们需要将真正的数值获取到。这里可以先检测当前cell格式,若为数值则将单元格强制转为string类型再获取stringValue,如此可获取真实的数值,代码如下: //校验数值型单元格 private static String validateC...
原创
发布博客 2019.06.20 ·
5321 阅读 ·
4 点赞 ·
0 评论 ·
3 收藏

使用HttpURLConnection传递文件及参数

这几天在研发公司自用的excel校验工具,需要将后台存储的excel通过http传递到excel校验服务端同时传递相关的参数,查询网上的解决方案并没有适合的,这里结合网上提供的解决方案给出我自己的解决办法:Http传输工具类方法: /** * 文件上传 * @param httpUrl 文件上传的url * @param uploadFilePath ...
原创
发布博客 2019.05.24 ·
5203 阅读 ·
0 点赞 ·
0 评论 ·
16 收藏

Shiro学习笔记(三)权限验证的两种方式

一般来说,项目中能用两种方式进行权限验证:手动调用shrio提供的login方法并捕捉异常或者由shrio自己验证并返回验证的异常信息。网上对于shrio的验证流程已经有很多这里不再具体说明。手动调用shrio提供的login方法 @RequestMapping("/login") public String login(HttpServletRequest request...
原创
发布博客 2019.03.27 ·
885 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

选择排序 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 ·
334 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

冒泡排序 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 ·
342 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

通过Executors工具类创建线程池的隐藏风险

最近看了下阿里开发手册,其中有一条写的是通过Executors工具类创建的线程有可能会OOM。因为平时处理多线程问题的时候多以ExecutorService配合Excutors使用,专门查看了下源码,这里记录下加深印象。通过Executors工具类创建线程池一般有4种方式:newFixedThreadPool:创建一个有固定线程数的线程池。newSingleThreadExecutor...
原创
发布博客 2018.11.21 ·
950 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

ExecutorService的invokeAll方法详解

平时工作中因为用到ExecutorService的频率略多,而在这之中invokeAll方法又是常用方法,因此这里详细解读下invokeAll方法。首先贴上源代码:public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) ...
原创
发布博客 2018.11.09 ·
16103 阅读 ·
7 点赞 ·
0 评论 ·
23 收藏

Spring Boot 通过@PropertySource或者@PropertySources实现设置多配置文件

Spring Boot 官网使用的是application.properties文件来实现文件的配置。但是实际情况下一个配置文件是不够用的,比如项目集成redis,mq,以及数据库比如mysql的时候,多个配置文件有利于开发及维护的管理。Spring Boot是通过@PropertySource或者@PropertySources来实现多配置文件的。首先看下@PropertySource源码:...
原创
发布博客 2018.11.07 ·
17494 阅读 ·
7 点赞 ·
0 评论 ·
23 收藏

Spring Boot 自定义Controller所在路径

Spring Boot 官方默认controller包需要和启动类同级,但正常开发这样做有些不规范,因此需要通过其他方式将Controller及启动类进行分离。解决办法是在启动类上添加@ComponentScan注解:@ComponentScan(basePackages = {"项目路径"})这里举例,假设这里项目路径如下:这里@ComponentScan可以加在启动类上:...
原创
发布博客 2018.11.07 ·
2999 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

js 绘制2D机柜(二)2D机柜的进阶绘制

上一篇写了基础的2D机柜绘制,今天这篇记录下机柜绘制的进阶篇。本篇主要是就数据封装及机柜界面的优化。首先是数据封装,正常来说数据的封装不会如上篇那么简单,这里加入更详细的数据用于展示信息,所需封装的数据如下: //configuration 机柜配置信息 //cabinet_id 机柜id //u_number ...
原创
发布博客 2018.11.02 ·
2562 阅读 ·
2 点赞 ·
2 评论 ·
9 收藏

Shiro学习笔记(一)ThreadContext源码解析

最近有空,看了下shiro源码,这里写下来用以加深记忆。本篇记录下ThreadContext类的源码解析。本篇用到的ThreadLocal及ThreadLocalMap的相关知识戳这里。首先看下ThreadContext类的说明:/** * A ThreadContext provides a means of binding and unbinding objects to th...
原创
发布博客 2018.10.25 ·
11758 阅读 ·
1 点赞 ·
5 评论 ·
23 收藏
加载更多