java
文章平均质量分 67
heromps
这个作者很懒,什么都没留下…
展开
-
高效生成短链接:利用 MurmurHash 和 Base62 编码的实践指南
MurmurHash是一种非加密的高效哈希函数,由 Austin Appleby 开发。它主要用于哈希表和数据分布等场景。Base62编码是一种将数据压缩成更短字符串的编码方式,它使用 62 个字符:0-9、A-Z 和 a-z。Base62 编码广泛用于生成简短、可读性强的标识符。通过结合使用MurmurHash和Base62编码,我们可以高效生成短链接,解决长 URL 带来的不便。这种方法不仅适用于 URL 缩短,还可以广泛应用于生成唯一标识符和缓存键等场景。原创 2024-08-26 10:57:50 · 867 阅读 · 0 评论 -
巧用延迟队列:高效解决电商订单超时难题
订单超时处理在电商平台中至关重要,而延迟队列为我们提供了一种高效、简洁的解决方案。通过使用延迟队列,我们可以有效降低系统复杂性,提升处理性能,并更好地满足用户体验。延迟队列的应用不仅限于订单超时处理,它还可以被广泛应用于需要定时执行任务的各种场景。希望本文能帮助你更好地理解和应用延迟队列,从而提升系统的稳定性和性能。原创 2024-08-25 10:50:15 · 438 阅读 · 0 评论 -
Sentinel 实战:解锁高效流控的终极指南
除了通过注解实现流控,还可以通过编程方式来配置流控规则,这在需要动态调整流控策略时非常有用。// 设置 QPS 阈值为 5 FlowRuleManager . loadRules(Collections . singletonList(rule));} }// 设置 QPS 阈值为 5 FlowRuleManager . loadRules(Collections . singletonList(rule));} }原创 2024-08-23 21:23:42 · 838 阅读 · 0 评论 -
CollUtil 的用法和详解
CollUtilCollUtil提供了一系列便捷的方法来操作集合对象,这些方法简化了集合的创建、检查和操作,减少了代码冗余。在日常开发中,合理地使用这些工具方法,可以大大提高代码的简洁性和可读性。如果你还没有使用过 Hutool 工具库,不妨尝试一下,相信它会让你的开发过程更加高效。希望通过这篇博客,你能更好地理解CollUtil的用法,并在项目中灵活应用这些方法!原创 2024-08-23 14:34:27 · 513 阅读 · 0 评论 -
B 树与 B+ 树:深入解析及应用场景
B 树和 B+ 树各自有其独特的优点和应用场景。B 树以其平衡性和高效的查找、插入、删除操作在多种应用中得到广泛使用。而 B+ 树由于在范围查询和缓存利用上的优势,通常在数据库系统中表现出色。根据具体的需求,选择适合的数据结构可以优化系统性能,提高数据操作的效率。原创 2024-08-23 14:33:22 · 1095 阅读 · 0 评论 -
深入解析 Java 中的 synchronized:从重量级锁到锁升级的演变
是 Java 并发编程中的一个关键组件,其实现从早期的重量级锁逐步演变为偏向锁、自旋锁和重量级锁的混合模式。JVM 根据具体的线程竞争情况动态调整锁的类型,使得能够在各种场景下都保持较高的性能。理解的底层机制和锁升级过程,有助于开发者在编写多线程程序时做出更合适的锁选择,从而最大限度地优化程序的并发性能。在实际开发中,合理使用可以确保线程安全,同时减少不必要的性能损耗。原创 2024-08-20 14:56:58 · 1034 阅读 · 0 评论 -
Java 中Map的多种遍历方法详解
entrySet() 遍历键值对:同时访问键和值,是最常用的遍历方式。keySet() 遍历键:适合只对键进行操作或通过键获取值的情况。values() 遍历值:适合只关心值的场景。forEach 和 Lambda 表达式:简洁高效,适合 Java 8 及以上版本。Iterator 遍历:适合在遍历过程中删除元素,避免并发修改问题。通过合理选择遍历方法,可以提高代码的可读性和效率,特别是在不同场景下能够灵活运用这些方法,会使你的代码更具弹性和健壮性。原创 2024-08-20 14:35:58 · 1138 阅读 · 0 评论 -
Redis 为什么读写性能高?
Redis 作为一种开源的、基于内存的数据结构存储系统,以其卓越的读写性能而闻名。它被广泛应用于缓存、消息队列、实时数据处理等场景。那么,是什么使得 Redis 拥有如此高的读写性能呢?本文将从以下几个方面进行探讨。原创 2024-08-09 12:15:06 · 692 阅读 · 0 评论 -
深入理解看门狗机制及其在Java中的实现
看门狗(Watchdog)是一种广泛应用于系统监控的机制,其主要作用是确保系统、设备或软件程序的正常运行。当看门狗检测到系统出现异常(如无响应或任务超时)时,它会触发预定义的操作,如重启系统或任务,发送警报,甚至执行紧急恢复措施。这种机制在嵌入式系统、分布式系统、长时间运行任务的监控中得到了广泛应用。通过看门狗,可以有效提升系统的稳定性和可靠性。原创 2024-08-09 12:08:40 · 1843 阅读 · 0 评论 -
Ubuntu 上卸载并重新安装 MySQL
输入你在安装过程中设置的密码,登录成功后即可开始使用 MySQL。该脚本会引导你进行一些安全配置,例如删除匿名用户、禁止远程。安装过程中会提示你设置 MySQL。登录、删除测试数据库等。原创 2024-08-07 22:20:10 · 824 阅读 · 0 评论 -
Java并发之ThreadLocal
ThreadLocal 是一个非常有用的工具类,它可以用于保存线程中的变量,这样在同一个线程中的任何地方都可以获取到线程中的变量。但是,ThreadLocal 也是一个非常容易被误用的工具类,如果没有使用好,就可能会造成内存泄漏的问题。ThreadLocalMap 是 ThreadLocal 的核心,它是一个以 ThreadLocal 实例为 key,任意对象为 value 的哈希表。原创 2024-07-30 21:20:25 · 920 阅读 · 0 评论 -
ThreadPoolExecutor拒绝策略
可以通过实现接口来创建自定义的拒绝策略。例如,记录被拒绝任务的日志或进行其他处理。i < 10;i++) {@Overridetry {@Override:自定义拒绝策略,实现接口。在任务被拒绝时,打印被拒绝任务的信息。原创 2024-07-18 22:02:31 · 577 阅读 · 0 评论 -
一文理解ThreadPoolExecutor线程池以及运行时间
核心线程数(corePoolSize)线程池中保持的核心线程数量。即使这些线程处于空闲状态,它们也不会被销毁,除非设置了。最大线程数(maximumPoolSize)线程池中允许的最大线程数量。当工作队列已满且请求数超过核心线程数时,线程池会创建新线程,直到总线程数达到最大线程数。工作队列(workQueue)用于保存等待执行的任务的队列。常用的队列类型有等。线程工厂(ThreadFactory)用于创建新线程的工厂,可以定制线程的创建过程,例如设置线程名称、优先级等。原创 2024-07-18 20:37:34 · 1277 阅读 · 0 评论 -
vim使用教程
Vim 对于每个服务端开发人员都不陌生,这可能是我们接触最多的 Linux 软件。所有类 Unix 的系统(Linux、Mac)都安装了 vim。当我们通过终端操作文本时,vim 或许是我们唯一的选择。原创 2024-07-16 21:43:49 · 754 阅读 · 0 评论 -
java虚拟机栈帧操作
虚拟机栈在方法调用、执行和返回过程中起着关键作用。通过理解栈帧和栈操作指令,可以更好地理解程序的执行过程和性能优化的方向。原创 2024-06-28 14:30:09 · 778 阅读 · 0 评论 -
Mybatis <if>标签使用报错 ### Error querying database. Cause: java.lang.NumberFormatException: For input st
会报错### Error querying database. Cause: java.lang.NumberFormatException: For input string: xxxx。在标签的test中,不能写成“name!原创 2024-06-13 13:09:58 · 135 阅读 · 0 评论 -
解决 There is no getter for property named ‘null‘ in ‘class 报错
mybatis-plus在更新删除操作时报错。原创 2024-06-08 21:06:25 · 746 阅读 · 0 评论 -
mac 中存在两个或多个jdk,mvn install时报错Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project springbootdemo: Fatal error compiling: 无效的标记: -parameters -> [Help 1]原创 2024-04-27 11:53:43 · 229 阅读 · 0 评论 -
mac用Homebrew安装MySQL并配置远程登录
MySQL 是一个开源的关系型数据库管理系统(RDBMS),由瑞典 MySQL AB 公司开发,后被 Oracle 公司收购。MySQL 使用 SQL(Structured Query Language)作为查询语言,并提供了强大的功能和性能,被广泛应用于各种 Web 应用程序和企业级应用程序中。以下是 MySQL 的一些主要特点和优势:**开源和免费:**MySQL 是开源软件,可以免费使用,并且有一个活跃的开源社区支持和维护它。原创 2024-04-27 10:42:53 · 2533 阅读 · 1 评论 -
mac上安装Tomcat
Tomcat 是一个开源的 Java 服务器,它实现了 Java Servlet、JavaServer Pages(JSP)和Java WebSocket 技术。Tomcat 是 Apache 软件基金会的一个项目,是一个轻量级、高性能的 Web 容器。作为一个 Web 服务器,Tomcat 的主要作用是托管和运行 Java Web 应用程序。原创 2024-04-26 23:20:35 · 1703 阅读 · 1 评论 -
mac配置maven
在 macOS 上配置 Maven 也相对简单。以下是一种常用的方法:**下载 Maven:**首先,你需要从 Maven 官网(https://maven.apache.org/download.cgi)下载最新版本的 Maven。你可以选择二进制压缩包(.tar.gz 格式)。**解压缩 Maven:**将下载的 Maven 压缩包解压缩到你选择的位置。你可以将其解压到 /usr/local/ 目录下,或者你喜欢的其他位置。将 {version} 替换为你下载的 Maven 版本号。**设置 M2原创 2024-04-26 23:02:33 · 675 阅读 · 0 评论 -
mac安装java
在 macOS 上配置 Java 环境变量是相对简单的。你需要做的是设置 JAVA_HOME 环境变量,并将 bin 目录添加到 PATH 变量中。本篇是最详细的教程,细化每个步骤过程,保姆级的教程!原创 2024-04-26 22:42:39 · 723 阅读 · 3 评论 -
MYSYS2使用教程
安装好后,不要直接运行,先配置,软件源,否则下载超级慢安装完成后点击完 成退出安装程序注意: 此处不要勾选"立即运行 MSYS2 64bit", 因为接下来要配置国内更新源。原创 2024-03-14 11:37:03 · 1177 阅读 · 0 评论 -
servlet实现学生管理系统demo
servlet实现学生管理系统项目结构封装Student类package com.example.reqresp_test.bean;public class Student { private String username; private String age; private String score; @Override public String toString() { return "Student{" +原创 2022-02-18 14:33:28 · 528 阅读 · 0 评论 -
Mybatis之基础
Mybatis快速入门1 框架介绍框架是一款半成品软件,我们可以基于这个半成品软件继续开发,来完成我们个性化的需求!2 ORM介绍ORM(Object Relational Mapping): 对象关系映射指的是持久化数据和实体对象的映射模式,为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。具体映射关系如下图:数据库表(table) —> 类(class)记录(record,行数据) —>对象(object)字段(filed) —>对象属性 (attri原创 2022-02-22 17:30:00 · 88 阅读 · 0 评论 -
JDBC高级之框架(JDBCTemplate)
JDBC框架(JDBCTemplate)1.分析项目中的重复代码dao层的重复代码定义必要的信息、获取数据库的连接、释放资源都是重复的代码!而我们最终的核心功能仅仅只是执行一条sql语句而已啊!所以我们可以抽取出一个JDBC模板类,来封装一些方法(update、query),专门帮我们执行增删改查的sql语句!将之前那些重复的操作,都抽取到模板类中的方法里。就能大大简化我们的使用步骤!2.自定义JDBC框架2.1数据库的源信息DataBaseMetaData(了解):数据库的源转载 2022-02-21 17:30:00 · 239 阅读 · 0 评论 -
JDBC高级之数据库连接池
数据库连接池1.数据库连接池的概念数据库连接数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。这项技术能明显提高对数据库操作的性能。数据库连接池原理2.自定义连接池java.sql.DataS原创 2022-02-20 20:00:00 · 94 阅读 · 0 评论 -
EL&Filter&Listener
EL&Filter&ListenerEL表达式EL 表达式介绍EL(Expression Language):表达式语言JSP2.0规范加入的内容,也是servlet规范的一部分作用:在JSP页面中获取数据。让我们的JSP脱离java代码块和JSP表达式基本语法:EL表达式的语法格式非常简单,写为${表达式内容}Java代码块JSP表达式EL表达式<%<br/> <br/> String message = (原创 2022-01-29 15:29:11 · 987 阅读 · 0 评论 -
Cookie&&&Session&&JSP
Cookie&&&Session&&JSPCookie会话介绍会话:客户端浏览器和服务器之间的多次请求和响应为了实现一些功能,浏览器和服务器之间可能会产生多次请求和响应,从浏览器访问服务器开始,到访问服务器结束(浏览器关闭,到了过期时间)。这期间产生的多次请求和响应加在一起就称之为浏览器之间的一次会话在会话过程中产生的一些数据,可以通过会话技术(Cookie和Session)保存Cookie介绍Cookie:客户端会话管理技术,把要共享的数据保存到原创 2022-01-28 15:01:23 · 1523 阅读 · 0 评论 -
Request&Response
请求对象-request请求对象请求:获取资源。在BS架构中,就是客户端浏览器向服务端发出询问请求对象:就是在项目中用于发送请求的对象Servlet关系视图请求对象常用方法-获取各种路径返回值方法名说明StringgetContextPath()获取虚拟路径名称StringgetServletPath()获取Servlet映射路径StringgetRemoteAddr()获取访问者ip地址StringgetQueryStr原创 2022-01-27 21:28:30 · 408 阅读 · 0 评论 -
Tomcat基础学习
Tomcat&Http协议-授课1 企业开发简介1.1 JavaEE规范JavaEE规范是J2EE规范的新名称,早期被称为J2EE规范,其全称是Java 2 Platform Enterprise Edition,它是由SUN公司领导、各厂家共同制定并得到广泛认可的工业标准(JCP组织成员)。之所以改名为JavaEE,目的还是让大家清楚J2EE只是Java企业应用。在2004年底中国软件技术大会Ioc微容器(也就是Jdon框架的实现原理)演讲中指出:我们需要一个跨J2SE/WEB/EJB的微容原创 2022-01-16 16:32:10 · 506 阅读 · 0 评论 -
IDEA中隐藏指定文件或者指定类型文件
IDEA中隐藏指定文件或者指定类型文件Setting——>File Types——>Ignored Files and Folders输入要隐藏的文件名,支持*好通配符点击应用原创 2022-01-10 22:13:50 · 554 阅读 · 0 评论 -
HashMap
HashMapHashMap简介HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。HashMap数组每一个元素的初始值都是Null。HashMap中的Get和Set方法put方法map.put("apple", 0);//插入一个key为“apple”的元素,接着利用一个哈希函数确定Entry的插入位置index = hash(key) //计算出插入位置源码中:原创 2021-04-29 09:52:29 · 123 阅读 · 0 评论 -
springboot集成mybatis(注解)
mybatis简介MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。springboot集成mybatis,swagger依赖引入数据库依赖 <dependency>原创 2021-04-22 10:40:15 · 257 阅读 · 0 评论 -
idea+jetty部署web项目
jetty简介Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。 Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。 开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。jetty特性易用性是 Jetty 设计的基本原则。 通过 XML 或者 API 来对Jetty进行配置;默认配置可以满足大部分的需求,将 Jetty 嵌入到应用程序当中原创 2021-04-21 15:02:56 · 3040 阅读 · 1 评论 -
maven通过pom文件设置JDK1.8进行编译
修改pom文件,添加properties设置<properties> <!-- Build args --> <argline>-Xms512m -Xmx512m</argline> <skip_maven_deploy>false</skip_maven_deploy> <updateReleaseInfo>true</updateReleaseInf原创 2021-04-13 11:02:12 · 525 阅读 · 0 评论 -
mvn 由于测试(test打包失败)
问题[ERROR] Failures: [ERROR] OrderFormDaoTest.findBuyOrderId:60[ERROR] Errors: [ERROR] OrderFormDaoTest.deleteByOrderId:65 ? EmptyResultDataAccess No class zut.edu.c...[ERROR] OrderFormServiceImplTest.cancel:88 ? IllegalArgument Source must not b原创 2021-04-06 11:45:21 · 643 阅读 · 0 评论 -
springboot集成elasticsearch(10)
引入依赖在maven项目管理中的pom.xml加入以下内容:<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.1.1</version></dependency>在grad原创 2021-03-26 09:28:02 · 111 阅读 · 0 评论 -
idea操作maven时控制台中文乱码
windows环境下,Intellij idea中maven操作时,控制台中文乱码问题(编译报错或者clean install时出现的其他错误描述乱码)在cmd中mvn中文正常显示,log4j打印日志也是ok的。解决方法:Setting->maven->runner VMoptions: -Dfile.encoding=GB2312...原创 2021-03-25 09:46:31 · 230 阅读 · 0 评论 -
java8 Stream流
Srteam的操作种类中间操作当数据源中的数据上了流水线后,在这个过程中对数据进行的所有操作都被称为“中间操作”中间操作仍然会返回一个流对象,多个中间操作串起来可以形成一个中间操作Stream提供了多种流操作,例如:filter,distinct,map,sorted等操作终端操作当所有中间操作完成后,如果要将数据从流水线上拿出来,则需要执行终端操作stream对于终端操作,可以直接提供一个中间操作结果,或者将数据转化为特定的colelction,array,String等s原创 2021-03-10 14:42:29 · 124 阅读 · 0 评论