- 博客(249)
- 资源 (6)
- 收藏
- 关注
原创 【声明】:主要更新站点——www.changxuan.top
由于最近CSDN的更改变动较大,特别是左侧自定义栏目模块的取消。然后决定在自己的站点(www.changxuan.top)更新文章。小伙伴们,欢迎互加友链啊!
2019-09-18 14:49:54 1827
原创 我的第一款(ban)产(cheng)品(pin)——铛铛打卡
最初想做铛铛打卡是因为,软件工程课程有个大作业要求几个人组一个小组!按照完整的软件开发流程来做一款软件,老师考虑到一部分同学的能力说可以不编码,只画图写文档也可以。但是这种可以展示的机会能错过吗?当然不能。所以我拉着我正在学JS的下铺,跟我组队,又捎带着一个打酱油求过的室友。 想了好久没有好的项目,正好手头有一个自己写的用来实验室同学打卡签到的web应用。因为没有前端写的很难看,不...
2018-07-17 22:42:10 781 2
原创 我是如何获取到全校同学的证件照?
近几日因为需要填表什么的,导致我需要频繁的登陆学校的学生管理系统。在浏览我的学籍信息的时候看到有个地方显示我们现在校园卡上的照片。(估计大多数人的校园卡都是不想让别人看到的… …) 然后我就在想,它是如何显示出来的?是不是简单的一个图片源文件的链接?右击图片,点击【图片另存为】,弹出了这样的一个提示框! 接着去查看图片的属性,看看它的的链接是哪个?...
2017-10-13 21:52:12 2278 1
原创 利用Python 提醒实验室同学值日(自动发送邮件)
前言: 在实验室里一直存在着一个问题,就是老是有人忘记提醒下一个人值日,然后值日就被迫中断了。毕竟良好的 卫生环境需要大家一起来维护的!没办法只能想出一些小对策了。 解决思路: 首先,我想使用python 写个脚本,原因是其拥有众多的库,操作方便。首先实现使用Python 登陆邮箱然后发送 邮件的功能。然后...
2017-07-25 10:22:33 2104
原创 聊一聊 JVM 的 GC
原文链接:https://www.changxuan.top/?p=1457引言JVM 中的 GC 在技术博客中应该算是个老生常谈的话题,网络上也存在着许多质量参差不齐的文章,可以看出来大都是“复制粘贴”的风格。在写这篇文章的时候,我问了问自己“现在我算不算是在制造数据垃圾?”。我为什么要写呢?其实写这篇博文的主要目的不是给别人看的,而是想要记录一下自己对于 JVM 中 GC 的理解与认识。我认为有一类文章存在的意义主要是用来记录的,记录自己对一个事物认识与思考的过程。如果你能够将对此事物的理.
2021-05-22 11:36:16 386 4
原创 Redis 的持久化
原文链接:https://www.changxuan.top/?p=1386Redis 是一个非关系型的内存数据库,使用内存存储数据是它能够进行快速存取数据的原因之一。在实际应用中,常有人提倡把 Redis 只作为一种能够提高用户体验的组件来使用, 也就是说即使 Redis 服务挂掉之后也要保证系统正常使用。不过,在很多系统中还是希望既能发挥 Redis 基于内存快速存取的特性,又希望机器断电或 Redis服务停止后数据不丢失。所以,才引出了 Redis 的持久化功能。在许多技术文章中,提到 R
2021-05-09 16:33:07 263
原创 我分析了《让子弹飞》的三十二万条弹幕 ... ...
前言为什么要分析《让子弹飞》的弹幕呢?先来看两组数据,在豆瓣电影中《让子弹飞》的评分为 8.9 分,132,0000+ 人评价,豆瓣电影 Top250 中排名 59 。在B站上,这部的电影评分为 9.9 分,6,0000+ 人评价,3900,0000+播放量。由于这部电影的某些桥段过于写实,所以弹幕区的内容总是紧跟实事,信息量十分大!还看到一些小伙伴”吵吵着”说自己的弹幕被”删“了。另外,我想看下到底有多弹幕没有被放到屏幕上呢?大家的弹幕又说了些什么呢?不过想要分析数据,总得先拿到数据吧!.
2021-05-08 20:03:02 1048
原创 剖析 CopyOnWriteArrayList
原文链接:https://www.changxuan.top/?p=1252CopyOnWriteArrayList 是 JUC 中唯一一个支持并发的 List。CopyOnWriteArrayList 的修改操作都是在底层的一个复制的数组上进行,即写时复制策略,从而实现了线程安全。其实原理和数据库的读写分离十分相似。基本构成底层使用数组 private transient volatile Object[] array; 来存储元素,使用 ReentrantLock 独占锁保证相关操作的安全
2021-02-01 16:20:07 289
原创 【Redis 分布式锁】(3)完善这把“锁”
https://www.changxuan.top/?p=1243在上一篇文章(好用一点的锁)的最后,我们又发现了目前的锁存在两个问题:由于不可控的异常状况,持有锁的线程不能显示的释放锁,导致锁一直处在被持有的状态。 目前锁不支持在某一段时间内只允许获取一次锁。我们首先来看第一个问题。为了避免出现这种“长生不老”的锁,我们肯定需要给它设置一个过期时间的。你可能会想到使用expire命令对锁设置过期时长,但是setnx和expire的两次执行需要是原子性的。为什么需要是原子性的?还是那...
2021-01-31 13:11:14 275
原创 【Redis 分布式锁】(2)好用一点的“锁”
https://www.changxuan.top/?p=1238在上一篇文章(一把简单的“锁”)中,我们发现了目前锁存在两个问题:某个线程所持有的锁可以被其它线程随意释放掉 目前锁还不支持可配置的阻塞/非阻塞锁注:当然不仅仅存在这两个问题首先,我们来看第一个问题。之所以存在这种问题,是因为在释放锁的时候只要知道这把锁的名称(key)就能释放成功了。就好比你进卧室后,在卧室门上加了一把“卧室锁”(key),然后有其他人想进的时候就说释放”卧室锁”,然后门就开了。所以,这把锁也太不安全了。想解
2021-01-31 13:08:42 265
原创 【Redis 分布式锁】(1)一把简单的“锁”
原文链接:https://www.changxuan.top/?p=1230前言在单体架构向分布式集群架构演进的过程中,项目中必不可少的一个功能组件就是分布式锁。在开发团队有技术积累的情况下,做为团队的一个“工具人”往往有限的时间都投入到了业(C)务(U)开(R)发(D)上,并不会去深究工具类中的分布式锁到底是如何实现的。大家只需要清楚如何使用某个同事写好的 Redis 工具类就可以了。所以,今天就带大家从零开始实现一个基于Redis的可以在项目中直接使用的分布式锁。首先,需要搞清楚一个问题,我
2021-01-31 13:06:37 293
原创 为什么 HashMap 的容量大小要设置为2的N次方?
前两天,我在一位同学提交中看到了下面这样的一行代码。Map<String,String>temp=newHashMap<>(6);我给他说,你这样实例化Map对象不好用,他不服气。我说小朋友:如果想指定HashMap对象的容量得用2的N次方 。假如不是2的N次方那么在第一次put元素的时候也会自动把容量设置为比传入参数大的最小的2的N次方,并不是你指定的这个值。他说你这也没用。我说,我这个有用,这样才能充分利用分配的内存空间,减少哈希碰撞次数。他非和我...
2020-12-20 20:33:53 811 1
原创 解决 Nginx 部署,无法访问 Swagger 文档的问题
原文链接: https://www.changxuan.top/?p=1161起因昨天的时候,同事遇到了一个问题需要访问一个 nginx 部署的项目的 swagger 文档,但是在路由转发规则那里加上了 swagger-ui.html 之后仍不能访问。平时我们在内网开发,可以直接访问 后端项目ip:port/swagger-ui.html 就可以了。但是目前只有 nginx 所在服务器外网可以访问,所以外面的人想看接口文档只能通过 nginx 转发请求。解决办法nginx 的其它配置不需要改
2020-10-31 17:17:36 2433 1
原创 Java Stream的简单示例
原文链接:https://www.changxuan.top/?p=1130前言自从 Java 8 开始提供了一个Stream 接口。因为是个新东西大多数同学可能都有些抵触心理,往往在代码中并不会用到它。这样就会导致有些地方的代码本该更加简洁,而实际情况确实写的十分臃肿。虽然我很赞成“写大家看得懂的代码。”这句话,但是又特别喜欢 stream 这种方式。大家在项目中多多使用自然也就会十分熟练了。示例前置代码classStudent{privateStringnam...
2020-10-17 17:08:15 273
原创 Redis中的字典
原文链接:https://www.changxuan.top/?p=1122简介字典是一种在 Redis 中高频使用的用于保存键值对的抽象数据结构,在 Java 中常用的有 HasmMap 等。由于字典中键的唯一性,所以在 Redis 中得到了广泛的应用。实现Redis 中的字典是基于哈希表 (dictht, dict hash table)实现的,哈希表中的每个节点保存一个键值对。哈希表的结构体定义如下:typedefstructdictht{//哈希表数组d...
2020-10-15 00:00:09 1021
原创 Redis 中的链表结构
原文链接:https://www.changxuan.top/?p=1117链表,作为数据结构中的常客想必大家已经十分熟悉,在 Java 中也有许多类型的内置链表。Redis 使用C语言实现了自己的链表结构。介绍首先,在 Redis 中的链表与我们平常做算法题时用到的简单链表不太相同。具体来说,就是 Redis 的链表由两部分组成,一个是链表节点结构体,一个是链表结构体。而链表节点结构体是双指针的,这样构成的链表则是一个双端链表。链表节点结构体的定义如下:typedef struct li
2020-10-12 22:08:42 276
原创 「Redis」字符串详解
原文链接:https://www.changxuan.top/?p=1109简介Redis 中自定义的字符串结构。字符串是 Redis 中最常用的一种数据类型,在 Redis 中专门封装了一个字符串结构体——简单动态字符串(Simple Dynamic String, SDS)。其结构体如下:struct sdshdr { // 记录 buf 数组中已使用字节的数量既 SDS 中所
2020-10-11 22:53:22 277
原创 Spring Boot 集成 AmazonS3 存储服务教程
原文链接:https://www.changxuan.top/?p=963环境准备Java环境:JDK6以上版本SpringBoot 2.2.5存储服务的 accessKey、secreKey 以及 地址:端口使用1. 引入依赖在 pom.xml 文件中添加下列依赖:<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk</artif
2020-08-11 11:40:31 8282 10
原创 谷歌广告联盟电汇收款指南
原文链接:谷歌广告联盟电汇收款指南自从在网站上投放了谷歌广告联盟的广告至今已经一年半了,前两天才凑够了100$ 的提现门槛。下年的服务器费用域名费用总算是有了着落~~~之前搜过一些提现教程,好像推荐西联的比较多,但最近发现通过电汇方式似乎更加方便。首先,你要拥有一张招商银行的借记卡。如下图:招商银行借记卡然后打开 Google AdSense 后台,添加付款方式:付款信息如果是招商银行,参照上图进行填写并保存即可。(更换名称与卡号即可,名称大写,姓在前,名在后)我上
2020-08-03 17:14:54 1630
原创 如何在微信读书上阅读极客时间专栏?
原文链接:如何在微信读书上阅读极客时间专栏?最近买了许多极客时间的专栏,但是不想用极客的软件阅读。于是我开始踏上了在其它应用上看极客专栏的漫(zi)漫(zuo)探(zi)索(shou)之路。根据我的个人情况,首先整理出来了以下需求。我的需求支持多设备之间图书同步 (⭐⭐⭐⭐⭐) 多设备支持优先级 PC(web or software) > ipad > mobile phone支持做笔记、标注,笔记最好可多设备之间同步 (⭐⭐⭐⭐) 记录阅读时长 (⭐⭐⭐) 支持用户上传
2020-08-03 17:09:04 1127
原创 工作一年
原文链接:https://www.changxuan.top/?p=836从去年三月四号到现在已经一年零一月有余了,古人尚有“吾日三省吾身”,趁假期有时间也应该回顾与总结一下我工作后的第一年。这一年里参与了 A 项目、B 项目从设计到研发交付的整个流程,临时支持了 C 项目组一周的后端开发,之后就被调入 D 项目组做后端开发。其实在 D 项目中,由于项目业务逻辑过于复杂最初只是在熟悉...
2020-04-06 19:08:09 386 2
原创 Spring Boot 如何同时支持 http 与 https 访问?
原文链接:Spring Boot 如何同时支持 http 与 https 访问?大多数项目要么要求 https 协议来访问要么直接用 http 协议,但有些项目就是这么奇怪要求同时支持两种协议。此示例中使用Spring Boot 内置的 tomcat 服务器,我拿到的 SSL 证书是 crt 类型的。所有首先需要将证书转成 jks 类型的。crt 转 jks # 转p12...
2020-03-01 16:34:49 435
原创 Spring Boot2.x 动态数据源配置
原文链接: Spring Boot2.x 动态数据源配置基于 Spring Boot 2.x、Spring Data JPA、druid、mysql 的动态数据源配置Demo,适合用于数据库的读写分离等应用场景。通过在Service层方法上添加自定义注解实现读写不同的数据库。 配置文件已配置好druid监控相关属性,监控页面链接:ip:8080/druid。账号:admin,密码:1...
2020-03-01 12:32:37 1541
原创 HTTPS配置指北
原文链接:https://www.changxuan.top/?p=672下载 SSL 证书如果是在各大云厂商注册的域名,一般都可以申请为期一年免费的SSL证书。当然也有其它的一些平台会提供免费证书。配置 Nginx先讲一下我服务器的情况。由于在服务器上运行了 Python、PHP 和 Java 三种语言编写的多个网站,为了能够都使用 80 端口访问,所以我用 Ngin...
2020-01-16 09:55:12 1906
原创 【爬虫】获取新郑机场出租车实时数据
原文链接:http://www.changxuan.top/?p=463八月十五的晚上,参加大学生数学建模比赛的苏琪同学来找我要机场出租车的数据!Excuse me,我们不生产数据、只做数据的搬运工 。随后我在各大平台上都没找到合适的数据集,找到一些之前其他比赛的数据集,但是针对特定机场的出租车数据除了“飞常准”上有一份浦东机场的就没找到别的!想想也是,谁没事统计这个东西!不过知乎上的大神就...
2019-09-18 10:55:40 9501 9
原创 Wordpress 频繁导致 Mysql 挂掉解决办法
最近两周在我使用访问Wordpress搭建的博客之后,经常出现服务器错误!你没访问量挂掉没问题啊!但是我的另一个网站访问量还可以啊~~~起因访问个人Wordpress博客或者在博客后台进行数据写操作导致服务器Mysql挂掉错误提示can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock...
2019-04-17 20:48:45 2926
原创 Git 笔记-1
【原文链接】http://www.changxuan.top/2019/03/07/git-笔记-1/很遗憾作为一个 coder 一直没有拿出来时间学习 git,上大一的时候每次的课程设计命名都是“xxxx1”、“xxxx2”、“xxxx最新版”、“xxxxNew”、“xxxx最最新”等一类的名字。有时候交代码的时候还分不清到底哪个是最新的。在此强烈推荐各大高校开设 Git 的选修课...
2019-03-13 12:56:58 240
原创 WordPress升级后,新版编辑器不能使用解决办法
【原文链接】http://www.changxuan.top/2019/02/24/wordpress升级后,新版编辑器不能使用解决办法/昨天写完博文点击保存草稿,一直提示 “更新失败”。在网上查找资料,大多数的建议都是使用经典编辑器的插件。令人奇怪的是网上的大多数人都认为经典编辑器比新版的编辑器好用,对此我十分不解。虽然在刚使用的时候我有点排斥,毕竟原来使得挺顺手的东西突然换成了不...
2019-03-13 12:53:56 3590
原创 如何使用 Python 爬虫爬取牛客网 Java 题库?
【原文链接】http://www.changxuan.top/2019/02/23/如何使用-python-爬虫爬取牛客网-java-题库?/由于“打怪”失败,最近一直在牛客网上刷题复习备战春招。其中有个 Java专题复习题库,我刷着刷着就想把它爬下来!那么就开始吧。页面是这个样子的,列表页详情页分析网页链接,发现没有加密,例如第一题的详情页为:https://ww...
2019-03-13 12:51:14 3486 3
原创 LeetCode 的 Runtime 指标是否可信?
【原文链接】http://www.changxuan.top/2019/02/13/leetcode-的-runtime-指标是否可信?/今天做完 &nbsp;Roman to Integer 这道题后感觉运行时间稍长就开始了优化代码。然后就发现越优化越不科学!拿来中文版的 leetCode 网站来运行发现更加神奇。题目详情Roman numerals are represen...
2019-03-13 12:47:15 521
原创 滴滴服务端开发工程师(实习)面经
http://www.changxuan.top/2019/01/31/滴滴服务端开发工程师(实习)面经/自我介绍自我介绍,然后讲自己的一个作品。讲解一下作品中使用了哪些技术,有哪些模块和功能。(结构、数据库表、如何实现、网络延迟对功能的影响)注:这一部分用时较长了解熟悉哪些语言?(php、Java)php :“array_merge ”和 “+”的区别 ?(没用到...
2019-03-13 12:43:54 694
转载 新版 CSDN-markdown 编辑器功能介绍
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2019-03-13 12:40:06 248
原创 2. Java 内存区域与内存溢出异常
概述Java 对于 C 和 C++ 来说存在一个很好的特性就是在虚拟机的自动内存管理机制的帮助下,不需要为每一个 new 操作去写配对的 delete/free 代码,而且**不容易** 出现内存泄漏和内存溢出问题。注意这里说的是不容易,所以还是有可能会出现的。那么当出现的时候就需要你能够排查和解决掉错误。运行时数据区域Java 虚拟机在执行程序的过程中会把所管理的内存划分为...
2019-01-25 13:02:44 229
原创 1.走进Java
很久之前就打算看这本书,但是由于种种原因就没看成。希望可以坚持下来,将自己的读书总结及心得记录下来。JDK 与 JRE 的关系首先应该明白,JDK(Java Development Kit)包括 Java 程序设计语言、Java虚拟机、Java API 类库三部分,JDK 是用于支持 Java 程序开发的最小环境。而JRE(Java Runtime Environment)包括...
2019-01-25 12:58:11 281
原创 【OpenCv-Python】十一、Geometric Transformations of Images 图像的几何变换
原文链接:Geometric Transformations of Images图像的几何变换目标在本教程中,你将学习几种简单变换。如:移动、旋转、仿射变换。 你将学习这些函数:cv2.getPerspectiveTransform等。变换openCv 提供了两种变换函数,cv2.warpAffine 和 cv2.warpPerspective。通过这两个函数,你可以实现所有的图...
2019-01-19 15:05:44 536
原创 Numpy 创建数组的几种方式
array 函数arr = np.array( [1,2,3,4], float)方法用途tolist将Numpy 数组转换成 Python 列表的函数copy复制 Numpy 数组元素的函数ones,zeros创建用 0 或者 1填充的数组的函数zeros_like,ones_like该函数用来创建与作为参数的列表形状相同的二维数组fill...
2019-01-01 14:48:39 1335
原创 Container With Most Water
Given n non-negative integers a1, a2, …, an , where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two l...
2018-12-28 21:50:24 465
原创 Palindrome Number
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.Example 1:Input: 121Output: trueExample 2:Input: -121Output: falseExplanat...
2018-12-27 21:59:06 436
原创 最好的创意永远在孩子那里
在成长的道路上,我们在不断获得但同时也丢掉了最珍贵的东西。生活给予我们压力,想要磨平我们的斗志,想要让我们屈服,大多数人选择了妥协也有少部分人抗争者或胜利或惨败。这或许就是现实吧!时代催着人向前大跑,有人在歇一歇的时候猛然发现已赶不上时代的列车。或许有点扯远了,但是在长大的同时随之而来的各种压力,让我们褪去了童真和无边际的想象力。空闲之余,我想起十多年前我在小学三年级时写过的想象作文和老师在课...
2018-12-27 12:05:45 484
原创 Reverse Integer
Given a 32-bit signed integer, reverse digits of an integer.Example 1:Input: 123Output: 321Example 2:Input: -123Output: -321Example 3:Input: 120Output: 21Note:Assume we are dealing wi...
2018-12-26 21:34:09 250
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人