- 博客(68)
- 收藏
- 关注
转载 Java对象深拷贝详解(List深拷贝)
方式优点缺点构造函数1. 底层实现简单 2. 不需要引入第三方包 3. 系统开销小 4. 对拷贝类没有要求,不需要实现额外接口和方法1. 可用性差,每次新增成员变量都需要新增新的拷贝构造函数重载clone()方法1. 底层实现较简单 2. 不需要引入第三方包 3. 系统开销小追求性能的可以采用该方式1. 可用性较差,每次新增成员变量可能需要修改clone()方法 2. 拷贝类(包括其成员变量)需要实现Cloneable接口Apache Commons Lang序列化。
2025-01-12 20:58:06
841
原创 关于Java数组操作函数
通过 Java Util 类的 Array.fill(arrayname,value) 方法和 Array.fill(arrayname ,starting index ,ending index ,value) 方法向数组中填充元素。通过 List 类的 Arrays.toString () 方法和 List 类的 list.Addall(array1.asList(array2) 方法将两个数组合并为一个数组。binarySearch() 方法来查找数组中的元素,返回该元素所在的位置。
2025-01-12 20:46:39
465
原创 Java字符串常用操作(方法)
创建一个String对象,并初始化一个值。String类是不可改变的,一旦创建了一个String对象,它的值就不能改变了。如果想对字符串做修改,需要使用类。char为字符类型,String为字符串类型String字符串是用" "来包含串的, char是用’ '来包含单字符的String内部用来存储的结果是一个char字符数组。
2025-01-12 20:43:30
779
原创 Java ArrayList
此外,BigInteger、BigDecimal 用于高精度的运算,BigInteger 支持任意精度的整数,也是引用类型,但它们没有相对应的基本类型。Collections 类也是一个非常有用的类,位于 java.util 包中,提供的 sort() 方法可以对字符或数字列表进行排序。ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 中的元素实际上是对象,在以上实例中,数组列表元素都是字符串 String 类型。
2025-01-12 20:22:20
648
原创 强化学习简介
强化学习并不是某一种特定的算法,而是一类算法的统称。它的核心思想是,如果某种策略能够带来较高的得分或奖励,那么就进一步“强化”这种策略,以期望在未来继续取得好的结果。换句话说,强化学习是一种学习如何从状态映射到行为以使得获取的奖励最大的学习机制。这样的一个agent需要不断地在环境中进行实验,通过环境给予的反馈(奖励)来不断优化状态-行为的对应关系。因此,反复实验(trial and error)和延迟奖励(delayed reward)是强化学习最重要的两个特征。
2024-12-02 00:41:35
882
原创 @Cacheable加缓存导致的跳过校验 & self自调用
上面的代码在getData方法前面加了@Cacheable注解,实现了加缓存的操作;不过仔细梳理逻辑就会发现:当一次调用该方法请求数据;cache中没有数据,于是调用getData方法获取数据,并且将查到的数据存在缓存当中;当第二次查数据的时候,会直接从cache里面找数据,此时不会调用getData方法;因此也就直接跳过了校验。导致后面查找数据时不需要校验就可以直接从缓存里面获取数据。
2024-12-02 00:28:02
967
原创 Java项目中加缓存
1.更新频率低;但读写频率高的数据很适合加缓存;2.可以加缓存的地方很多:浏览器的缓存;CDN的缓存;服务器的缓存;本地内存;分布式远端缓存;
2024-11-28 01:58:39
466
原创 Java MySQL 连接
本章节我们为大家介绍 Java 如何使用 使用 JDBC 连接 MySQL 数据库。,解压后得到 jar 库文件,然后在对应的项目中导入该库文件。
2024-11-26 01:21:11
2039
原创 Java 反射(Reflection)
Java 反射(Reflection)是一个强大的特性,它允许程序在运行时查询、访问和修改类、接口、字段和方法的信息。反射提供了一种动态地操作类的能力,这在很多框架和库中被广泛使用,例如Spring框架的依赖注入。
2024-11-26 01:15:25
963
原创 JAVA深拷贝与浅拷贝
在Java语言里,当我们需要拷贝一个对象时,有两种类型的拷贝:浅拷贝与深拷贝。浅拷贝只是拷贝了源对象的地址,所以源对象的值发生变化时,拷贝对象的值也会发生变化。而深拷贝则是拷贝了源对象的所有值,所以即使源对象的值发生变化时,拷贝对象的值也不会改变。
2024-11-26 01:09:32
1116
原创 死锁的概念&死锁的预防与处理方案
死锁的预防是通过破坏产生死锁的必要条件之一,是系统不会产生死锁。简单方法是在系统运行之前就采取措施,即在系统设计时确定资源分配算法,消除发生死锁的任何可能性。该方法虽然比较保守、资源利用率低,但因简单明了并且安全可靠,仍被广泛采用。这是一种预先的静态策略。王道考研的老师在将安全序列的时候,举了一个银行给BAT三家公司借钱的例子用来引出银行家算法,很有意思。
2024-11-26 00:48:43
1355
原创 RabbitMQ代码实战2
confirm模式大的好处在于他是异步的,一旦发布一条消息,生产者应用程序就可以在等信道返回 确认的同时继续发送下一条消息,当消息终得到确认之后,生产者应用便可以通过回调方法来处理该 确认消息,如果RabbitMQ因为自身内部错误导致消息丢失,就会发送一条nack消息,生产者应用程序 同样可以在回调方法中处理该nack消息。如果消息和队列时可以持久化的,那么确认消息会将消息写入磁盘后发出。总结:使用事务,可以在发送请求但是没有提交事务前回滚事务,撤回发送的消息。如何确定消息队列收到了生产者发送的消息?
2024-11-26 00:42:29
784
原创 RabbitMQ 消息队列
RabbitMQ 是一个开源的消息代理和队列服务器,它支持多种消息协议,包括 AMQP(高级消息队列协议),MQTT,STOMP 等。RabbitMQ 被广泛用于异步消息处理、事件驱动架构、微服务架构等场景。RabbitMQ 提供了灵活的路由功能、高可用性、持久化、集群和多种语言的客户端库,使其成为构建复杂消息传递系统的理想选择。
2024-11-25 00:33:49
1460
转载 kafka&消息队列
当今社会各种应用系统诸如商业、社交、搜索、浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临如下几个挑战:如何收集这些巨大的信息如何分析它如何及时做到如上两点以上几个挑战形成了一个业务需求模型,即生产者生产(produce)各种信息,消费者消费(consume)(处理分析)这些信息,而在生产者与消费者之间,需要一个沟通两者的桥梁-消息系统。从一个微观层面来说,这种需求也可理解为不同的系统之间如何传递消息。由 linked-in 开源。
2024-11-17 10:49:32
44
原创 R语言基于决策树的银行信贷风险预警模型 附数据代码
决策树(Decision Tree)是用于分类和预测的主要技术,它着眼于从一组无规则的事例推理出决策树表示形式的分类规则,采用自顶向下的递归方式,在决策树的内部节点进行属性值的比较,并根据不同属性判断从该节点向下分支,在决策树的叶节点得到结论。因此,从根节点到叶节点就对应着一条合理规则,整棵树就对应着一组表达式规则。决策树是数据分析中一种经常要用到且非常重要的技术,既能够用于数据分析,也能够作预测。
2024-11-08 00:56:06
913
原创 Python信贷风控模型:梯度提升Adaboost,XGBoost,SGD, GBOOST, SVC,随机森林, KNN预测金融信贷违约支付和模型优化 附数据代码
保持两者之间的平衡。从上图可以明显看出,与其他模型相比,Adaboost和XGboost花费的时间少得多,而其他模型由于SVC花费了最多的时间,原因可能是我们已经将一些关键参数传递给了SVC。因此,我们已经看到,调整后的Adaboost的准确性约为82.95%,并且在所有其他性能指标(例如F1分数,Precision,ROC和Recall)中也取得了不错的成绩。2005年9月的还款状态(-1 =正常付款,1 =延迟一个月的付款,2 =延迟两个月的付款,8 =延迟八个月的付款,9 =延迟9个月以上的付款)
2024-11-08 00:55:30
1024
原创 Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户附数据代码
最近我们被客户要求撰写关于银行拉新活动的研究报告,包括一些图形和统计输出。项目背景:银行的主要盈利业务靠的是贷款,这些客户中的大多数是存款大小不等的责任客户(存款人)。银行拥有不断增长的客户该银行希望增加借款人(资产客户),开展更多的贷款业务,并通过贷款利息赚取更多利润。因此,银行希望将负债的客户转换为个人贷款客户。(同时保留他们作为存款人)。该银行去年针对负债客户开展的一项活动显示,成功实现了9%以上的成功转化率。该部门希望建立一个模型,来帮助他们确定购买贷款可能性更高的潜在客户。
2024-11-07 20:59:02
1369
原创 银行信贷风控专题:Python、R 语言机器学习数据挖掘应用实例合集:xgboost、决策树、随机森林、贝叶斯等
原创 拓端研究室全文链接:https://tecdat.cn/?p=38026本银行信贷风控专题合集将通过代码和数据案例深入探讨这些金融场景中的问题与解决方案,通过对数据的深入分析、模型的构建与优化,为金融机构提供有效的风险管控策略,以促进金融市场的稳定与健康发展。
2024-11-07 20:58:24
808
原创 NSGA-II算法求解多目标优化问题
向量支配对于最小化问题,一个向量u=(u1,u2…un)支配另一个向量v=(v1,v2…vn),当且仅当ui≤vi。
2024-10-28 00:35:07
2256
1
原创 多目标优化求解的内涵&主要方法
minfxf1xf2x⋯fnx)]1其中,fix∀i1⋯n表示多个目标函数。通过非负加权求和把上面多目标优化转化为单目标问题,minJxw1f1xw2f2x⋯wnfx2优化问题(1)就是多目标优化问题,优化问题(2)就是单目标优化。
2024-10-27 22:57:23
1146
原创 JDK安装与环境变量配置
我们以jdk17为例,因为它是长期支持版,也就是Oracle官方会长期维护该版本的问题及优化。选择与电脑操作系统适配的版本即可,我个人选择的是windows下的JDK,对应选择图中第二个下载链接。安装过程中按照说明指示就OK,可以选择自定义安装路径,也可以选择默认安装路径;由于JDK本身并没有占太大的存储空间,因此默认安装在C盘也是完全可以接受的。以上步骤完成,我们就在个人主机上成功安装了JDK;环境变量的配置我们放到后面部分进行进一步说明;
2024-10-25 17:48:37
593
原创 机器学习之 AdaBoost(Adaptive Boosting)
AdaBoost的基本思想是迭代地训练一系列弱分类器,每个弱分类器针对训练数据集进行训练,并根据上一个弱分类器的结果对数据进行加权。在每一轮迭代中,AdaBoost都会关注上一轮分类错误的样本,尝试通过调整权重使得这些样本在下一轮分类中得到更好的处理。最终,将这些弱分类器组合成一个强分类器,其性能优于单个弱分类器。
2024-10-24 16:54:01
799
原创 移除元素(算法题分享)
给你一个数组nums和一个值val,你需要移除所有数值等于val的元素。元素的顺序可能发生改变。然后返回nums中与val不同的元素的数量。假设nums中不等于val的元素数量为knumsnumskvalnumsnumsk如果所有的断言都通过,你的解决方案将会。
2024-10-08 17:01:55
554
1
原创 大数据分析入门概述
本文旨在为有意向学习数据分析、数据开发等大数据方向的初学者提供一个学习指南,当然如果你希望通过视频课程的方式快速入门,B站UP主戴戴戴师兄的课程质量很高,并且适合初学者快速入门。本文的目的旨在为想要了解大数据但不知道该学习什么内容的初学者介绍大数据相关的各类工具以及各项技能。后续会按照本文提到的关键字逐条更新更详细的内容以及具体案例。SQL(Structured Query Language)是一种标准化的编程语言,用于管理关系数据库管理系统(RDBMS),如MySQL、PostgreSQL、Oracle、
2024-10-04 12:59:32
3611
原创 有监督学习&无监督学习
监督学习是通过已知的输入和输出数据样本,来学习一个确定性函数或概率分布模型的方法。在监督学习中,输入和输出变量都是已知的,同时,学习器的输出也必须与人工给定的真实结果一致。监督学习通常可分为两类:回归问题和分类问题。回归问题是指对连续值的预测问题,比如预测房价、股票价格等;分类问题是指对离散值的预测问题,比如判断一封邮件是否为垃圾邮件、预测肿瘤是否为恶性等。
2024-10-01 01:08:41
3788
原创 分享两道算法题
部门准备举办一场王者荣耀表演赛,有 10 名游戏爱好者参与,分 5 为两队,每队 5 人。每位参与者都有一个评分,代表着他的游戏水平。为了表演赛尽可能精彩,我们需要把 10 名参赛者分为实力尽量相近的两队。一队的实力可以表示为这一队 5 名队员的评分总和。现在给你 10 名参与者的游戏水平评分,请你根据上述要求分队最后输出这两组的实力差绝对值。
2024-09-22 00:44:02
649
原创 2023国赛C题 蔬菜类商品的自动定价与补货决策(上)
问题1主要的代码和思路在上一篇文章“数学建模实战块速入门”中已经进行了较为详细的展示,在问题一种要求我们从蔬菜单品和品类两个维度去分析各自之间的关系。我们采用的方法便是计算对应单品或者品类之间的相关系数;主要的相关系数有或者**(Pearson)皮尔逊相关系数**等。;
2024-09-21 18:13:21
1628
3
原创 动态规划(三)& 代码实战篇
斐波那契数列是一个每一项都是前两项和的数列,定义为:F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) 对于所有 n > 1。这段代码首先定义了一个函数fibonacci,它接受一个整数n作为参数,表示要计算的斐波那契数列的项数。然后,它使用一个列表dp来存储已经计算出的斐波那契数,避免了重复计算。通过迭代的方式,它填充了这个列表,最终返回了第n项的值。
2024-08-29 10:10:55
1206
原创 动态规划(一)
动态规划是运筹学的一个分支,是求解多阶段决策过程最优化问题的数学方法。动态规划在经济管理、工程技术、工农业生产及军事部门中都有着广泛的应用,并且获得了显著的效果。学习动态规划,我们首先要了解多阶段决策问题。最短路径问题:背包问题:生产决策问题**:企业在生产过程中,由于需求是随时间变化的,因此企业为了获得全年的最佳生产效益,就要在整个生产过程中逐月或逐季度地根据库存和需求决定生产计划。机器负荷分配问题:某种机器可以在高低两种不同的负荷下进行生产。要求制定一个五年计划,在每年开始时,决定如何重新分配完好的机器
2024-08-21 23:54:06
1284
转载 遗传算法原理与实战(python、matlab)
遗传算法(Genetic Algorithm,简称GA)是一种基于生物进化论和遗传学原理的全局优化搜索算法。它通过模拟自然界中生物种群的遗传机制和进化过程来解决复杂问题,如函数优化、组合优化、机器学习等。遗传算法具有并行性、全局搜索能力和对问题描述的简单性,在很多领域有着广泛应用。
2024-08-19 17:32:47
1796
转载 蚁群算法原理与实战(Python、MATLAB、C++)
(1)初始化参数:epochs表示迭代次数,ants表示蚂蚁数量,alpha和beta是信息素重要程度的参数,rho是信息素挥发速度,Q是信息素强度常数。(2)计算城市之间的距离矩阵:使用numpy的linalg.norm函数计算每对城市之间的欧几里得距离,并将结果存储在Distance矩阵中。(3)初始化信息素矩阵Tau:将所有元素设置为1.0。(4)初始化每只蚂蚁的路线图Route:创建一个ants x cities的零矩阵,表示每只蚂蚁访问过的城市。
2024-08-19 15:32:41
1957
原创 模拟退火算法
模拟退火算法(Simulated Annealing, SA)是一种基于概率的启发式搜索算法,其灵感来源于固体材料的退火过程。该算法通过模拟物理退火过程中的降温来逐步寻找到问题的全局最优解。SA算法在解决组合优化问题时具有显著的优势,特别是在处理具有多个局部最优解的复杂问题时。算法的关键在于如何控制温度的下降速率以及如何设计初始温度和终止温度,这些参数直接影响算法的性能和最终解的质量。
2024-08-16 15:57:35
1715
原创 时间序列分析详解
简单平均法简单平均法就是预测的值为之前过去所有值的平均.当然这不会很准确,但这种预测方法在某些情况下效果是最好的。移动平均法我们经常会遇到这种数据集,比如价格或销售额某段时间大幅上升或下降。如果我们这时用之前的简单平均法,就得使用所有先前数据的平均值,但在这里使用之前的所有数据是说不通的,因为用开始阶段的价格值会大幅影响接下来日期的预测值。因此,我们只取最近几个时期的价格平均值。很明显这里的逻辑是只有最近的值最要紧。这种用某些窗口期计算平均值的预测方法就叫移动平均法。指数平滑法。
2024-08-15 15:27:26
1771
原创 k-means聚类算法&k-means++聚类算法
是按照某个特定标准(如距离)把一个数据集分割成不同的类或簇,使得。也就是说,聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。
2024-08-14 00:10:28
2961
原创 聚类算法&k-means聚类
判别分析方法假定组(或类)已事先分好,判别新样品应归属哪一组,对组的事先划分有时也可以通过聚类分析得到。**聚类分析:**将分类对象分成若干类,相似的归为同一类,不相似的归为不同的类。聚类分析分为(分类对象为样品)和(分类对象为变量)两种。
2024-08-14 00:09:19
1192
《数据结构》的全部代码实现(C语言)(包含pdf、源码等).zip
2024-07-17
无水印:美赛2024年特等奖论文.zip
2024-07-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人