
AQS源码详细解读
基础在讲解AQS之前,有几个额外的知识需要了解。知道了这些,才能明白AQS框架中很多代码的道理。CAS相关知识通过标识位进行线程挂起的并发编程范式MPSC队列的实现技巧欢迎加入技术交流群186233599讨论交流,也欢迎关注笔者公众号:风火说。<!--more-->CAS相关知识CAS相关知识具体不表,请百度...
2024-01-10
中了源码的毒,给你一副良药
近期阿宝哥在团队内搞了一个 如何读源码 的专题,主要目的是让团队的小伙伴们了解读源码的思路与技巧。在此期间,阿宝哥也写了 77.9K 的 Axios 项目有哪些值得借鉴的地方、从 12.9K 的前端开源项目我学到了啥 和 如何让你的 Express 飞起来 三篇源码解析的文章。其中前两篇在 掘金社区 获得不错的评价...
2024-01-10
源码阅读笔记
所有集合类,在 for 循环进行删除时,如果直接使用集合类的 remove 方法进行删除,都会快速失败,报 ConcurrentModificationException 的错误,所以在任意循环删除的场景下,都建议使用迭代器进行删除; 我们把数组转化成集合时,常使用 Arrays.asList(array),这个方法有两个坑,代码演示坑为: public void tes...
2024-01-10
没有爬过的壁纸网站越来越少了,找到一个不错的(附源码)
前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。本次目标爬取娟娟壁纸网的图片受难者地址http://www.jj20.com/ 环境Python3.6pycharm爬虫代码导入工具import requestsimport parsel请求头headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) App...
2024-01-10
WheelPicker自定义时间选择器控件
本文实例为大家分享了WheelPicker自定义时间选择器控件的具体代码,供大家参考,具体内容如下先上图:使用android自带的DatePicker控件虽然也能实现功能,但样式不能改变。想要实现一些 自定义的样式,就要用到WheelPicker了。要使用WheelPicker,需要先导入WheelPicker的引用:1. 在project的build.gradle添加如...
2024-01-10
vue print.js打印支持Echarts图表操作
网上找的print.js做了修改,支持Echarts图表这里记录一下,不知道是哪家的代码了,我看都一样这里是看到了两个源码https://github.com/xyl66/vuePlugs_printjs/blob/master/print.jshttps://github.com/denghao123/Print.js以下是我修改过的print.js// 打印类属性、方法定义/* eslint-disable */const Print = function (dom, options) { if (!(...
2024-01-10
Fabric.js 简单强大的 Canvas 图形编辑库
Fabric 是一个强大而简单的 JS Canvas 库,我们能通过使用它实现在 Canvas 上创建、填充图形、给图形填充渐变颜色。 组合图形(包括组合图形、图形文字、图片等)等一系列功能。简单来说我们可以通过使用 Fabric 从而以较为简单的方式实现较为复杂的 Canvas 功能。官网文档地址:http://fabricjs.com/docs/github...
2024-01-10
mysql5.7以上版本配置my.ini的详细步骤
Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini和my.ini文件以及服务无法启动的解决办法以及修改初始密码的方法。mysql官网下载地址以5.7.20版本为例首先安装包解压后,没有网上教程里面提到的data文件夹和my-default.ini,如下图所示配置环境变量请参照网上教程,这个一般没有问题,...
2024-01-10
mysql解压包的安装基础教程
由于换了新电脑,所以的环境都要到新电脑去配置。突然发现mysql的配置忘了,然后百度又重新来一遍。 特地写一篇文章记录一下,让自己长长记性。 1.安装包下载 2.配置my.ini文件 配置信息如下:[mysql]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]#设置3306端口port = 3306 # 设置mysql的...
2024-01-10
Centos7配置fastdfs和nginx分布式文件存储系统实现过程解析
1、安装libfastcommon-1.0.43,安装包可以在大佬的https://github.com/happyfish100/libfastcommon/releases下载[root@localhost Downloads]# tar -zxvf libfastcommon-1.0.43.tar.gz# 解压后进入目录进行编译并安装[root@localhost libfastcommon-1.0.43]#cd libfastcommon-1.0.43[root@localhost libfastc...
2024-01-10
云服务器宝塔面板的安装图文教程详解
目录0x01、安装宝塔面板0x02、开启服务器端口0x03、打开浏览器,登录到宝塔面板0x01、安装宝塔面板宝塔面板是一个非常简单易用的服务器运维面板,可视化面板,减弱了新手在应对命令式操作Linux服务器时的恐惧感。在安装该面板后,不需要再在服务器上用命令行手动安装、配置Nginx 服务器这些必须...
2024-01-10
详解php伪造Referer请求反盗链资源
有些产品为了防止自己的产品被盗链访问,会采用反盗链措施,如封闭型生态的音乐网站和视频网站,他们已经为了版权付费,自然不希望你免费使用他们的资源。但因为很多人专门研究盗链,因此我们也需要了解下盗链、反盗链和逃避反盗链的原理。盗链引用百度百科对盗链的定义:盗链是指服务...
2024-01-10
jquery模拟picker实现滑动选择效果
本文实例为大家分享了jquery模拟picker实现滑动选择效果的具体代码,供大家参考,具体内容如下代码:<!DOCTYPE html><html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <title></title> <style type=...
2024-01-10
Vue自定义多选组件使用详解
本文实例为大家分享了Vue自定义多选组件使用的具体代码,供大家参考,具体内容如下子组件(选项卡)checkBoxCard.vue<template> <div class="checkBoxCard"> <div :class="`box ${check && 'boxCheck'}`" @click="checked(), updateData()"> {{ name }} </div> </div></template><script>export default { name: "checkB...
2024-01-10
Struts2实现多文件上传功能
前台form 表单:设置method=post,enctype=multipart/form-data。struts2在原有的上传解析器继承上做了进一步封装,更进一步简化了文件上传。Action需要使用3个属性来封装该文件域的信息:(1)类型为File的*属性封装了该文件域对应的文件内容; (2)类型为String的***FileName属性封装了该文件域对应的文件的文件...
2024-01-10
详解Springboot配置文件的使用
如果使用IDEA创建Springboot项目,默认会在resource目录下创建application.properties文件,在springboot项目中,也可以使用yml类型的配置文件代替properties文件一、单个的获取配置文件中的内容在字段上使用@Value("${配置文件中的key}")的方式获取单个的内容1.在resource目录下创建application.yml文件,并添加一些配置,...
2024-01-10
Spring Boot 日志配置方法(超详细)
默认日志 Logback :默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了。从上图可以看到,日志输出内容元素具体如下:时间日期:精确到毫秒日志级别:ERROR, WARN, INFO, DEBUG or TRACE进程ID分隔符:― 标识实...
2024-01-10
集群环境中使用ehcache_动力节点Java学院整理
EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的 CacheProvider。 下图是 EhCache 在应用程序中的位置:EhCache 的主要特性有:1.快速;2.简单;3.多种缓存策略;4.缓存数据有两级:内存和磁盘,因此无需担心容量问题;5.缓存数据会在虚拟机重启的过程中写入磁...
2024-01-10
基于java编写局域网多人聊天室
由于需要制作网络计算机网络课程设计,并且不想搞网络布线或者局域网路由器配置等等这种完全搞不懂的东西,最后决定使用socket基于java编写一个局域网聊天室: 关于socket以及网络编程的相关知识详见我另一篇文章:Java基于socket编程 程序基于C/S结构,即客户端服务器模式。 服务器: 默认ip为本...
2024-01-10
Java_异常类(错误和异常,两者的区别介绍)
在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出)。Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性。Throwable 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类。①.Exception(异常)是应用程序中...
2024-01-10
java客户端登陆服务器用户名验证
本文实例为大家分享了java客户端登陆服务器用户名验证的具体实现代码,供大家参考,具体内容如下客户端通过键盘录入用户名,服务端对用户名进行验证。 如果用户名存在,服务端显示xxx已登录,客户端显示xxx,欢迎登陆。 如果用户名不存在,服务端显示xxx尝试登陆,客户端显示xxx,用户名不存...
2024-01-10
Java使用递归法解决汉诺塔问题的代码示例
汉诺(Hanoi)塔问题:古代有一个梵塔,塔内有三个座A、B、C,A座上有n个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个和尚想把这n个盘子从A座移到B座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求...
2024-01-10
从最基本的Java工程搭建SpringMVC+SpringDataJPA+Hibernate
本文会介绍从一个最基本的java工程,到Web工程,到集成Spring、SpringMVC、SpringDataJPA+Hibernate。 平时我们可能是通过一个模板搭建一个工程,或者是直接导入一个项目,而本文选择从最基本的java工程开始,目的是为了展示更多原理。 当然,我们还是从一个最基本的Maven工程开始,其实普通的...
2024-01-10
总结Java中线程的状态及多线程的实现方式
线程的状态线程状态图:说明:线程共包括以下5种状态。1. 新建状态(New) : 线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。2. 就绪状态(Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于...
2024-01-10
