自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot3.2 Proguard代码混淆优化

经过以上步骤,就大致完成了一个SpringBoot Starter的代码混淆。

2024-06-04 14:02:26 391

原创 探索Java深拷贝:从基础到高效实现

探索Java深拷贝:从基础到高效实现在Java中,深拷贝是创建对象副本的过程,同时复制其所有嵌套对象和引用类型的字段。正确实现深拷贝对于确保数据一致性和避免副作用至关重要。在本文中,将探讨几种常见的深拷贝方法,分析它们的实现原理及各自的优缺点。1. 使用Cloneable接口和Object.clone()方法实现原理: Java提供了一个原生的克隆机制,通过实现Cloneable接口并重写Object类的clone()方法,可以创建对象的浅拷贝。为了实现深拷贝,需要在clone()

2024-06-04 14:01:37 908

原创 如何创建一个线程池,为什么不推荐使用Executors去创建呢?

而CachedThreadPool使用的是同步队列 SynchronousQueue, 允许创建的线程数量也为 Integer.MAX_VALUE ,如果任务数量过多且执行速度较慢,可能会创建大量的线程,从而导致 OOM,其他的方法所提供的均是这种。通过 Executor 框架的工具类 Executors 来创建(不推荐)    Executors 是java并发工具包中的一个静态工厂类,在JDK1.5时被创造出来,提供了丰富的创造线程池的方法,通过它可以创建多种类型的线程池。

2024-06-03 14:53:33 389

原创 【重写SpringFramework】第一章beans模块:依赖注入(chapter 1-7)

上一节我们讲了环境变量的解析,执行的是字段注入的流程,但这并不是通常意义上的依赖注入,关键在于缺少了筛选的过程。换句话说,环境变量的解析只是字段注入的特殊情况,注入的值来自环境变量而不是 Spring 容器所管理的单例。为了便于理解,我们可以把依赖解析的过程看作是一场招聘会。Spring 容器作为组织者,发布了大量工作岗位,容器中的所有单例都尝试投递简历。每个工作岗位的基本要求是符合指定的类型,只有一部分单例可以通过初轮筛选,进入面试环节。面试的要求会更加具体,最终只有一个优胜者的依赖项。候选项。

2024-06-03 14:52:51 1008

原创 gorm 基本使用 2

go复制代码对应的sql语句sql复制代码go复制代码。

2024-05-30 21:33:32 655

原创 NumPy 均匀分布模拟及 Seaborn 可视化教程

均匀分布是一种连续概率分布,表示在指定范围内的所有事件具有相等的发生概率。它常用于模拟随机事件,例如生成随机数或选择随机样本。逻辑分布,也称为Logistic分布,是一种连续概率分布,常用于建模具有 S 形增长特征的现象,例如生物种群增长、疫情发展等。它在机器学习中也具有广泛的应用,例如逻辑回归、神经网络等。

2024-05-30 21:33:01 411

原创 SurfaceView与TextureView的绘制渲染

SurfaceView的初始化流程发生在首次绘制前。

2024-05-29 21:15:11 1035

原创 Spring AOP应用

这三个是我们写代码看得见摸得着的:通知(Advice): AOP 框架中的增强处理。通知描述了切面何时执行以及如何执行增强处理。​ (BeforeAdvice 前置通知,AfterAdvice 后置通知等,这些就是通知。切入点(PointCut): 可以插入增强处理的连接点。切面(Aspect): 切面是通知和切点的结合。这三个说实话,不看源码,都是在瞎说:连接点(JoinPoint): 连接点表示应用执行过程中能够插入切面的一个点,这个点可以是方法的调用、异常的抛出。

2024-05-29 21:14:19 727

原创 【快速了解JAVA多态的详细知识(多态调用成员变量和方法讲解超详细版)】

今天我们要讲解的是面向对象语言三大特征之一的多态。多态是具有表现或的能力。多态性是对象多种表现形式的体现。比如我们说"宠物"这个对象,它就有很多不同的表达或实现,比如有小猫、小狗、蜥蜴等等。那么我到宠物店说"请给我一只宠物",服务员给我小猫、小狗或者蜥蜴都可以,我们就说"宠物"这个对象就具备多态性。接下来让我们了解多态的表现形式。ini复制代码由上面的例子可知 猫这个对象具有多态的性质,他可以作为宠物这个形态也可以作为猫这个形态。那么我们可以想想为什么猫可以有多态呢。

2024-05-28 21:25:51 712

原创 go-zero 连接 gorm 并提供 api 接口

两个目录,说明已经对不同的功能进行了分组`````````````````````````````````````````如果一个服务有很多的接口,就需要按照功能进行分组,不然会很难管理。中增加数据库的连接方式,这里的。服务,服务之间的通信可以使用。运行命令,只需在命令的最后加上。写一个公共的方法,用来连接数据库。然后就可以表写相关的业务逻辑了。业务逻辑没啥好说的,就是调用。中的相关方法完成业务逻辑了。服务对给外部使用的,一般用。这里记录一下,参数的获取方法。的文件夹,用来管理数据库。

2024-05-27 19:58:28 789 1

原创 探索MoonDream:一个小型但强大的视觉语言模型

在人工智能的快速进展中,视觉语言模型正成为理解和叙述视觉信息的关键工具。MoonDream,一个拥有16亿参数的小型视觉语言模型,凭借其出色的性能和易用性,正迅速成为开发者和爱好者的热门选择。MoonDream的基本概念在于它能够解码、审查和叙述视觉信息,为那些希望理解图像深层含义的人们提供了一种新的视角。它可以在各种设备上运行。这意味着,无论您是艺术家、开发者还是普通用户,MoonDream都能够帮助您将视觉数据转化为有意义的语言。为什么应该关注MoonDream?

2024-05-27 19:57:56 691

原创 深入解析Linux UDP多播机制

在网络通信中,多播是一种高效的传输方式,允许一个发送者将数据包发送给多个接收者。相比于传统的单播(点对点通信)和广播(网络中所有节点接收),多播只将数据包发送给特定的一组订阅接收者,从而显著提高了网络效率和性能。通过理解并应用Linux中的UDP多播机制,可以显著提高应用程序的性能和网络效率。多播技术特别适用于需要将数据传输给多个接收者的实时应用,如视频流、音频流和其他需要广泛分发数据的场景。多播使用的是一组特殊的IP地址,称为多播地址。为了接收多播数据包,接收端必须加入一个多播组。

2024-05-24 14:12:24 277

原创 Activiti架构解析

Activiti工作流引擎架构大致分为6层,如图所示。从上到下依次为工作流引擎层、部署层、业务接口层、命令拦截层、命令层和行为层。工作流引擎层:主要指ProcessEngine接口,这是Activiti所有接口的总入口。部署层:包括DeploymentBuilder和BpmnModel等与流程部署相关的类。理论上,部署层并不属于Activiti引擎架构的分层体系。将其单独拿出来作为一层,只是为了突出其重要性。流程运转基于流程定义,而流程定义解析就是流程的开始。

2024-05-24 14:11:28 881

原创 2025Java面试八股文(背诵版)

double 和 long 都是64位宽,因此对这两种类型的读是分为两部分的,第一次读取第一个 32 位,然后再读剩下的 32 位,这个过程不是原子的,但 Java 中 volatile 型的 long 或 double 变量的读写是原子的。意思就是说,在你写一个 volatile 域时,能保证任何线程都能看到你写的值,同时,在写之前,也能保证任何数值的更新对所有线程是可见的,因为内存屏障会将其他所有写的值更新到缓存。甚至有的 JVM,如 Azul,堆内存到 1000G 都是可能的。

2024-05-23 17:06:52 1192

原创 Java面试八股文合集(持续更新)

我们使用java编译命令就能将java源文件编译对应成字节码文件(.class),字节码文件是一种八位数据的二进制流文件,可以被JVM快速加载到内存中运行。

2024-05-23 17:06:04 1014

原创 Spring Boot Web 开发:MyBatis、数据库连接池、环境配置与 Lombok 全面解析

例如,如果我们需要使用 MySQL 数据库,那么我们需要在 application.properties 文件中配置数据库连接信息,在 pom.xml 文件中添加 MySQL 的依赖。5.0 application 属性文件数据库连接的信息与 pom XML文件的依赖 在 Spring Boot 中,application.properties 文件用于配置应用程序的属性信息,包括数据库连接信息、日志级别、服务器端口等。2.0 数据库连接池 在实际的项目中,数据库连接是一个非常宝贵的资源。

2024-05-23 17:02:23 919

原创 排查日志困难?阿里云 SLS+TraceID 教你一招鲜吃遍天

java复制代码} }java复制代码" : "";} }

2024-05-22 20:27:49 1063

原创 Kubernetes 之 Service

是为了管理具有相同功能的一组Pod而定义的一种对象,Service具PodPodServiceIPPodIPServicekube-proxyPod。

2024-05-21 16:10:47 791

原创 Spring异步注解@Async,@EnableAsync底层源码分析

Spring实现Aop,首先是需要对应的Advisor,里面就包含了对应的pointCut和advice,其中pointCut就是对应的切点,advice对应了代理的逻辑(这里对于SpringAop我就不详细讲述了,如果感兴趣可在评论区留言,我出一篇关于Aop原理的文章)。那么就不需要创建了代理对象了,只需要看当前的这个对象是不是满足pointCut,也就是当前的这个对象里面的方法有没有加@Async注解,如果加了,那么就表示当前这个对象里面的方法需要代理拦截,那么就添加advisor即可。

2024-05-21 16:05:48 392

原创 2024Java八股文超精炼面试题资料

今天为大家整理了目前互联网出现率最高的大厂面试题,所谓八股文也就是指文章的八个部分,文体有固定格式:由破题、承题、起讲、入题、起股、中股、后股、束股八部分组成,题目一律出自四书五经中的原文。而JAVA面试八股文也就是为了考验大家的JAVA基础功底,所以强烈建议背诵全文。线程池就是提前创建若干个线程,如果有任务需要处理,线程池里的线程就会处理任务,处理完之后线程并不会被销毁,而是等待下一个任务。由于创建和销毁线程都是消耗系统资源的,所以当你想要频繁的创建和销毁线程的时候就可以考虑使用线程池来提升系统的性能。

2024-05-19 03:43:30 785

原创 使用 Koa 实现用户注册与数据验证

通过以上步骤,我们实现了一个基本的用户注册功能,包括数据验证和邮箱唯一性检查,并将用户数据保存到数据库中。使用 Koa 和 Joi,我们能够快速构建出安全且功能完善的用户注册系统。

2024-05-19 03:42:06 321

原创 一次惨痛的面试:“网易提前批,我被虚拟线程问倒了”

那么什么是虚拟线程呢?在搞清楚这个定义之前,我们先来了解一下普通线程,基于过往的学习积累,我们知道JVM 是一个多线程环境,它通过 java.lang.Thread 为我们提供了对操作系统线程(OS线程)的抽象,但是 Java 中的线程都只是对操作系统线程的一种简单封装,我们可以称之为“平台线程(platform thread)”,平台线程在底层 OS 线程上运行 Java 代码,并在代码的整个生命周期中占用该 OS 线程,因此平台线程的数量受限于 OS 线程的数量。

2024-05-19 03:41:17 673

原创 全网最全JAVA面试八股文,终于整理完了

又到面试跳槽季,你准备好了吗?今天为大家整理了目前互联网出现率最高的大厂面试题,所谓八股文也就是指文章的八个部分,文体有固定格式:由破题、承题、起讲、入题、起股、中股、后股、束股八部分组成,题目一律出自四书五经中的原文。而JAVA面试八股文也就是为了考验大家的JAVA基础功底,所以强烈建议背诵全文。线程池就是提前创建若干个线程,如果有任务需要处理,线程池里的线程就会处理任务,处理完之后线程并不会被销毁,而是等待下一个任务。

2024-05-16 17:14:00 1029

原创 架构师之道:你的需求是什么,你要实现什么

在开展系统架构设计之前,关键是要确保业务需求明确无异议,各部门针对需求达成一致。这就意味着,在系统需求分析阶段,必须明确界定系统的功能和业务范畴,同时充分理解系统运营的各项需求。如果这些基本需求还没有确定下来,便着手进行架构设计是不合时宜的。在这种情况下,我们需要退回到需求分析阶段,彻底完善这些需求,然后才能适时开展架构设计工作。系统架构设计的核心在于模型图的构建。这些模型图不仅有助于我们理解整个系统,也是与各方沟通的重要工具。为了确保不同的干系人都能理解这些架构,必须提供适合他们背景和理解能力的模型图。干

2024-05-16 17:01:16 392

转载 debug技巧之远程调试

今天给大家分享一下我平时是怎么调试代码的,不是权威也不是教学,就是简单分享一下,如果大家还有更好的调试方式也可以多多交流哦。当我们的应用发布到线上之后,就不能随意启停了,但如果线上出现了BUG怎么办呢?大多数时候我们会借助线上打印的日志进行排查问题,如果幸运的话很快就可以定位到问题,但不幸的话就麻烦了。首先出错的地方可能根本没有打印日志或者日志打印不全,其次有可能本地是好好的但线上就是不行,总之倒霉的时候喝凉水都塞牙。。。

2024-05-16 16:59:19 313

原创 Java八股文超精炼面试题资料

今天为大家整理了目前互联网出现率最高的大厂面试题,所谓八股文也就是指文章的八个部分,文体有固定格式:由破题、承题、起讲、入题、起股、中股、后股、束股八部分组成,题目一律出自四书五经中的原文。而JAVA面试八股文也就是为了考验大家的JAVA基础功底,所以强烈建议背诵全文。线程池就是提前创建若干个线程,如果有任务需要处理,线程池里的线程就会处理任务,处理完之后线程并不会被销毁,而是等待下一个任务。由于创建和销毁线程都是消耗系统资源的,所以当你想要频繁的创建和销毁线程的时候就可以考虑使用线程池来提升系统的性能。

2024-05-14 20:29:21 1050

原创 Java内存区域与内存溢出异常

在语言层面上,创建对象通常(例外:复制、反序列化)仅仅是一个new关键字,而在虚拟机中对象(普通Java对象)的创建会经历一个复杂的过程。

2024-05-14 20:25:09 852

原创 2024年精选推荐的16个向量数据库:提升你的AI应用性能

随着人工智能技术的不断进步,向量数据库在现代数据管理和机器学习应用中扮演着越来越重要的角色。它们提供了处理和检索高维向量数据的能力,这对于构建高效的AI模型和搜索引擎至关重要。上述探讨了16个2024年最值得关注的向量数据库,这些数据库在性能、可扩展性、易用性和特定应用场景的支持方面各有特色。无论是在寻找一个托管的解决方案还是一个可以自托管的开源项目,无论需求是处理图像、文本还是其他类型的数据,这些向量数据库都能提供支持。

2024-05-14 20:24:38 1908

原创 Java基础八股文(背诵版)

运行时多态的实现:主要依靠方法表,方法表中最先存放的是 Object 类的方法,接下来是该类的父类的方法,最后是该类本身的方法。因此可以实现运行时多态。覆盖:覆盖是指派生类重写基类的方法,使用基类指向其子类的实例对象,或接口的引用变量指向其实现类的实例对象,在程序调用的运行期根据引用变量所指的具体实例对象调用正在运行的那个对象的方法,即需要到运行期才能确定调用哪个方法。继承:对象的一个新类可以从现有的类中派生,派生类可以从它的基类那继承方法和实例变量,且派生类可以修改或新增新的方法使之更适合特殊的需求。

2024-05-13 21:49:59 896

原创 Django 安全性与防御性编程:如何保护 Django Web 应用

使用 Django ORM 提供的查询方法,如。

2024-05-13 21:42:24 849

原创 NumPy 数组复制与视图详解

为了方便其他设备和平台的小伙伴观看往期文章:,关注后即可获取最新文章推送。

2024-05-13 21:41:16 295

原创 Java基础八股文(背诵版)

Java 反射机制是指在程序的运行过程中可以构造任意一个类的对象、获取任意一个类的成员变量和成员方法、获取任意一个对象所属的类信息、调用任意一个对象的属性和方法。运行时多态的实现:主要依靠方法表,方法表中最先存放的是 Object 类的方法,接下来是该类的父类的方法,最后是该类本身的方法。覆盖:覆盖是指派生类重写基类的方法,使用基类指向其子类的实例对象,或接口的引用变量指向其实现类的实例对象,在程序调用的运行期根据引用变量所指的具体实例对象调用正在运行的那个对象的方法,即需要到运行期才能确定调用哪个方法。

2024-05-12 14:15:35 1012

原创 Java面试八股文合集(持续更新)

我们使用java编译命令就能将java源文件编译对应成字节码文件(.class),字节码文件是一种八位数据的二进制流文件,可以被JVM快速加载到内存中运行AQS全称abstractQueueSynchronizer,即抽象队列同步器,是一种锁机制,它是作为一个基础框架使用的,像Reentrantlock,countdownlatch都是基于AQS实现的AQS内部维护了一个先进先出的双向队列,队列中存储了排队的线程。

2024-05-12 14:12:07 1001

原创 SpringBoot3集成WebSocket

WebSocket通过一个TCP连接在客户端和服务器之间建立一个全双工、双向的通信通道,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据,在WebSocket的API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。yaml复制代码。

2024-05-12 14:04:32 265

原创 go: 探讨统计随机性与密码随机性及其go实现

统计随机性是指一个随机数序列在统计学上的表现是否符合随机性标准。具体来说,这些随机数应该通过各种统计测试,如频率分布、独立性等,以确保它们在统计意义上接近于真正的随机数。密码随机性要求随机数序列不仅在统计上表现良好,还必须在预测性和抗攻击性上达到高标准。换句话说,密码随机性强调随机数的不可预测性和抗攻击性,确保它们适用于安全敏感的应用,如加密、密钥生成等。理解统计随机性和密码随机性对于选择合适的随机数生成器至关重要。统计随机性强调随机数的统计表现,而密码随机性则关注不可预测性和安全性。

2024-05-12 14:03:56 302

原创 【JDFrame系列】JVM层级的窗口函数使用

1、窗口函数的计算结果的存储有两种方式,一种是直接返回到FI2里, 一种是可以通过指定SetFunction 进行存储, 所有后缀带S的方法就是通过后者的方式的存储, 之所以带S后缀是为了以便于区分,并且是放到第一个方法参数里。2、除了可以通过单独的window()的方法去指定窗口信息,在每个over方法也可以了单独设置。没单独设置就使用window()方法里指定的窗口信息3、在不同窗口范围内的数据计算目前用的是各种滑动窗口算法,时间复杂度基本在O(N)左右代码地址Maven依赖地址。

2024-05-11 21:48:20 518

原创 深入理解SSL协议:从理论到实践

SSL(Secure Sockets Layer)是一种用于在网络上保护信息安全的标准安全技术。它通过对网络连接进行加密来确保数据在客户端和服务器之间的安全传输。SSL协议使用了非对称加密和对称加密技术,可以防止数据在传输过程中被窃取或篡改。SSL主要用于保护网站上的敏感信息,如个人信息、信用卡信息等。在现代网络通信中,SSL已经被其后继标准TLS(Transport Layer Security)所取代,但是通常情况下人们仍然称之为SSL。

2024-05-11 21:44:37 826

原创 探索Django:从项目创建到图片上传的全方位指南

通过本文,我们深入了解了 Django 框架的一些基本概念和使用方法,以及如何利用 Django 构建一个简单的图像上传应用程序。从项目创建到环境配置,再到 admin 端图像处理和用户图片上传,我们逐步学习了如何利用 Django 提供的功能快速搭建 Web 应用。无论是对于初学者还是有一定经验的开发者,掌握 Django 都能够帮助我们更高效地开发出高质量的 Web 应用。希望本文能够为您提供一些帮助和启发,让您更加深入地了解 Django,并能够在实际项目中运用所学知识。

2024-05-11 21:43:32 649

原创 Java面试题及答案整理( 2023年 6 月最新版,持续更新)

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。

2024-05-10 19:40:22 908

原创 Java经典面试题总结(附答案)

所谓反射,是java在运行时进行自我观察的能力,通过class、constructor、field、method四个方法获取一个类的各个组成部分。在Java运行时环境中,对任意一个类,可以知道类有哪些属性和方法。这种动态获取类的信息以及动态调用对象的方法的功能来自于反射机制。序列化就是一种用来处理对象流的机制。将对象的内容流化,将流化后的对象传输于网络之间。

2024-05-10 19:31:23 561

空空如也

空空如也

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

TA关注的人

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