自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java volatile关键字最全总结:原理剖析与实例讲解(简单易懂)--轻量级的线程锁

是Java提供的一种轻量级的同步机制。Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级,因为。

2025-04-02 17:00:40 251

原创 注解@Build的注解

在Java开发中,我们经常会遇到需要创建复杂对象的情况。传统的构造函数和setter方法有时显得繁琐且不直观。这时候,Lombok的@Builder注解无疑成为了我们的救星,简化了对象创建的过程。然而,正所谓"世上没有免费的午餐",在享受@Builder带来的便利时,我们也需要警惕那些潜藏的陷阱。今天,让我们一起揭开@Builder的神秘面纱,深入了解它的工作机制和常见问题,避免掉进那些意想不到的坑里。@Builder@ToString// 进行额外的初始化或验证AI写代码。

2025-03-27 15:35:40 961

原创 springboot使用redis(StringRedisTemplate的用法)

StringRedisTemplate默认采用的是String的序列化策略,保存的key和value都是采用此策略序列化保存的。两者的数据是不共通的;RedisTemplate默认采用的是JDK的序列化策略,保存的key和value都是采用此策略序列化保存的。SDR默认采用的序列化策略有两种,一种是String的序列化策略,一种是JDK的序列化策略。:数据共享的功能,redis作为单独的应用软件用来存储一些共享数据供多个实例访问。字符串的使用空间非常大,可以结合字符串提供的命令充分发挥自己的想象力。

2025-03-25 13:40:10 463

原创 详细比较StringRedisTemplate和RedisTemplate的区别及使用方法,及解决融合使用方法

感觉StringRedisTemplate和RedisTemplate非常的相识,到底有什么区别和联系呢?点开idea,打开其依赖关系,可以看出只需使用maven依赖包spring-boot-starter-data-redis,然后在service中注入StringRedisTemplate或者RedisTemplate即可使用。从下图StringRedisTemplate继承了RedisTemplate,所以两者对Redis的操作方法具有相同之处实验软件:RedisDesktopManager。

2025-03-25 13:37:51 670

原创 Java中的JSONObject对象

当它们已具备运行条件且内存又稍有空闲时,由中级调度来决定,把外存上的那些已具备运行条件的就绪进程,再重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待。作业调度从外存的后备队列中选择一批作业进入内存,为它们建立进程,这些进程被送入就绪队列,进程调度从就绪队列中选出一个进程,并把其状态改为运行状态,把CPU分配给它。当请求调度的事件发生后,才可能会运行进程调度程序,当调度了新的就绪进程后,才会去进行进程间的切换。在多道程序系统中,进程的数量往往多于处理机的个数,进程争用处理机的情况就在所难免。

2025-03-18 15:41:05 676

原创 调度的概念

当它们已具备运行条件且内存又稍有空闲时,由中级调度来决定,把外存上的那些已具备运行条件的就绪进程,再重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待。作业调度从外存的后备队列中选择一批作业进入内存,为它们建立进程,这些进程被送入就绪队列,进程调度从就绪队列中选出一个进程,并把其状态改为运行状态,把CPU分配给它。当请求调度的事件发生后,才可能会运行进程调度程序,当调度了新的就绪进程后,才会去进行进程间的切换。在多道程序系统中,进程的数量往往多于处理机的个数,进程争用处理机的情况就在所难免。

2025-03-16 23:14:55 624

原创 进程调度的几种方式与算法简介

若处理机正在执行第i级队列中的某个进程,此时又有新的进程进入优先级较高的队列[第1到(i-1)级的任意一级],则此时行进程将抢占正在运行的处理机,即由调度程序把正在运行的进程放回第i级队列末尾,把处理机分配给新到的更高优先级进程。①非剥夺(抢占)式优先级调度算法:当一个进程正在处理机上运行时,即使有某个更在重要或者紧迫的进程进入就绪队列,仍然让正在运行的进程继续运行,直到由于自身的原因而主动让出处理机时(任务完成或等待),才把处理机分配给更重要或紧迫的进程。在优先级越高的队列中,每个进程的运行时间片越小。

2025-03-16 23:13:27 614

原创 Java学习笔记10——静态内部类使用及意义

当我们创建一个静态内部类的对象时,并不需要先创建外部类的对象,与类中的静态成员的约定一样,在静态内部类中也不能访问外部类中的非静态成员,可以访问静态成员。(2)由于静态内部类具有这种独立性,所以可以实现一些有意思的功能,比如让接口中的静态内部类实现该接口,相当于接口自带了一个实现,任何需要该接口的地方都可以直接使用接口中的静态内部类的实现。(4)静态内部类与普通的内部类还有一个重要区别:普通的内部类中的成员不能声明为static,因此也就不能再有嵌套的静态内部类;

2025-03-14 13:58:06 834

原创 java8 .stream().anyMatch / allMatch / noneMatch用法

跟List接口中的 .size() 一样,返回的都是这个集合流的元素的长度,不同的是,流是集合的一个高级工厂,中间操作是工厂里的每一道工序,我们对这个流操作完成后,可以进行元素的数量的和;:与allMatch相反,判断条件里的元素,所有的都不是,返回true。:判断的条件里,任意一个元素成功,返回true。:判断条件里的元素,所有的都是,返回true。

2025-03-14 09:00:00 189

原创 java8 Duration、Period类 - 计算两个“时间”间隔、计算两个“日期”间隔

java8中引入了两个与日期相关的新类Period - 计算两个“日期”间隔的类Duration - 计算两个“时间”间隔的类Period 对应使用 LocalDate ,它们的作用范围域都是日期(年/月/日)Duration 对应使用 Instant、LocalTime、LocalDateTime,它们的作用范围域都是时间(天/时/分/秒/毫秒/纳秒)

2025-03-13 10:00:00 731

原创 【Java 8 新特性】Java LocalDate 详解

在从日期获取任何字段之前,我们可以检查该字段是否受支持,否则我们可能会出错。检查是否支持给定的单位。在使用加减之前,我们可以检查是否支持给定的单位,否则我们可能会出错。给出LocalDate实例,该实例包含默认时区的系统时钟的当前日期。在当前日期的输出中,它是星期一。是一个不可变的类,它是对日期的描述,如生日。在上面的代码中,我们为年份设置了新的值。方法返回不包括给定日期的有序的日期流。我们获取从该日期开始到指定日期的日期流。在上面的例子中,我们在当前日期中增加了。在上面的例子中,我们在当前日期中减少了。

2025-03-13 09:00:00 1947

原创 Spring的ReflectionUtils类常用方法学习笔记

ReflectionUtils是中非常实用的一个工具类,为开发人员提供了简便的反射操作方法,使得处理反射相关任务变得更加高效和便捷。

2025-03-12 11:30:00 914

原创 Java入坑之类的派生与继承

1、成员变量不变,调用结果为父类的成员变量的值2、成员方法改变,调用结果为子类的成员方法的结果3、静态成员方法不变,调用的结果为父类的静态成员方法。

2025-03-12 11:13:12 929

原创 field.setAccessible(true);代码扫描有安全漏洞,解决方案

AccessibleObject类是Field、Method和Constructor对象的基类,能够允许反射对象修改访问权限修饰符,绕过由Java访问修饰符提供的访问控制检查。它让程序员能够更改私有字段或调用私有方法,这在通常情况下是不允许的。:以下代码片段中,将Field将。标记设置为true。

2025-03-11 13:14:40 213

原创 三目运算符详解

注意点:当三目表达式的结果给一个变量的时候,表达式1和表达式2为同一个结果类型。三目表达式可以嵌套使用,嵌套次数没有限制,但是不建议使用(因为结构体不清晰,代码的可读性降低)。如果条件表达式为false,就输出打印表达式2的内容。如果条件表达式为true,就输出打印表达式1的内容。案例(获取两个数字中的最大值)如果年龄小于18岁,输出未成年。如果年龄大于55岁,输出老年。

2025-03-11 09:45:26 419

原创 Sonar的常见场景

)}catch{}且不需要finally代码块来关闭,这是jdk1.7的新写法,可以将一些可自动关闭的资源写在try()中,就可以直接实现自动关闭。”)}catch{}且不需要finally代码块来关闭,这是jdk1.7的新写法,可以将一些可自动关闭的资源写在try()中,就可以直接实现自动关闭。只有final修饰的变量名称中才可以有下划线,要么去掉下划线,要么加上final修饰符,Map,List和java对象加上final修饰符后,代表这个对象指向的内存地址不可变,但内容和值都是可以改变的。

2025-03-11 09:32:45 506

原创 X509TrustManager信任SSL证书

/ 该方法检查服务器的证书,若不信任该证书同样抛出异常。// 在实现该方法时,也可以简单的不做任何处理,即一个空的函数体,由于不会抛出异常,它就会信任任何证书。// //创建HttpsURLConnection对象,并设置其SSLSocketFactory对象。// 该方法检查客户端的证书,若不信任该证书则抛出异常。// //从上述SSLContext对象中得到SSLSocketFactory对象。// //创建SSLContext对象,并使用我们指定的信任管理器初始化。

2025-03-10 16:57:21 1020

原创 ideal中出现Warning:(20, 16) String concatenation as argument to ‘StringBuffer.append()‘ call的原因分析

这个不替换也能运行,而且替换后代码长度变长了,不好阅读,可以选择忽略.,所以可以链式调用,我们可以通过链式调用来替换掉里面的加号。方法目的就是做对象拼接用的,里面再通过"其实这个提示是表示方法使用不恰当,因为。当然,手动替换可能有些繁琐,需要使用。"来拼接就不得当,这是编译器对。

2025-03-10 15:17:39 102

原创 CSRF漏洞原理攻击与防御

CSRF (Cross-site request forgery,跨站请求伪造)也被称为One Click Attack或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户请求受信任的网站。简单的说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己以前认证过的站点并运行一些操作(如发邮件,发消息,甚至财产操作(如转账和购买商品))。

2025-03-07 15:00:00 1269

原创 AES对称加密算法

AES是一种对称加密算法,它的相关概念在此不赘述。GCM ( Galois/Counter Mode) 指的是该对称加密采用Counter模式,并带有GMAC消息认证码。在详细介绍AES-GCM之前,我们先了解一些相关概念。下文中出现的符号:Ek使用秘钥k对输入做对称加密运算XOR异或运算Mh将输入与秘钥h在有限域GF(2^128)上做乘法。

2025-03-07 09:00:00 879

原创 java异常状态显示分类

普通异常是运行环境的变化或异常所导致的问题,是用户能够克服的问题,例如,网络断线,硬盘空间不够,发生这样的异常后,程序不应该死掉。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。异常是指java程序运行时(非编译)所发生的非正常情况或错误,与现实生活中的事件很相似,现实生活中的事件可以包含事件发生的时间、地点、人物、情节等信息,可以用一个对象来表示,Java使用面向对象的方式来处理异常,它把程序中发生的每个异常也都分别封装到一个对象来表示的,该对象中包含有异常的信息。

2025-03-06 13:26:13 467

原创 圈复杂度(Cyclomatic Complexity)是一种代码复杂度的衡量标准

​​圈复杂度(Cyclomatic Complexity)是一种代码复杂度的衡量标准。它可以用来衡量一个模块判定结构的复杂程度,数量上表现为独立线性路径条数,也可理解为覆盖所有的可能情况最少使用的测试用例数。case1方法的圈复杂度为2,因此至少需要2个用例才能完全覆盖到其所有的可能情况。<3>Consolidate Duplicate Conditional Fragments (合并重复的条件)圈复杂度(Cyclomatic Complexity)是一种代码复杂度的衡量标准。

2025-03-05 17:34:50 266

原创 JDK自带的字符编码

JDK自带的字符编码。

2025-03-05 10:29:42 138

原创 slf4j和log4j的区别与使用

官网:https://www.slf4j.org/manual.html(1)简单日记门面(simple logging Facade for Java)SLF4J是为各种loging APIs提供一个简单统一的接口。(2)slf4j并不是一种具体的日志系统,而是一个用户日志系统的facade。(3)在部署时,选择不同的日志系统包,即可自动转换到不同的日志系统上。

2025-03-04 18:11:54 1098

原创 Java防御性copy

总之,如果一个类有从它的客户端获取或返回的可变组件,那么这个类必须防御性地拷贝这些组件。如果拷贝的成本太高,并且类信任它的客户端不会不适当地修改组件,则可以用文档替换防御性拷贝,该文档概述了客户端不得修改受影响组件的责任。

2025-03-03 16:58:56 453

原创 ideal上面的debug的使用方法

显示现在执行的位置,快捷键Atl+F10,如果我们在,debug时进入到其中的方法,可能会违法及时回到断点位置,程序在报错会跳转到其他的类中,我们可以使用这个按钮来回到当前执行到的位置;断点静音,使后面的断点暂时失效,不会拦截代码,在我们想通过断点看效果,但是不想取消断点时使用,再次点击会重新生效。查看所有的断点,快捷键Ctrl+Shift+F8,可以查看到所有的断点,如果断点比较多,可以点击-减号取消断点。跳到下一个断点,快捷键F9,有多个断点的同时,调到下一个断点,后面没有断点就结束调试,通过执行。

2025-02-27 13:56:46 352

原创 Jsonpath 使用说明

JSONPath 是一种用于从 JSON 数据结构中提取特定元素的查询语言,类似于 XPath 用于 XML。它提供了强大的查询功能,允许用户通过简单的表达式获取 JSON 文档中的特定数据。

2025-02-27 09:50:39 570

原创 一文涵盖java基础

编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算机之间交流的过程就是编程。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

2025-02-25 17:59:16 656

原创 java基础知识之FileInputStream流

结合上面提到的源码我们可以发现,源码中的for循环,尽管len是10(数组长度),但是当i=5时,流中的字节已经读取完毕,指针移到文件的末尾,因此不会继续执行for循环。此时流中只剩余1个字节,根据API说明,读取数组长度(2)个字节到数组中,但接下来已经无法继续读取2个字节了, 是否就应该停止了?且读取到了文件的末尾,因此第4次执行的时候到int c=read()方法时就已经返回-1,并没有替换数组中的值了。实际过程中并未停止,而是进行了第三次读取,只读取了剩余1个字节,并顶替到了数组的0下标位置中。

2025-02-25 13:06:10 627

原创 一文讲懂原码,反码和补码

在计算机中,整数分为有符号(正数和负数)和无符号(只有正数)两种。原码、反码和补码提供了一种方法来表示有符号整数。2.正数的原码,反码,补码都一样(三码合一)3.负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)

2025-02-24 16:16:58 928

原创 一文读懂海明码校验(图文清晰解释)

该知识点可再408或者软考中出现,对此总结这方面的知识。

2025-02-24 15:36:09 626

原创 findbugs-defines non-transient non-serializable instance field excelTempFileOutputStream

解决成员变量序列化的问题j。

2025-02-23 17:00:00 876

原创 transient关键字以及序列化和反序列化?

说实话学了一段时间java的朋友对于。

2025-02-23 11:30:00 559

原创 《Java 中的 SecureRandom 与 Random 深度解析:安全性、性能与应用场景》

对于性能优先、对安全性没有严格要求的场景,Random是首选。对于安全性至关重要的场景(如加密、身份认证),毫不犹豫地选择。

2025-02-22 11:30:00 872

原创 什么是浮点数?以及浮点数运算?

浮点数是与定点数相对的概念,计算机中的定点数约定小数点的位置不变,即人为约定俗成地规定了一个数小数点的位置。例如定点纯整数约定了小数点在数值位的最后。定点纯小数约定了数值位的最高位在小数点后面。由于计算机字长的限制,当需要表示的数据有很大的数值范围时,他们不能直接用定点小数或者定点整数表示。

2025-02-22 09:00:00 1139

原创 什么是奇偶校验原理?

奇偶校验是一种简单且易于实现的错误检测技术。虽然它不能解决所有的错误情况,但其低成本和实用性使它成为许多通信和存储系统的首选错误检测方法。随着技术的发展,更复杂的错误检测和纠正算法被开发出来,但奇偶校验仍然是计算机科学教育和初级通信系统中的重要组成部分。

2025-02-20 10:55:52 1121

原创 循环冗余校验(CRC,模2运算)

CRC码是由两部分组成的,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码长共n bit,信息码长k bit,就称为(n,k)码,剩余的r bit即为校验位。多位二进制模2乘法类似于普通意义上的多位二进制乘法,不同之处在于后者累加中间结果(或称部分积)时采用带进位的加法,而模2乘法对中间结果的处理方式采用的是模2加法。在产生CRC校验码时,要用到除法运算,一般来说,这是比较麻烦的,因此,把二进制信息预先转换成一定的格式,这就是CRC的多项式表示。若最高位为0,则商0,重复步骤2。

2025-02-20 10:23:47 795

原创 Bat一键启动多个程序和命令(批启动)【最详细解释】

Hello!忙了好久,最近挺忙的,不知不觉已经来到星期六了,博客好久也没发文了,恰好自己最近来开机总是手动点击启动许多服务和命令,好麻烦(懒人思想~哈哈),我就思考着windows有没有像Linux系统一样的脚本,只要一键就可以启动呢?好家伙!!搜了搜,有个bat的批处理系统,好了,说了半天的废话了,来~进入正题.

2024-10-10 10:33:56 2216

原创 百度文本内容审核

BaiduTextCheckUtils.textCheck(“欢迎使用产品,他妈的”);选择 试用,“立即领取”

2024-08-26 17:38:08 488

原创 SpringBoot+OSS文件上传

以前,文件上传到本地(服务器,磁盘),文件多,大,会影响服务器性能如何解决?使用文件服务器单独存储这些文件,例如七牛云存储,阿里云OSS,腾讯云cos等等​ 也可以自己搭建文件服务器(FastDFS,minio)

2024-08-20 17:32:28 488

Linux命令大全的简易文件命令

Linux命令大全

2024-08-02

通过内网穿透远程访问自己的项目

通过内网穿透远程访问自己的项目

2024-08-02

通过内网穿透远程访问自己的项目

通过内网穿透远程访问自己的项目

2024-08-02

redis的解压安装包和可视化工具,这个是redis可视化

这里面是安装包是redis的解压安装包和可视化工具的资源,然后配合redis的前端简要命令来进行配置。还有一篇比较全的redis的简单命令

2024-07-29

空空如也

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

TA关注的人

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