自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(229)
  • 收藏
  • 关注

原创 java中的加减乘除方法

需要注意的是,不同的数据类型和类可能提供不同的方法来执行数值的加减乘除操作。对于基本数据类型(如。等),可以直接使用运算符进行操作。对于大数值或需要更高精度的计算,可以使用类如。提供的方法进行计算。

2024-03-22 14:04:01 1006

原创 java中的setScale方法

是用于高精度计算的类,用于处理需要精确表示的任意精度的十进制数。它提供了许多方法来执行精确的数学运算,包括加法、减法、乘法和除法等。:表示要设置的新的小数位数(精度)。传递一个整数值,负数表示增加小数位数,正数表示减少小数位数。对象,其中的小数位数已经根据指定的参数进行了调整。:表示舍入模式,定义了在进行小数位数调整时如何处理舍入。对象的小数位数进行精确调整,并指定相应的舍入模式。方法将其小数位数设置为 2,并指定舍入模式为。对象不会被修改,而是返回一个新的对象。类的一个方法,用于设置。

2024-03-19 16:52:10 2849

原创 java中的continue

语句被执行时,它会立即结束当前循环迭代并开始下一次迭代。代码执行将跳到循环控制条件(例如。是一种流程控制语句,用于跳过当前循环中的剩余代码并开始下一次循环迭代。语句时,它会立即跳到循环的下一次迭代,而不执行剩余的循环体代码。循环的条件判断)处,然后根据条件判断是否继续执行下一次循环。)一起使用,用于在满足特定条件时跳过当前循环迭代。通常与循环结构(例如。

2024-03-08 17:02:42 515

原创 Java中的ifPresent()方法

对象包含值的情况下执行特定的操作,避免了空指针异常的发生,并使代码更加健壮。方法,并将值作为参数传递进去执行相应的操作;对象包含值的情况下执行指定操作。函数式接口作为参数,该函数式接口定义了要在。对象是否包含非空值,如果包含,则调用传递给。对象为空(即不包含值),则不执行任何操作。在这个例子中,我们首先创建了一个包含字符串。方法,并传递一个Lambda表达式。方法的Lambda表达式不会被执行。中包含值时被执行,打印出名字。类提供的一个方法,用于在。对象包含值时执行的操作。接着,我们创建了一个空的。

2024-03-08 16:59:44 1723

原创 lambda表达式的经典例子

这里的.reduce是将这些整数进行求和,而identity:0是这个累加器的初始值为0,相当于int sum=0,然后讲加后的结果返回给前面的identity,这里的a相当于sum +=v中的sum,b相当与v,然后讲identity的值赋值给a。这里的.toUpperCase()是将字母转换为大写,.ofNullable()是判空,.map()是转换类型,这里是转换为大写字母,.ifPresent()是。否则,如果没找到匹配的键,它将返回false。9.创建线程:和上面接口的写法相似。

2024-02-22 22:09:15 384

原创 java中的containsKey()方法

方法是用于判断一个Map(如HashMap、TreeMap等)是否包含指定的键(key)。它是Map接口的一个方法,可以帮助我们在Map中快速地检查某个键是否存在。方法接受一个参数,即要检查的键。它会在调用该方法的Map中搜索指定的键。如果找到了匹配的键,即该键存在于Map中,方法将返回true。否则,如果没找到匹配的键,它将返回false。输出结果:Map中是否包含键 'Bob': true。下面是一个简单的示例来说明。

2024-02-22 21:46:15 1355

转载 StringUtils.isBlank()和CollectionUtils.isEmpty()的区别是什么

查看这篇文章:http://t.csdnimg.cn/wgGcU

2024-02-18 14:15:22 37

原创 涨知识啦!

2024-01-11 21:24:03 439

原创 (A :: B)这个代码在java中是什么意思

通过方法引用,我们可以直接引用现有的方法,而不需要编写完整的 lambda 表达式。这在简化代码、提高可读性和减少冗余时非常有用。表示方法引用(Method Reference)。方法引用提供了一种更简洁的方式来调用已经存在的方法。在这些示例中,我们使用不同类型的方法引用来引用现有的方法,并将其用于函数式接口的实现。的具体含义取决于 A 和 B 的具体内容。的具体含义取决于上下文和方法的签名。确保根据需要适当地选择和使用方法引用。

2023-12-26 17:52:09 263

原创 jwt,token的单点登录系统

作为⼀个开放的标准(RFC 7519),它定义了一种简洁的、自包含的协议格式,用于在通信双方之间以Json对象的形式安全的传递信息。最后,算出签名以后,把Header、Payload、Signature三个部分拼成一个字符串,每个部分之间用点(.)分隔,就可以返回给用户了。时,请求中携带JWT串到服务端,服务端通过签名加密串匹配校验,保证信息未被篡改,校验通过则认为是可靠的请求,将正常返回数据。例如,A网站和B网站是同一家公司的关联服务,现在要求,用户只要在其中一个网站登录,再访问另一个网站就无需登录。

2023-12-24 19:20:16 242

原创 mybatis中的<foreach>标签

它允许在 SQL 语句中动态生成重复的 SQL 片段,将集合中的元素应用到 SQL 中,从而提供了一种灵活和便捷的方式来处理集合数据。这样,在执行 SQL 语句时,MyBatis 会根据集合的大小自动生成重复的 SQL 片段,并将其中的。:指定在每次迭代中,当前元素的索引或键的别名(仅适用于 Map 集合)。:指定要遍历的集合的表达式,可以是一个 List、数组或 Map 等。可以轻松处理集合参数的情况,动态生成符合需求的 SQL 片段。操作,并将集合中的元素应用到 SQL 语句中时,可以使用。

2023-12-22 15:33:52 178

原创 DTO和DAO

DAO(Data Access Object)和DTO(Data Transfer Object)是两个不同的概念,用于在软件开发中处理数据的不同方面。

2023-12-22 14:58:53 1217

原创 父类调用子类,子类调用父类,父类调用子类的特有方法

【代码】父类调用子类,子类调用父类,父类调用子类的特有方法。

2023-12-22 11:21:34 66

原创 StringUtils中常用的方法

【代码】StringUtils中常用的方法。

2023-12-22 10:30:01 377

原创 在代码中检查幂等性的作用,什么是幂等性

幂等性设计:在系统设计阶段,可以采用幂等性的原则来设计接口、算法或业务逻辑,使其具备幂等性特征。例如,幂等性的设计可以保证相同的输入产生相同的输出,不论执行多少次。状态检查:在执行操作之前,检查当前的状态或条件,以确保操作可以安全地执行。通过检查幂等性,可以避免重复请求对系统造成的额外负担和资源消耗,通过检查幂等性,可以避免并发冲突和竞态条件,确保每个操作的结果都是一致的。如果操作具有幂等性,那么重试操作将不会引入新的错误或产生不一致的状态。幂等性是指无论对同一个操作进行多少次执行,其结果应该是相同的。

2023-12-21 11:15:23 80

原创 浅浅探讨下BigDecimal

还提供了许多其他方法,如设置精度和舍入规则、取整、取余、比较大小等。你可以根据具体需求查阅 Java 官方文档或相关教程来了解更多关于。,它提供了对任意精度的十进制数进行精确计算的支持。可以处理更大范围的数值,并且能够避免浮点数计算中的精度丢失问题。方法进行加法、减法、乘法和除法运算。最后打印出运算结果。类型,因此在进行连续的运算时,可以链式调用各种运算方法。在上面的示例中,我们创建了两个。)相比,BigDecimal。

2023-12-19 13:52:46 152

原创 手动创建实例A a = new A()和自动创建实例@Autowired private A a;的区别

A a = new A() 是手动创建对象的方式,开发者完全掌握对象的创建和管理。则是通过自动注入的方式,将对象的创建和管理交给 Spring 容器。:使用 @Autowired 注解自动将符合类型的 A 类的实例注入到 a 字段中,即自动创建对象。A a = new A():通过显式地使用 new 关键字创建 A 类的实例,即手动创建对象。A a = new A():开发者完全掌握对象的创建和管理,可以。A a = new A():手动创建对象时,对于。A a = new A():手动创建的对象。

2023-12-18 14:38:40 253

原创 内连接和外连接有什么区别

外连接可以分为左外连接(Left Outer Join)、右外连接(Right Outer Join)和全外连接(Full Outer Join)。假设有两个表,一个是 "Customers" 表,另一个是 "Orders" 表。它们之间通过 "CustomerID" 列进行连接。内连接(Inner Join)和外连接(Outer Join)是 SQL 中用于连接多个表的两种不同方式。内连接是通过匹配两个或多个表之间的共同值来返回符合条件的行。只有当连接条件满足时,才会返回行。

2023-12-08 17:13:30 308

原创 sql语句中常用的条件表达式

用于按指定列对结果进行分组。:用于计算行数或满足条件的行数。:用于从结果集中去除重复的行。:用于对分组后的结果进行筛选。:用于检查子查询是否返回结果。:用于在多个表之间进行连接。:用于在查询中进行模糊匹配。:用于指定多个可能值的条件。:用于计算数值列的平均值。:用于获取数值列的最大值。:用于获取数值列的最小值。:用于指定一个范围的条件。:用于合并多个查询结果集。:用于计算数值列的总和。:用于返回第一个非空值。:用于对结果进行排序。

2023-12-08 16:17:21 664

原创 传参-@PathVariable注解、@RequestParam注解、@RequestBody注解和@RequestHeader注解

1.注解和注解是 Spring MVC 中用于处理请求参数的注解,但它们在用法和作用上有一些区别。

2023-12-08 15:16:22 225

原创 在本地配置host文件的作用

如果在 Host 文件中找到了匹配的域名和 IP 地址,计算机将使用该 IP 地址直接访问对应的资源,而不会进行 DNS 解析。屏蔽广告或恶意网站:通过在 Host 文件中添加广告或恶意网站的域名与一个无效的 IP 地址进行映射,可以阻止计算机访问这些网站,从而实现广告拦截或防止恶意软件感染。本地测试和开发:通过在 Host 文件中添加本地开发服务器的域名与本地 IP 地址的映射,您可以在计算机上进行开发和测试,而无需将代码部署到真实的服务器上。这对于测试、开发或绕过 DNS 解析非常有用。

2023-12-08 09:58:57 375

原创 常见的消息队列的比较ActiveMQ,RabbitMQ,Kafka,RocketMQ

2023-11-27 22:11:01 52

原创 逻辑运算中常用的三种基本逻辑:与(AND)、或(OR)和非(NOT)

这些逻辑操作符在编程中经常用于条件语句、布尔表达式和逻辑判断,帮助控制程序的执行流程和判断条件的满足性。它们可以用于组合和判断多个条件之间的逻辑关系,以便根据不同的条件情况执行相应的操作。与(AND)、或(OR)和非(NOT)是逻辑运算中常用的三种基本逻辑操作。

2023-11-23 18:46:01 12568

原创 在vue中v-if和v-show的区别

2023-11-05 18:56:32 145

原创 VUE..

然后,先用cd vue-base切换目录,再用npm install安装npm依赖,用npm run dev运行。在浏览器输入地址127.0.0.1:5173打开vue(注意:这里的:是英文)创建vue项目:npm init vue@latest。注意:在创建项目命名的过程中,名称不能为大写。

2023-10-30 21:33:36 57

原创 什么是关系型数据库,什么是非关系型数据库,有什么区别

关系型数据库和非关系型数据库是两种常见的数据库类型,它们在数据组织和存储方式上有所不同。

2023-10-30 19:36:01 183

原创 什么是聚集索引,什么是非聚集索引,有什么区别

需要根据具体的数据访问模式和需求来选择合适的索引类型,以提高数据库的查询性能和数据访问效率。一个表只能有一个聚集索引。

2023-10-30 19:25:50 191

原创 死锁产生的原因,如何预防和解决死锁

需要注意的是,预防和解决死锁的方法都有其优缺点,并且在不同的场景和应用中选择合适的方法可能会有所不同。在实际应用中,需要综合考虑系统需求、性能要求和资源利用率等因素,选择适合的死锁预防和解决策略。产生死锁的四大因素:死锁的产生需要同时满足这四个条件,在这里只需要破坏一个因素就可以破坏死锁。通过控制台提供的信息可以发现,t1等待的资源t2在使用,而t2等待的资源t1在使用。根据jstack+进程号,来详细的显示该进程的信息。首先在控制台中输入jsp查找运行程序的进程 ,这时会出现:提示找到了一个死锁。

2023-10-28 15:06:31 83

原创 @SpringBootApplication

它根据项目的依赖和配置,自动配置和装配 Spring 应用程序所需的各种组件和功能。自动配置根据类路径上的依赖和配置文件,推断和配置 Spring Bean、数据库连接、Web MVC、消息队列等。这样,我们可以避免手动配置大量的 Spring 组件,减少了开发的工作量。简化了 Spring Boot 应用程序的配置和启动过程,集成了多个常用的注解,并提供了自动配置和组件扫描的功能。等注解的类,并将它们注册为 Spring 的 Bean。注解,我们无需单独配置这些功能注解,它们会自动生效。

2023-10-23 21:10:20 118

原创 Java中double的精度问题

然而,由于浮点数的表示是有限的,无法准确表示所有的实数,因此在进行浮点数运算时可能出现精度损失。1. 累积舍入误差:在连续的浮点数运算中,舍入误差会逐渐积累,导致最终结果与预期结果有所偏差。例如,执行一系列加法或乘法运算时,由于每一步都会进行舍入,最终结果可能与预期结果有较小的差异。2. 比较相等性问题:由于浮点数的精度限制,直接使用等号进行浮点数比较可能会得到错误的结果。例如,比较两个看似相等的浮点数时,可能会得到不相等的结果。在进行浮点数计算时,应该注意这些问题,并选择适当的方法来处理精度损失。

2023-10-21 20:30:41 1481

原创 又是个秒杀知识点

页面资源静态化秒杀按钮置灰秒杀真链接隐藏异步处理订单订单失败补偿服务降级

2023-10-20 19:39:55 57

原创 rabbitmq的启动

启动RabbitMQ服务可以使用rabbitmq-server -detached命令,启动:rabbitmq-server -detached。查看状态:rabbitmqctl status。

2023-10-19 11:22:52 580

原创 分布式锁有什么用,如何实现分布式锁

当用户请求进来的时候,通过SetNX来设置一个键,这个键里面没有的时候返回true,加锁成功(这里要加上过期时间,因为用户在请求的过程中的,如果此时服务器挂掉了,那么其他的服务器正常的请求依然会出现一个阻塞的情况。”通过SetNX的这个特性,就可以实现分布式锁。但是随着业务的扩展会爆露出另外的一些问题,当业务的处理时间超过了这把锁的过期时间业务还没有处理完,这把锁会自动释放,其他的线程此时就会趁虚而入,线程一处理完了之后,此时释放的是线程二的锁,其他的线程又会趁虚而入,以此类推,从而造成超卖的现象。

2023-10-18 15:29:59 52

原创 高性能高并发商品秒杀系统设计与优化

本项目主要是模拟应对大并发场景下,如何完成商品的秒杀,以及针对秒杀场景下为应对大并发所做的优化。项目的技术结构如下图所示:分布式会话用户登录、商品列表、商品详情、订单详情模块缓存优化系统压测,测试系统的QPS信息队列接口安全GitHub - Grootzz/dis-seckill: :punch:SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统。

2023-10-18 11:35:36 67

原创 使用同步锁为什么会使服务器压力变大,产生性能瓶颈

综上所述,合理的锁设计和优化可以减轻同步锁带来的服务器压力和性能瓶颈。通过减小锁的粒度、优化锁的使用、使用更高效的并发控制策略、异步处理和缓存优化等方法,可以提升系统的并发性能和响应速度。使用无锁数据结构或锁的替代方案,如CAS(Compare and Swap)等,来减少对锁的依赖。同步锁的使用会引发对共享资源的竞争。当多个线程同时竞争同一把锁时,只有一个线程能够成功获取到锁,其他线程则需要等待。考虑使用更高效的并发控制策略,如读写锁、分段锁、分布式锁等,以减少锁竞争的程度,提高并发处理能力。

2023-10-17 21:03:42 64

原创 浅讲一下秒杀业务中的同步锁

通过在关键代码块执行前获取分布式锁,并在执行完成后释放锁,可以确保操作的原子性和一致性。悲观锁假设会发生并发冲突,因此在执行关键操作前,会先获取锁并锁定资源,确保同一时间只有一个线程可以执行。在秒杀业务中,可以使用数据库的行级锁(如数据库事务锁、行锁)或者分布式锁(如Redis的分布式锁)来实现悲观锁。综上所述,在秒杀业务中,同步锁是一种常见的控制手段,可以通过悲观锁、乐观锁或分布式锁等方式来确保关键操作的并发安全性和数据一致性。在秒杀业务中,同步锁可以应用于关键的操作,例如库存扣减和订单生成等。

2023-10-17 20:56:49 73

原创 jar命令的参数都有哪些,它们都有什么作用

2023-10-17 16:01:59 39

原创 银行家算法-避免死锁的一个算法

需要注意的是,银行家算法要求在运行之前预先知道每个进程的最大资源需求量,这对于实际的应用场景可能不太实际。此外,银行家算法也需要考虑资源分配的顺序和策略,以确保公平性和效率性。因此,在实践中,需要综合考虑具体的应用场景和系统需求来选择合适的资源调度算法和策略。银行家算法的主要思想是在分配资源之前进行安全性检查,以确保分配资源不会导致系统进入不安全状态,即不会发生死锁。否则,暂时阻塞进程,等待资源变得可用。该算法基于资源的最大需求量、可用资源数量和进程当前已分配的资源来进行决策。

2023-10-17 15:41:36 514

原创 java.

2023-10-17 15:18:58 34

原创 sql语句中的交集和并集

操作符找到既是员工又是经理的人员。,它们分别包含员工和经理的数据。列的查询结果进行交集操作。在这个示例中,我们从。

2023-10-17 12:04:04 277

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除