- 博客(30)
- 资源 (7)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 一次代码优化的经历:设计模式的使用
背景:最近参与的一项版本线的开发工作时,需要大幅度修改原先系统的老代码(也就是俗称的屎山),在分析需求的过程中,发现原先的代码存在许多的不合理之处,这些需求是跟批量支付打款业务相关的,因为有许多不同的第三方支付通道的接入,因此在原先的代码中针对每一个通道都写了一套异步执行的代码,而这些代码全部存在与系统A中,而这次新的需求中,要求我们可以在系统A中增加一种托管模式,如果用户开通了托管模式,则将支付...
2019-10-23 09:38:48
830
原创 源码分析: Java中锁的种类与特性详解
本文系统地介绍了Java中锁的种类及其特性,涵盖了乐观锁和悲观锁、自旋锁和自适应自旋锁、无锁、偏向锁、轻量级锁、重量级锁、公平锁和非公平锁、可重入锁和不可重入锁、共享锁和独占锁等内容。文章通过对各种锁的定义、实现原理以及源码分析,深入剖析了每种锁的适用场景和使用方法。同时,还探讨了Java对象头的结构以及锁的状态转换过程。通过本文的阐述,读者可以全面了解Java中锁的机制,从而更好地应用于实际的多线程编程中。
2024-03-31 16:42:55
703
原创 源码分析:深入探索Java内存访问重排序
重排序是指在计算机程序执行过程中,由于编译器、处理器或者运行时系统的优化,指令的执行顺序与代码编写顺序不一致的现象。为了保证程序的正确性和可靠性,Java提供了Java内存模型(Java Memory Model,JMM)以及相关机制来控制重排序
2024-03-31 16:40:45
543
原创 源码分析:AQS 源码解析与实践指南
AQS(AbstractQueuedSynchronizer)是Java中用于构建同步器的抽象基类。它提供了一种实现同步器的框架,使得开发者可以基于它构建各种类型的同步器,比如锁、信号量、倒计数器等。AQS主要通过一个FIFO(先进先出)的等待队列来管理线程的排队和等待,以实现对共享资源的控制和同步。AQS(AbstractQueuedSynchronizer)是Java中用于构建同步器的抽象基类。它提供了一种实现同步器的框架,使得开发者可以基于它构建各种类型的同步器,比如锁、信号量、倒计数器等。
2024-03-26 10:08:55
1101
原创 源码分析:深入分析 Java ThreadPoolExecutor:原理与源码解析
总的来说,ThreadPoolExecutor 是一个功能强大、灵活可配置的线程池实现,被广泛应用于 Java 并发编程中,用于管理线程的生命周期、调度任务的执行、优化系统的性能和资源利用率欢迎关注我的公众号“毕知必会”,原创技术文章第一时间推送。
2024-03-26 10:05:43
848
原创 源码分析:探索 Java ForkJoinPool:并发任务处理的原理与实践解析
ForkJoinPool通过内部维护WorkQueue数组的方式,将ForkJoinTask任务分配到指定的工作队列中执行,通过将鸡蛋分散在多个篮子这种分治思想提升线程的工作效率,并且针对线程执行过程中出现的空闲情况,设计出了工作窃取的算法,促使工作线程尽可能的饱和执行,在线程安全方面,通过Unsafe的CAS操作配合原子类,保证了多线程场景下的竞争安全问题。
2024-03-20 16:19:57
858
原创 志愿者管理系统
对于志愿者来说,通过志愿者服务平台,志愿者可以根据自身实际情况选择自己可以服务的时间,减少对无法服务的志愿者不必要的打扰。服务层提供具体业务功能的实现,比如学院管理,查询学院信息进行分页处理时,可能要先查询总数,然后按照总数和每页数量进行分页查询所需的数据,在服务层会对控制层的请求和操作数据库的多次动作进行包装,例如查询出某条数据,但该数据中信息需要进行编码-显示名称的转化时(如数据库存储的性别数据是0和1,页面上显示需要展示成男和女),命名方式也是按照业务划分的,服务层部分代码如下所示。
2023-04-09 13:20:07
1098
1
原创 毕业设计:基于SSM框架的学生实习管理系统
高校实习管理系统主要解决各大高校学生暑假实习/寒假实习等过程管理难的问题,提升学校、老师和学生、企业之间的联系,避免学生因实习任务而感到为难,解决学校和老师无法实时感知到学生的实习情况,无法了解到学生的实习过程,无法对实习结果进行评分等问题,提升企业和学校的沟通,及时发现学生存在的问题,优化实习安排,更好的帮助学生尽快的融入社会。 高校实习管理系统的主要需求是提供给学生以及老师管理学生实习过程的系统,方便师生管理自己的实习计划,目前系统分为 教师、企业以及学生三种角色,以及固定的管理员角色。 其中
2022-07-16 21:57:41
9076
11
原创 毕业设计:基于spring的新生报道可视化分析系统
新生报到数据一直是困扰着各大高校的管理性问题,人数多、工作量大,这无疑是一个挑战,也因此加快了高校的信息化建设步伐。随着互联网的普及与发展,日常生活中人们接触到的数据正以惊人的速度增长。数据已经成为人们生活中必不可少的事务,随着学校数量和规模的不断扩大,各高校招生人数不断增加,有关学生报到的各种信息也极剧增加。为了更加清晰有效地传达与沟通学生的数据信息,借助于可视化的图形手段。将新生的信息汇总分析,用图像呈现出来。将固有的数据进行可视化分析,来构建独有的数据呈现。面对庞大的数据信息量,就需要设计一个新
2022-07-10 23:22:40
3101
4
原创 机器学习和数据分析在实体识别方面的简单应用
前言:本文介绍的是采用机器学习的方法简单的完成实体识别的过程,具体的操作就是利用机器学习的分类算法对实体进行不同层次的分类,通过多次分类操作,分析出给定的文件中的实体信息。操作比较基础,并且利用可视化的方式展示出来。需求说明:采集京东商城的手机、平板电脑、电脑的详细信息,通过对详细信息的分析,训练出性能最优的实体识别分类算法模型,通过不同维度的分析,第一层分析实体的品牌,第二层分析实体的分类,第三层分析实体的具体型号,通过这种简单的方式,大致区分出最终的实体信息,这是一个简单的折中办法,对于刚接触或
2020-09-22 21:29:48
440
原创 一文带你熟悉JAVA IO这个看似很神秘的菇凉
Java IO 是一个庞大的知识体系,很多人学着学着就会学懵了,包括我在内也是如此,所以本文将会从 Java 的 BIO 开始,一步一步深入学习,引出 JDK1.4 之后出现的 NIO 技术,对比 NIO 与 BIO 的区别,然后对 NIO 中重要的三个组成部分进行讲解(缓冲区、通道、选择器),最后实现一个简易的客户端与服务器通信功能。传统的 BIOJava IO流是一个庞大的生态环境,其内部提供了很多不同的输入流和输出流,细分下去还有字节流和字符流,甚至还有缓冲流提高 IO 性能,转换流.
2020-09-22 09:32:54
328
原创 基于flask框架的新冠肺炎疫情数据可视化分析
前言:本文讲述的是基于flask框架的新冠肺炎疫情数据可视化分析,主要的功能是采集肺炎疫情数据,进行多维度的统计和预测分析,呈现出直观的疫情走势。最终呈现的效果如下图所示本文首发于https://www.bizhibihui.com/...
2020-09-21 22:30:59
1979
8
原创 基于SSM框架以及shiro的医院预约挂号管理系统
前言:本文介绍的是一个基于SSM框架的医院预约挂号管理系统,是一个毕业设计成品,该系统主要采用JAVA语言编写,主要应用到了SpringBoot框架,Mybatis框架、mysql数据库以及redis等常见的JAVA编程必备知识,内容涵盖丰富的前后端知识,也适合新手学习。需求:基于SSM框架的医院预约挂号系统该系统主要为需要就诊的患者提供了网上预约服务,让患者无需赶到医院排队预约,节省患者就诊时间,提高效率。该系统分患者、医生、管理员三个角色。具体功能模块如下:(1)患者模块:1.注
2020-09-21 09:21:11
1926
7
原创 基于SSM的高校学生实习管理系统
前言:本文描述了基于SSM的高校学生实习管理系统的实战项目,分析了该项目的功能需求以及最终呈现的效果基于SSM的高校学生实习管理系统应完成如下功能:1. 用户角色划分本系统主要用户有四类:实习企业、高校教师(实习管理人员)、实习学生、系统管理员。2.功能划分实习管理系统分为:实习岗位信息管理、实习计划管理、实习过程管理、实习评分和统计管理、系统管理等。2.功能描述(1) 实习岗位信息管理:实习企业可根据自身需要或高校实习安排,对实习岗位信息(包括但不限于岗位要求、岗位描述、待遇等
2020-09-20 23:03:35
5524
8
原创 毕业设计:基于SSM框架的新生报到数据可视化系统
前言:本文介绍的是一个基于SSM框架的新生报到数据可视化系统,是一个毕业设计成品,该系统主要采用JAVA语言编写,主要应用到了SpringBoot框架,Mybatis框架、mysql数据库以及redis等常见的JAVA编程必备知识,内容涵盖丰富的前后端知识,也适合新手学习。需求:1.本课题的目的及意义新生报到数据一直是困扰着各大高校的管理性问题,人数多、工作量大,这无疑是一个挑战,也因此加快了高校的信息化建设步伐。随着互联网的普及与发展,日常生活中人们接触到的数据正以惊人的速度增长。数据已经成为
2020-09-15 22:32:04
10207
16
原创 利用Python编写一个行业专用的小计算器
前言:本文讲述的是如何利用python编程制作一个适用于指定行业的计算器,方便计算结果,涵盖的知识点由Python编写GUI界面程序,利用爬虫采集实时的汇率数据,将Python文件打包成可以单独运行的exe文件。首先,分析我们的需求,编写一个适用于指定行业的计算器,这里我们用到的计算公式很简单,就是淘宝提供的金石定价公式,如下图所示淘宝定价计算器这里可以看到这个计算公式还是蛮简单的,对于Python来说也就是一行代码的事,那么我们就开始着手写代码,首先搭建我们的页面布局,这里我们采用的.
2020-09-10 16:57:06
1653
2
原创 爬虫:python采集豆瓣影评信息并进行数据分析
前言:最近比较有时间,替一个同学完成了一个简单的爬虫和数据分析任务,具体的要求是爬取复仇者联盟4 的豆瓣影评信息并进行简单的数据分析,这里的数据分析指的是提取关键词并进行词云分析以及按照时间进行热度分析,分析比较简单,后续可以继续完善。首先,献上数据采集和分析的结果。短评数据按照该同学的要求,只采集了1000条数据,有需要更多数据的同学可自行修改采集的限制即可下面,我们就来详细描述下如何完成数据采集和数据分析的工作的首先,爬虫的第一步,分析页面元素,打开网页,按下F12,查看数据请求
2020-07-05 21:19:38
2658
5
原创 Python爬取前程无忧十万条招聘数据
前言:本文是介绍利用代理IP池以及多线程完成前程无忧网站的是十万条招聘信息的采集工作,已适当控制采集频率,采集数据仅为了学习使用,采集十万条招聘信息大概需要十个小时。起因是在知乎上看到另一个程序猿写的前程无忧的爬虫代码,对于他的一些反反爬虫处理措施抱有一丝怀疑态度,于是在他的代码的基础上进行改造,优化了线程的分配以及页面访问的频率,并加入了代理IP池的处理,优化了爬虫效率。原始代码文章链接:https://zhuanlan.zhihu.com/p/146425439首先,奉上本文依赖的基础的爬虫
2020-06-23 18:16:18
2230
2
原创 爬虫:利用selenium采集某某环境网站的空气质量数据
前言:在上一篇文章中,我们介绍了在PM2.5.in这个网站采集空气质量的数据,本篇文章是对其产生的一些问题的另一种解决方案,提供更加权威的数据采集。技术框架:selenium、json、etree这里的selenium是一种自动化测试的工具,它可以帮助我们模拟浏览器打开网页并获取网页数据,本文之所以选择这种方式进行,是因为以requests方式直接请求无法获取到正确的数据,这个网页的数据是动态加载,需要用户执行点击操作才会被请求我们还是按照常规套路来分析下这个网站,打开F12,看下这个网站.
2020-06-19 10:59:09
618
3
原创 利用爬虫技术采集国外肺炎疫情数据
前言:随着国内肺炎疫情的逐渐好转,国外的疫情却越来越严重,其中原因,相必大家都心领神会,想到这里,我打算采用自身所学的技术采集下最新的国外数据,掌握最新的动态,希望能有一天也能看到不再增长的疫情传播。前期准备:作为爬虫,我们首先就要选择一个合适的目标网站,这里我们选择的是丁香园的数据,如下图所示找到目标网站后,我们需要对网站提供的数据来源进行分析,找到其真实的数据请求,我们打开浏览器的F12,看下network里的请求,从上到下依次分析,当我们宣召到如下图所示的请求中,可以发现他的响应中似乎包.
2020-06-04 15:17:51
808
原创 windows下使用虚拟机安装linux操作系统
前言:虚拟机是开发者的好帮手,它可以帮助我们在同一台电脑上创建不同的环境,这样你就可以在不影响原有的环境下,使用另外一套新的环境去完成你的开发工作。相信不少在windows下开发的同学对此深有体会,本文就将以最简洁的语言介绍如何在windows下使用虚拟机安装linux操作系统。首先,你得在你的电脑上安装一个合适的虚拟机软件例如VMware,你可以在很多地方下载到它,例如下载完成后,你可以像安装一般的软件一样任意安装此软件,安装完成后,打开它,会发现如下图所示的界面当然,我...
2020-06-04 14:28:55
605
原创 手把手教你利用Docker+jenkins部署你的网站
更新服务器的安装源为阿里的源,参考链接:https://blog.csdn.net/js_xh/article/details/79166655 安装docker;1 更新资源sudo apt-get update1.1 安装的时候无法安装,执行删除锁sudo rm /var/lib/dpkg/lock2 安装Dockersudo apt-get install docker3 安装docker.io。sudo apt-get install docker.io4 安装d
2020-06-03 16:33:13
240
原创 无编程爬虫就是这么简单
文章背景:最近在研究爬虫技术的时候,接触到一些运营人员,发现他们的需求有的其实很简单,不一定非要用Python来编写定制化爬虫代码即可实现,下面我就介绍一种很容易上手的办法爬取一些业务场景不是很复杂的数据。爬取原理:利用谷歌内核的浏览器插件Webscraper定制化爬取规则,让浏览器自动执行爬取操作,下面让我们以时光电影热度为例从零开始教你使用该插件爬取你想要的数据。工作准备:首先,你需要...
2019-12-18 23:25:38
278
原创 ThreadLocal的使用笔记
背景:在项目中有一个关于异步批量支付的功能,这个功能需要在前台立即返回信息,并且可以批量处理多笔数据,在实现这个业务需求时,我首先是根据支付通道的类型,判断调用不同的异步支付方法,开启新的线程调用相应的支付方法,在这个具体的支付方法中,按照支付的批次查询出需要进行操作的数据,对于这些数据,通过for循环调用对应的第三方支付的帮助客户端,就是在这个地方调用时需要做到同步操作,需要实时返回数据,去更新...
2019-10-23 14:21:51
139
原创 Centos7下安装并启动docker
切换root用户并查看系统版本信息切换root用户更新yum更新yum执行安装命令:yum install docker安装docker查看docker版本:docker version查看docker版本启动docker:service docker start启动docker并查看版本查看当前正在运行的容...
2019-10-23 14:21:01
344
原创 Docker学习(四)-其他知识
上篇文章中我简单介绍了如何使用Docker三剑客的知识,这篇文章我将简单介绍下Docker涉及的一些其他知识,包括Docker的安全性机制、Docker的底层原理实现等。首先,简单介绍下Docker的安全机制:Docker的安全机制包含以下内容:Docker 容器和 LXC 容器很相似,所提供的安全特性也差不多。当用 docker run 启动一个容器时,在后台 Docker 为容器创...
2019-10-23 14:19:57
165
原创 Docker学习(三)-Docker相关工具
上一篇文章中我简单介绍了下如何安装并使用Docker,但是在实际的应用中,只是使用这些指令不足以应对更加复杂的场景,于是我们需要了解下Docker三剑客-三样非常好用的Docker工具。Docker三剑客:Docker Compose、Docker Machine、Docker SwarmDocker Compose:它允许用户通过一个单独的 docker-compose.yml 模板文件...
2019-10-23 14:19:17
158
原创 Docker学习(二)-Docker安装和使用
上一篇文章我讲述了Docker的一些基本概念,包括Docker的三大核心知识、Docker和传统虚拟技术的区别等。这一篇我将介绍下Docker的安装和使用方式首先是如何安装Docker,下面我将介绍在两种Linux内核操作系统下安装Docker其一是Ubuntu/Debian 安装 Docker CE:$ sudo apt-get update$ sudo apt-get in...
2019-10-23 14:18:28
106
原创 Docker学习(一)-基本概念
先行奉上我自己学习Docker的思维导图Docker学习思维导图思维导图百度云地址:提取码为d5jh,有需要的可以自取下面我将按照思维导图的一步步展开Docker的相关知识;首先,我们需要知道Docker是什么?Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Un...
2019-10-23 11:57:06
376
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人