Java
LeetCode952三部曲之二:小幅度优化(137ms -> 122ms,超39% -> 超51%)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《LeetCode952三部曲》系列之二,在前文中,咱们详细分析了解题思路,然后按照思路写出了代码,在LeetCode提交成功,成绩如下图所示,137ms,超过39% 不得不说这个成绩很不理想,于是今天咱们来尝试进行优化,以减低时
STM32深入学习3:GPIO模块控制LED(寄存器版)
GPIO模块数据手册详解: GPIO:通用输入/输出 AFIO:备用输入/输出 GPIOx_CRL和GPIOx_CRH:配置寄存器 GPIOx_IDR和GPIOx_ODR:数据寄存器 GPIOx_BSRR:置位/复位寄存器 GPIOx_BRR:复位寄存器 GPIOx_LCKR:锁定寄存器,锁定GPIO的数值 GPIO模式: 1.输入浮动:完全由外部决定 2.输入上拉和输入下拉:存在上拉和下拉电阻
第十四章 集合类库(上)
14.1 集合的概述 14.1.1 集合的由来 当需要在Java程序中记录单个数据内容时,则声明一个变量。 当需要在Java程序中记录多个类型相同的数据内容时,声明一个一维数组。 当需要在Java程序中记录多个类型不同的数据内容时,则创建一个对象。 当需要在Java程序中记录多个类型相同的对象数据时,创建一个对象数组。 当需要在Java程序中记录多个类型不同的对象数据时,则准备一个集合。 14
springboot自动配置的原理和如何自定义starter
一、springboot自动配置的原理 使用springboot时的一大优点就是当需要引入一些第三方的框架时只需要引入一个对应的starter后springboot就会自动的完成配置,例如在springboot中使用mybatis只需要引入mybatis提供的starter. 那么这种便捷的配置方式是如何实现的呢,要了解其中的原理需要先从了解一个接口ImportSelector开始 1.1 Imp
第十五章 集合类库(下)
15.1 泛型机制 15.1.1 基本概念 通常情况下集合中可以存放不同类型的对象,是因为将所有对象都看做Object类型放入的,因此从集合中取出元素时也是Object类型,为了表达该元素真实的数据类型,则需要强制类型转换,而强制类型转换可能会引发类型转换异常。 为了避免上述错误的发生,从Java5开始增加泛型机制,也就是在集合名称的右侧使用<数据类型>的方式来明确要求该集合中可以存
二、Quartz原理及流程
参考 https://www.zhihu.com/question/41918492/answer/490367825 线程模型 Quartz 的线程模型如上图所示,其中 RegularSchedulerThread 为常规调度线程、MisfireSchedulerThread 为错失触发调度线程、JobThreadPool 为任务执行线程池。 常规调度线程轮询存储的所有 trigger,如
一、Quartz入门
参考: https://juejin.cn/post/7216679822097252411?searchId=20230726145213061AD6F989D36601FB8B https://www.jianshu.com/p/b94ebb8780fa Quartz 是什么? Quartz 是一款开源的任务调度框架,可以用于创建简单或复杂的任务调度,以执行数十、数百甚至上万个任务,这些
Dubbo(六)_时间轮算法
时间轮算法介绍 HashedWheelTimer 定时轮算法在 netty、dubbo 等框架中运用广泛。比如在 Dubbo 中为了增强系统的容错能力,会有相应的监听判断机制比如 RPC 调用超时机制,消费者判断请求是否超时,如果超时就将结果返回给应用层。 初期 Dubbo 实现时采取将所有返回的结果 DefaultFuture 都放在一个集合中,然后通过一个定时任务每隔一定时间间隔扫描所有 F
Redis—分布式锁
单实例的正确实现方式 获取锁的正确操作为: SET resource_name my_random_value NX PX 30000,它限定了只有当锁空闲且持有锁的时间为30000ms,并且锁资源对应的 value 为一个随机值。设置随机值是为了在释放锁时,确保当前线程能够释放该锁,避免出现操作超时的线程释放了其它线程的锁。 释放锁时查询对比 value 和具体删除锁操作必须是一个原子操作,可以
mybatis 动态sql
介绍 类似于与JSTL 基于OGNL表达式 if choose(when,otherwise) trim(where,set) foreach 一:if 在动态 SQL 中所做的最通用的事情是包含部分 where 字句的条件 用and or拼接test的条件 test表达式的坑 单个字符比较需要变成字符串,可以外面用单引号,
Linux的常用命令
Linux常用命令名称 作用和用法说明 ls 查看目录与文件 #显示当前目录下所有文件的详尽信息:ls-la mkdir 创建目录 #在当前目录下创建test目录:mkdirtest #在/opt/test目录下创建目录img,若无test目录,先创建test目录:mkdir-p/opt/test/img cat 查看文件内容 #查看desc.txt的内容:catdesc.txt more 分页查
final、finally、finalize的区别
在Java中,final、finally和finalize是三个不同的概念。 final是一个关键字,用于修饰类、方法和变量。当用final修饰一个类时,该类不能被继承;当用final修饰一个方法时,该方法不能被子类重写;当用final修饰一个变量时,该变量成为一个常量,其值不能被修改。 finally也是一个关键字,用于定义在try-catch语句中的一个代码块。无论是否发生异常,fin
Vue2.0 使用wangEditor(富文本编辑器)
1、安装 npm install wangeditor --save 2、页面中使用 2.1 定义容器 <div id="content"></div> 2.2 引用 wangeditor // 引入wangeditor import wangEditor from "wangeditor"; 2.3 创建实例,调用它的方法,使页面中呈现富文本编辑 在m
新建rocketmq环境-单机版
1.下载版本 2.解压 3.配置环境变量 4.nameserver服务的创建 修改runserver.sh中的运行内存配置: 启动命令: jps看到进城: 查看日志: 5.broker服务搭建 修改运行文件中的内存配置: 再修改
【面试题精讲】Java Stream排序的实现方式
首发博客地址 系列文章地址 如何使用Java Stream进行排序 在Java中,使用Stream进行排序可以通过sorted()方法来实现。sorted()方法用于对Stream中的元素进行排序操作。具体实现如下: 对基本类型元素的排序: 使用sorted()方法对Stream进行排序,默认是按照自然顺序进行排序。例如,对一个Stream<Integer>进行排序可以如下操
初三学生编写网页版 Windows 12
初三学生编写网页版 Windows 12 来源: OSCHINA 编辑: 局 2023-09-03 16:13:00 7 一名初三学生用前端开发三件套 —— HTML+CSS+JavaScript 实现了一个网页版的 Windows 12。 他表示在网上看到 Windows 12 概念版 (Powered by PowerPoint) 后深受启发,因此决定
10分钟从源码级别搞懂AQS(AbstractQueuedSynchronizer)
前言 上篇文章15000字、6个代码案例、5个原理图让你彻底搞懂Synchronized有说到synchronized由object monitor实现的 object monitor中由cxq栈和entry list来实现阻塞队列,wait set实现等待队列,从而实现synchronized的等待/通知模式 而JDK中的JUC并发包也通过类似的阻塞队列和等待队列实现等待/通知模式 这篇文章就
设计模式学习1 创建者模式
创建者模式 创建者模式的主要关注点是“怎样创建对象”,主要特点是“将对象的创建与使用分离” 这样可以降低系统的耦合度,使用者不关心对象的创建细节 创建者模式可以分为: 单例模式 工厂模式 抽象工程模式 原型模式 建造者模式 单例设计模型 涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建,这个类提供了访问其唯一对象的方式,可以直接访问,不需要实例化该类的对象 单例模式的结构
Jenkins部署与使用
CI/CD介绍 持续集成(Continuous Integration,CI)和持续发布(Continuous Delivery,CD,又称持续交付)是经常放在一起提及的两个概念,专有词组CI/CD Pipeline 用来描述他们同时存在的持续集成与发布自动化管线。 持续集成是一种编程实践,它让开发团队通过实现对代码一系列小的改动,高频率地提交到版本管理源。这种稳定一致并可以反复执行的流程,让开发
一键安装lnmp 环境
一键安装lnmp 环境 目录一键安装lnmp 环境操作步骤1.添加网站(虚拟主机)2.伪静态管理3.上传网站程序4.已存在虚拟主机添加ssl证书开启https5.列出网站(虚拟主机)6.删除网站(虚拟主机)7.默认网站(虚拟主机)8.防跨目录设置9.pathinfo设置10.数据库管理 yum.repos.d镜像 LNMP一键安装包 - CentOS/RadHat/Debian/Ubuntu下
理清楚 VO、DTO、POJO(实体类)
POJO(实体类) 操作数据库需要有一个数据模型,去接收数据、传输数据。因此,定义一种 POJO(实体类)与数据库表一一对应,如 users 表,字段有 username、password、age、id。所以,我们定义的 POJO 也要有 username、password、age、id。 POJO 就是 Java 普通类,数据库中的字段类型与实体类的属性类型基本上保持一致,不一样的类型也基本上可
jmeter完成文件上传接口
前提:测试项目中有一个上传本地文件(excel)测被测接口。 测试工具:jmeter 协议:http 测试项目如下图: 第一步:点击模板上传,选择本地excel文件 第二步:上传成功,系统识别excel内的信息,F12上传接口如下 第三步:点击 view source,获取关键信息,和请求头信息 第四步:jmeter添加HTTP请求,如下  
java实现批量文件编码转换
public final static String SLANT_LINE="/"; /** * @param sourcePath 源文件路径 * @param targetPath 目标文件路径 * @param sourceEncoding 源文件编码 * @param targetEncoding 目标文件编码 * @throws IOException */ public
PreparedStatement对象防止SQL注入
import utils.JdbcUtils;import javax.imageio.plugins.jpeg.JPEGImageReadParam;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;public class TestInsert { publi