自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 sleep 与 wait 区别

sleep()是Thread的静态方法,休眠时不释放锁,时间到自动恢复;wait()是Object的实例方法,必须在synchronized块中调用,会释放锁并进入等待池,需notify/notifyAll唤醒后重新竞争锁。二者均抛出InterruptedException,但wait用于线程通信,sleep用于定时暂停。

2026-10-15 14:50:30 153

原创 Java 浮点数 float/double 精度陷阱与原理

浮点数精度分布不均:绝对值越小,精度越高;绝对值越大,精度越低。float 的精度上限约为 800 万:在 800 万范围内可精确表示整数,超出后不一定。double 可以精确表示所有 int,但不能精确表示所有 long。商业计算(银行、金融、科学测量等)严禁使用 float/double,应使用BigDecimal等精确数值类型。浮点数不能表示所有小数,很多十进制小数在二进制中是无限循环,只能存储近似值。关键结论:在需要精确数值的场景(如金融、天文、化学数据),必须使用BigDecimal。

2026-09-09 16:42:09 157

原创 双亲委派模型(沙箱安全机制)

双亲委派模型:定义、层级、流程、作用、破坏场景。要精炼。注意字数。双亲委派模型是Java类加载机制:加载请求先逐级委派给父加载器,仅当父加载器失败时子加载器才自行加载。它通过Bootstrap、Extension、Application及自定义加载器的层级结构,避免类重复加载,并保障核心库安全(沙箱机制)。实现依赖ClassLoader.loadClass()方法。JDBC、Tomcat、OSGi和热部署等场景会打破该模型。

2026-09-07 15:56:54 284

原创 Java 位运算详解(结合集合源码)

Java位运算在集合源码中的应用,包括基础操作符,ArrayList扩容1.5倍,HashMap索引计算和扩容分流,以及性能优势。注意字数。</think>本文解析Java位运算在集合源码中的优化应用:ArrayList用oldCapacity + (oldCapacity >> 1)实现1.5倍扩容;HashMap以(n-1)&hash替代取模求下标,并用hash & oldCap判断扩容后元素位置。位运算直接操作二进制,比乘除法更快,是J

2026-09-07 10:41:01 163

原创 Entity 和 DTO 的区别

摘要: Entity(实体类)直接映射数据库表结构,包含所有字段(含敏感信息),用于数据存储;而DTO(数据传输对象)仅包含接口所需的字段,用于前后端数据传输。主要区别在于: 安全性:DTO避免暴露敏感字段(如密码); 解耦性:数据库变更不影响接口; 灵活性:DTO可自由组合数据; 性能:减少无用字段传输。 典型流程:前端通过DTO提交请求→后端用Entity操作数据库→返回过滤后的DTO响应。两者分工明确,Entity面向数据库,DTO面向接口,是企业开发的标准实践。

2026-06-24 21:17:41 183

原创 node.js zip版下载安装教程!!!

本文详细介绍了Node.js zip版的完整安装配置流程:1)从清华镜像站下载LTS版Node.js(如v22.x.x);2)解压并配置环境变量(NODE_HOME和Path);3)设置npm全局路径及缓存目录,配置淘宝镜像加速;4)通过命令验证安装,并解决PowerShell执行策略问题。教程还包含常见问题解答和最终目录结构说明,帮助用户快速完成配置并避免权限、路径等问题。适用于Windows系统用户,特别强调环境变量修改后需重启终端生效。

2026-06-23 21:08:11 724 1

原创 npm : 无法加载文件 D:\nodejsHome\node-v22.9.0\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.micro soft.com/fw

摘要:本文解决了PowerShell执行策略导致Node.js脚本无法运行的问题。检查发现当前策略为RemoteSigned,但因Windows将npm.ps1等脚本标记为"来自互联网"而受限。解决方案是使用Unblock-File命令解除文件锁定(示例路径:D:\nodejsHome\node-v22.9.0\npm.ps1),完成后重新打开CMD即可正常执行脚本。文章还提供了不同执行策略的安全等级说明,包括Restricted(最安全)、RemoteSigned(推荐)和Bypass/Unrestric

2026-06-23 20:38:43 245

原创 String vs StringBuilder vs StringBuffer深度解析

Java字符串处理三大核心类深度解析:String、StringBuilder与StringBuffer。String是不可变类,适合常量场景且线程安全;StringBuilder可变且非线程安全,单线程性能最优;StringBuffer可变且线程安全,适合多线程环境。关键区别在于可变性、线程安全机制(StringBuffer使用synchronized)和性能表现。实际开发中,90%场景推荐StringBuilder,仅需在多线程共享可变字符串时使用StringBuffer。文章还涵盖了字符串常量池、扩容

2026-04-12 20:16:22 391

原创 String 不可变性与常量池深度解析

字符串常量池是 JVM 堆内存中的一块特殊区域(JDK 7+ 从永久代移到了堆),用于存储字符串字面量,避免重复创建相同字符串。String 的不可变性是 Java 语言设计的精妙之处,它与常量池机制共同构成了高效的字符串处理体系。理解这些底层原理,不仅能应对面试,更能写出高性能、线程安全的代码。不可变 = 安全 + 线程安全 + 可缓存 + 可共享字面量用常量池,new创建在堆中大量拼接用,多线程用intern()可手动入池,但需谨慎使用(JDK 7+ 不会复制对象)

2026-04-12 20:14:11 436

原创 java面试中 “ == 和 equals “ 的区别

Java面试中==和equals的区别是高频考点。==是运算符,比较基本类型的值或引用类型的地址;equals是方法,默认比较地址但可重写为比较内容。关键区别在于:基本类型只能用==,引用类型equals可自定义比较逻辑。需特别注意String常量池复用和Integer缓存机制带来的==比较陷阱,以及重写equals时要遵循自反性、对称性等原则。面试应答应先概括核心区别,再分场景举例说明,最后总结最佳实践:基本类型用==,引用类型比较内容用equals,比较对象同一性用==。掌握这些细节能避免常见面试陷阱。

2026-04-02 14:39:33 485

原创 Docker

Git 管代码,Docker 管环境。它们不是竞争关系,而是互补的:现代开发通常两者一起用——用 Git 管理代码版本,用 Docker 保证环境一致。

2025-08-18 13:50:05 703

原创 Nginx 教程(概述、卸载、安装、配置文件详解、云服务器部署详解、Linux 系统 jar包启动方式)

Nginx 保姆级教程(卸载、安装、配置文件详解、部署详解)

2025-08-14 00:13:40 853

原创 Redis-2

在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里官方推荐两个都启用。如果对数据不敏感,可以选单独用RDB。不建议单独用 AOF,因为可能会出现Bug。如果只是做纯内存缓存,可以都不用。Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。

2025-08-09 13:37:35 850

原创 Redis-1

默认16个数据库,类似数组下标从0开始,初始默认使用0号库。端口6379redis-cli 连接redis使用命令select <dbid>来切换数据库。如:select 8统一密码管理,所有库同样密码。dbsize 查看当前数据库的key的数量。flushdb 清空当前库。flushall 通杀全部库。String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。String类型是二进制安全的。

2025-08-04 14:00:14 477

原创 Vue.js 中的组件:构建用户界面的基石

在Vue.js中,组件是可复用的代码块,每个组件都包含自己的模板、逻辑和样式。组件化开发允许开发者将复杂的界面分解成更小、更易于管理的部分。每个组件都可以独立开发、测试和重用,这大大提高了开发效率和代码质量。

2025-03-18 21:37:17 794

原创 HTML快速入门!

此后,我们可以通过更多的类似于<h1>和<img>这样的标签,往浏览器里放更多我们自己想要放的东西,然后我们又可以学习css、js来让我们的页面更加的整洁美观。再然后我们新建一个文本文档,并把它的后缀由 .txt 改成 .html :(名字自己起就好)然后我们在里面放一个自己喜欢的图片:(图片名无所谓,但是简短明了的话点方便一点点)接着我们对这个html文件右击,选择在记事本中编辑一下内容,最好自己敲一下试试。保存后就可以双击打开这个html文件了!首先,让我们新建一个文件夹:(这里名字自己随便定义)

2025-03-02 15:44:00 348

原创 Mysql的启动和关闭

3.找到M开头的MySQL就可以停止、暂停、重启Mysql了。2.输入 services.msc进入windows系统。1.首先Win+R唤出命令行。

2025-02-16 16:47:53 293

原创 正则校验是啥嘞???

正则校验是基于正则表达式(Regular Expression,简称Regex)的一种数据验证方法。正则表达式是一种特殊的文本字符串,用于描述、匹配一系列符合特定规则的文本模式。通过正则表达式,我们可以定义一个规则,然后用它来检查数据是否符合这个规则。举个简单的例子,假设我们要验证一个手机号码是否符合中国大陆的手机号格式(以1开头,第二位数字是3到9中的一个,总共11位数字)。我们可以用正则表达式来表示这个规则。当我们将一个手机号码与这个正则表达式进行匹配时,如果匹配成功,就说明这个手机号码符合格式;

2025-02-12 00:00:56 1474

原创 RBAC是什么嘞???

根据组织结构和业务需求定义角色。例如,一个公司可能需要定义管理员、编辑、作者、读者等角色。RBAC模型通过角色和权限的分离,提供了一种灵活且安全的访问控制机制。它适用于各种需要精细权限管理的场景,特别是在大型企业和复杂系统中。通过合理设计角色和权限,可以有效提高系统的安全性和管理效率。随着企业数字化转型的加速,RBAC模型将在未来的系统安全和权限管理中发挥越来越重要的作用。希望本文能帮助你更好地理解RBAC模型及其在实际应用中的价值。

2025-02-11 23:58:01 930

原创 IDEA中常用的快捷键

1. 代码编辑Ctrl + Space:代码补全。当你输入代码时,按下此快捷键可以触发代码补全提示,帮助你快速完成代码输入。Ctrl + Shift + Space:智能代码补全。它会在代码补全的基础上,根据上下文提供更精准的建议。Ctrl + Alt + L:格式化代码。可以快速将代码格式化为符合规范的格式。Ctrl + Alt + O:优化导入。自动删除未使用的导入语句,并整理剩余的导入语句。Ctrl + Shift + Enter:智能代码行结束。自动补全代码行,例如添加分号或括号。Ctrl + N:

2025-02-08 10:58:26 2324

原创 什么是预编译语句呢???为什么它可以预防SQl注入???

预编译语句是Java中处理SQL语句的一种安全、高效的方式。它通过参数化查询,避免了SQL注入攻击,同时提高了性能和代码的可维护性。在实际开发中,强烈建议使用来执行SQL语句。最后,也欢迎屏幕前大佬们的修改意见或补充内容。!!

2025-02-07 19:57:07 450

原创 SQL注入是什么呢???

SQL注入是一种常见的网络安全攻击手段,攻击者通过在应用程序的输入框中插入恶意的SQL代码,从而干扰或篡改数据库的正常查询逻辑,获取敏感数据、篡改数据或执行其他恶意操作。

2025-02-07 19:47:51 412

原创 ajax异步交互优势

AJAX异步交互技术具有许多显著的优势,这些优势使其成为现代Web开发中不可或缺的一部分,尤其是在构建动态、高效和用户友好的网页应用时。

2025-02-07 11:36:13 389

原创 什么是Ajax???Ajax的简介

Ajax是“”的缩写,即“异步的JavaScript和XML它是一种在2005年被提出的术语,用于描述一种现有的技术方法。通过Ajax,我们可以实现无需重新加载整个页面即可与服务器进行数据交互和更新页面内容,从而为用户提供更流畅的交互体验。Ajax作为一种重要的Web开发技术,极大地提升了用户体验和开发效率。然而,它也有其自身的优缺点。在实际开发中,我们需要充分了解这些特点,并结合其他技术,如服务器端渲染等,来实现最佳的开发效果。未来,随着新技术的不断涌现,Ajax技术也会不断发展和演变。

2025-02-07 11:31:23 1106

原创 为什么说控制反转IOC可以节约内存空间

例如,如果一个类依赖于多个其他类,Spring容器会统一管理这些依赖关系,而不是让每个类自行创建依赖对象。但如果将Bean设置为懒加载,Spring容器会在第一次使用时才初始化该Bean,从而节省了启动时的内存占用。如果一个类被频繁使用,但每次使用都创建一个新的实例,会导致大量的内存占用。通过单例模式,Spring容器确保每个Bean类只有一个实例,从而减少了不必要的内存占用。然而,在某些情况下,使用IoC容器(如Spring)管理对象可能会带来一些间接的内存优化效果。,Spring都会复用同一个实例。

2025-02-05 15:29:53 867

原创 控制反转是什么???

IoC(控制反转)是一种设计原则,用于将对象的创建和依赖关系的管理交给外部容器来完成,而不是由对象自身来完成。IoC(Inversion of Control,控制反转)是一种设计原则,用于降低代码之间的耦合度,提高代码的可维护性和可扩展性。依赖注入是IoC的一种实现方式,也是Spring框架中主要的实现方式。这样,对象只需要声明自己的依赖关系,而具体的创建和管理由外部容器负责。在传统的编程模式中,对象的创建和依赖关系的管理通常是由对象自身来完成的。的实现,只需在Spring配置中修改Bean的定义即可。

2025-02-05 15:26:01 1047

原创 继承,多态

2024-08-18 19:45:01 154

原创 java 类与对象、构造器、变量

2024-08-18 12:31:04 368

原创 java 内存笔记

内存(0817)

2024-08-17 22:33:55 232

原创 JavaScript 基础

④根据选择器获取元素 document.querySelector("css的选择器")返回符合条件的第一个对象 document.querySelectorAll("css选择器") 返回所有符合条件的对象组成的数组。③函数:(关键字function):1.命名函数:function 方法名(参数列表){函数体} 2.匿名函数:var aa = function (参数列表){函数体}②自定义属性:获取(obj.getAttribute("值") )设置(obj.setAttribute("属性")

2024-06-04 21:25:49 410

原创 CSS 基础

⑤ justify-content 控制弹性盒子内子元素的分布方式 其值 flex-start (代表子元素分布在开始位置)center(表示子元素分布在中间位置)flex-end(代表子元素分布在结束位置) space-between(代表空白元素均匀分布在元素之间)space-around(代表空白元素均匀分布在元素左右两侧,边界处占一份,元素之间占两份)space-evenly(表示空白元素均匀分散):nth-last-of-type(1) 和 :last-of-type 一样。

2024-06-04 21:11:19 874

原创 HTML 基础

先用 a 标签 和 name 标签埋一个目标点,然后用另一个 a 标签和 herf="#+name" 属性 设置用来跳转的点。2、target:_self 默认的,在自己窗口打开;属性:min:最小时代表的值;3、width:设置宽度 high:设置高 只设置宽或高时,另一个会按原始的比例自动设置。属性:min:最小时代表的值;叔侄关系:分别在一个大文件夹下和大文件夹内的一个小文件夹内。4、thead:表格的头(包起来的那一行会呈现在页面的上面,不会再按照顺序依次呈现)

2024-05-29 15:19:39 321

空空如也

空空如也

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

TA关注的人

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