
javaer
文章平均质量分 88
说好不能打脸
我没想过赢,我只是不想输
展开
-
评分模型在路网通勤习惯分析中的应用——启发式搜索(2)
最近一段时间和公司其它业务部门讨论时,发现一个有趣的交通路网问题,车辆从S点行驶到V点共用时40分钟,这段时间内路网中的卡口摄像头识别到了车辆通过的信息。设计师需要通过这些有限的路网数据,分析出当前车辆最可能的行驶路径,并且基于一段时间(1个月、2个月甚至3个月)内某车辆多个行驶路径样本,分析后得到车辆A的通勤习惯数据。本文内容主要针对上文提出的问题解决思路,详细讨论每一步骤中的具体处理措施。原创 2024-12-29 19:58:33 · 1066 阅读 · 0 评论 -
利用CRITIC客观权重赋权法进行数值评分计算——代码实现
之前的文章,我们详细介绍了利用CRITIC客观权重赋权法进行数值评分计算的详细过程(不清楚的读者可点击此处的传送门《》)。本篇文章我们展示CRITIC客观权重赋权法的主要实现代码。原创 2024-10-13 13:08:37 · 655 阅读 · 0 评论 -
利用CRITIC客观权重赋权法进行数值评分计算——算法过程
CRITIC客观评价法是一种基于指标的对比强度和指标之间的冲突性来确定指标客观权数的方法。 该方法适用于判断数据稳定性,并且适合分析指标或因素之间有着一定的关联的数据。CRITIC方法的基本原理包括两个主要概念:对比强度和指标之间的冲突性。对比强度表示同一指标各个评价方案取值差距的大小,通常以标准差的形式来表现。标准差越大,说明各方案的取值差距越大。指标之间的冲突性则基于指标之间的相关性,如果两个指标之间具有较强的正相关,说明两个指标冲突性较低。原创 2024-10-05 09:56:33 · 2078 阅读 · 1 评论 -
利用模糊综合评价法进行数值评分计算——代码实现
之前的文章,我们详细介绍了模糊评分法的具体计算过程。本篇文章我们展示模糊评分法的主要实现代码(Java版本,实际上Python、GoLang等逻辑是相同的,之后会提供GoLang版本的代码)。原创 2024-09-28 08:11:57 · 561 阅读 · 0 评论 -
利用熵权法进行数值评分计算——代码实现
之前的文章,我们详细介绍了熵权法的具体计算过程。本篇文章我们展示熵权法的主要实现代码(Java版本,实际上Python、GoLang等逻辑是相同的,之后会提供GoLang版本的代码)。原创 2024-09-22 11:39:01 · 514 阅读 · 0 评论 -
利用模糊综合评价法进行数值评分计算——算法过程
模糊综合评价法是一种基于模糊数学的综合评价方法,它通过模糊数学的隶属度理论将定性评价转化为定量评价,适用于解决复杂、难以量化的问题。该方法具有结果清晰、系统性强的特点,能够处理多种因素制约下的综合评价问题。如果读者的评分场景中,多个要素都只是遵循一些模糊的、主观的分数评定,那么就推荐使用这种方法进行评分计算。模糊综合评分法能够很好地处理决策问题中存在的模糊和不确定性,对于评价指标的权重和评价结果具有较好的灵活性和适应性。所以它适用于多因素、多级别和多目标的综合评价问题。原创 2024-09-15 10:35:33 · 1523 阅读 · 0 评论 -
利用熵权法进行数值评分计算——算法过程
在软件系统中,研发人员常常遇上需要对系统内的某种行为/模型进行评分的情况。例如根据系统的各种漏洞情况对系统安全性进行评分、根据业务员最近操作系统的情况对业务员工作状态进行打分等等。显然研发人员了解一种或者几种标准评分算法是非常有利于开展研发工作的。目前流行的评分方法有很多种,诸如wilson评分算法、模糊综合评价法、秩和比评分法等等,本文内容介绍一种容易理解和编码实现的评分算法——熵权评分法。熵权法是一种基于信息论的方法,其核心在于通过计算数据中的熵来评估数据的不确定性。原创 2024-09-09 19:49:05 · 4390 阅读 · 0 评论 -
Java我的2020年终盘点
这段时间一直在忙着工作上的事情和新书的筹备。但都2021年了,怎么都应该写一点,算不上总结回顾,只能算闲聊胡扯。2020年TIOBE’s对于各种编程语言排名情况的总结是:“Python is TIOBE’s Programming Language of 2020”。这无疑是对我自己这个写了20年Java程序的老屌丝相当有震撼力的一句话,曾几何时自己调侃delphi、调侃Ruby的样子和最近些年轮着自己被调侃的样子,是不是感觉是有些五味杂陈?Python的快速发展、Java的被赶超、Ruby的夕阳余晖有原创 2021-01-12 15:05:34 · 28012 阅读 · 55 评论 -
源码阅读(33):Java中线程安全的Queue、Deque结构——ArrayBlockingQueue(3)
一旦Itr迭代器完成初始化,就可以开始使用了。而使用迭代器最常见的方法就是使用hasNext()方法和next()方法进行配合。另外从JDK 1.8+开始,还可以使用Lambda表达式进行表达,最后ArrayBlockingQueue队列集合的迭代器还支持remove()方法的使用。原创 2020-04-30 20:33:38 · 2070 阅读 · 0 评论 -
源码阅读(32):Java中线程安全的Queue、Deque结构——ArrayBlockingQueue(2)
本篇内容我们专门分析ArrayBlockingQueue中迭代器的工作情况,ArrayBlockingQueue迭代器非常有阅读意义,是java集合框架中比较有代表性的结构之一。原创 2020-04-29 18:30:52 · 2293 阅读 · 0 评论 -
源码阅读(31):Java中线程安全的Queue、Deque结构——ArrayBlockingQueue(1)
ArrayBlockingQueue是一种经常使用的线程安全的Queue结构,它是一种内部基于数组的,使用在高并发场景下的阻塞队列,也是一种容量有界的队列。该队列符合先进先出(FIFO)的工作原则,也就是说该队列头部的元素是最先进入队列集合的,也是最先被调用者取出的元素;该队列尾部的元素是最后进入队列集合的,也是按时间顺序会最后被调用者取出的元素。原创 2020-04-09 21:46:52 · 2815 阅读 · 0 评论 -
源码阅读(28):Java中线程安全的List结构——CopyOnWriteArrayList(1)
从本文开始我们将介绍多线程(高并发)场景下的多种数据结构,这些数据结构基本来源于java.util.concurrent工具包。通过后续多篇文章的讲解我们将会发现,**高并发场景下的数据结构,其关注的最优先问题往往不是数据结构的整体性能,而是数据正确性和特定使用场景下的高性能**。原创 2020-03-23 21:33:15 · 2370 阅读 · 1 评论 -
源码阅读(26):Java中主要的Set结构——HashSet
在全面理解了HashMap结构后,理解HashSet数据结构也就足够简单了——HashSet内部就是对HashMap数据结构的依赖。HashMap结构的Key就是HashSet存储的数据,HashMap结构的Value则是一个固定对象记为“PRESENT”:原创 2020-03-02 19:44:41 · 2144 阅读 · 1 评论 -
源码阅读(25):Java中主要的Set结构——概述
而我们在介绍Set集合前,先介绍Java中多个原生的Map容器,是因为Java中多个原生的Set集合都依赖于对应的Map容器进行实现。例如后文将要介绍的HashSet集合,其内部主要依赖于HashMap进行实现,前者的子类LinkedHashSet也是如此;原创 2020-01-11 18:56:03 · 3209 阅读 · 1 评论 -
源码阅读(24):Java中其它主要的Map结构——LinkedHashMap容器(下)
LinkedHashMap容器是Java容器框架中从很早的版本就开始提供的(JDK 1.4+),该容器又被这样认为:“LinkedHashMap = HashMap + LinkedList”。原创 2020-01-05 18:52:44 · 2560 阅读 · 0 评论 -
源码阅读(23):Java中其它主要的Map结构——LinkedHashMap容器(上)
LinkedHashMap容器是Java容器框架中从很早的版本就开始提供的(JDK 1.4+),该容器又被这样认为:“LinkedHashMap = HashMap + LinkedList”。原创 2019-12-19 21:55:12 · 2397 阅读 · 0 评论 -
源码阅读(22):Java中其它主要的Map结构——TreeMap容器(2)
在Java自带的Map容器中,HashMap容器就是基准,构成这个基准容器的数据组织结构包括三个要素:数组、链表和红黑树。也就是说如果读者想彻底了解Java自带的Map容器的工作细节,就必须清楚掌握HashMap容器的工作细节,然后在这个基础上再进行“知识移植”即可。从本章节开始,我们将对Java自带的除HashMap以外的多种Map容器进行介绍,因为有了HashMap容器的知识基础,所以这些容器的讲解只会重点说明在设计上有差异的地方。原创 2019-12-11 15:44:06 · 2559 阅读 · 0 评论 -
源码阅读(21):Java中其它主要的Map结构——TreeMap容器(1)
在Java自带的Map容器中,HashMap容器就是基准,构成这个基准容器的数据组织结构包括三个要素:数组、链表和红黑树。也就是说如果读者想彻底了解Java自带的Map容器的工作细节,就必须清楚掌握HashMap容器的工作细节,然后在这个基础上再进行“知识移植”即可。从本章节开始,我们将对Java自带的除HashMap以外的多种Map容器进行介绍,因为有了HashMap容器的知识基础,所以这些容器的讲解只会重点说明在设计上有差异的地方。原创 2019-11-30 22:48:38 · 2377 阅读 · 2 评论 -
源码阅读(20):Java中主要的Map结构——HashMap容器(下2)
HashMap容器从字面的理解就是,基于Hash算法构造的Map容器。从数据结构的知识体系来说,HashMap容器是散列表在Java中的具体表达(并非线性表结构)。具体来说就是,利用K-V键值对中键对象的某个属性(默认使用该对象的“内存起始位置”这一属性)作为计算依据进行哈希计算(调用hashCode方法),然后再以计算后的返回值为依据,将当前K-V键值对在符合HashMap容器构造原则的基础上,放置到HashMap容器的某个位置上,且这个位置和之前添加的K-V键值对的存储位置完全独立,不一定构成连续的存储原创 2019-11-13 09:34:29 · 2308 阅读 · 3 评论 -
源码阅读(19):Java中主要的Map结构——HashMap容器(下1)
HashMap容器从字面的理解就是,基于Hash算法构造的Map容器。从数据结构的知识体系来说,HashMap容器是散列表在Java中的具体表达(并非线性表结构)。具体来说就是,利用K-V键值对中键对象的某个属性(默认使用该对象的“内存起始位置”这一属性)作为计算依据进行哈希计算(调用hashCode方法),然后再以计算后的返回值为依据,将当前K-V键值对在符合HashMap容器构造原则的基础上,放置到HashMap容器的某个位置上,且这个位置和之前添加的K-V键值对的存储位置完全独立,不一定构成连续的存储原创 2019-11-11 19:36:18 · 9610 阅读 · 0 评论 -
源码阅读(18):Java中主要的Map结构——HashMap容器(中)
HashMap容器从字面的理解就是,基于Hash算法构造的Map容器。从数据结构的知识体系来说,HashMap容器是散列表在Java中的具体表达(并非线性表结构)。具体来说就是,利用K-V键值对中键对象的某个属性(默认使用该对象的“内存起始位置”这一属性)作为计算依据进行哈希计算(调用hashCode方法),然后再以计算后的返回值为依据,将当前K-V键值对在符合HashMap容器构造原则的基础上,放置到HashMap容器的某个位置上,且这个位置和之前添加的K-V键值对的存储位置完全独立,不一定构成连续的存储原创 2019-10-24 22:56:14 · 2470 阅读 · 0 评论 -
源码阅读(17):红黑树在Java中的实现和应用
红黑树又叫做自平衡二叉查找树,由于其稳定的查找特性,红黑树在Java中有广泛的应用——例如我们将要讲解的TreeMap容器和当前讲解的HashMap容器中都有对红黑树的应用。红黑树的操作原理相对于我们已经讲解过的堆树要复杂一些,但也并不是说无法理解,读者只需要跟随本节的介绍思路进行理解,并自行动手对其中提到的关键点进行验证,即可掌握红黑树的基本原理。原创 2019-10-13 12:04:24 · 2313 阅读 · 0 评论 -
源码阅读(10):Java中主要的Queue、Deque结构——ArrayDeque集合(上)
在Java体系中凡是具有队列操作特定的集合结构,都实现或者间接实现了java.util.Queue接口;凡是具有双端队列操作特性的集合结构,都实现或者间接实现了java.util.Deque接口。原创 2019-08-09 09:20:21 · 2096 阅读 · 0 评论 -
源码阅读(9):Java中主要的Queue、Deque结构——概述
在Java体系中凡是具有队列操作特定的集合结构,都实现或者间接实现了java.util.Queue接口;凡是具有双端队列操作特性的集合结构,都实现或者间接实现了java.util.Deque接口。原创 2019-08-09 09:18:25 · 1807 阅读 · 0 评论 -
源码阅读(8):Java中主要的List、Deque结构——LinkedList集合(下)
典型的数据结构中,对于“表”结构的定义是:在一维空间下元素按照某种逻辑结构进行线性连接排列的数据结构(一对一)。java中集合定义中所包括的链表(ArrayList)、链表(LinkedList)、各种队列(Queue/Deque)、栈(Stack)等都满足这样的定义。本文及后续的几篇文章中将介绍Java集合结构中关于List接口、Queue接口、Set接口下的重要实现类。注意,关于java.util.concurrent包下对于List接口、Queue接口和Set接口实现类的介绍,将在后续专门的文章介绍原创 2019-07-17 14:47:55 · 2200 阅读 · 5 评论 -
架构设计:系统间通信(38)——Apache Camel快速入门(下1)
那么这里我们为什么又要花两篇文章的篇幅来介绍Apache Camel呢?因为后续文章中,在我们进行一款简单的ESB中间件设计时,我们将会依靠Apache Camel提供的协议转换、消息路由等核心能力。那么,就让我们开始吧!原创 2016-07-04 08:33:22 · 17649 阅读 · 7 评论 -
源码阅读(11):Java中主要的Queue、Deque结构——ArrayDeque集合(下)
在Java体系中凡是具有队列操作特定的集合结构,都实现或者间接实现了java.util.Queue接口;凡是具有双端队列操作特性的集合结构,都实现或者间接实现了java.util.Deque接口。原创 2019-08-15 20:54:00 · 1906 阅读 · 1 评论 -
源码阅读(12):Java中主要的Queue、Deque结构——PriorityQueue集合(上)
PriorityQueue集合是线程不安全的,但这不影响它成为Java体系统非常重要的Quere性质的集合。PriorityQueue集合很好展示了树结构向数组结构的降维,并如何将其引入到实现中的方式。原创 2019-08-26 09:47:19 · 2338 阅读 · 0 评论 -
源码阅读(13):Java中主要的Queue、Deque结构——PriorityQueue集合(中)
PriorityQueue集合是线程不安全的,但这不影响它成为Java体系统非常重要的Quere性质的集合。PriorityQueue集合很好展示了树结构向数组结构的降维,并如何将其引入到实现中的方式。原创 2019-09-09 16:05:52 · 1497 阅读 · 0 评论 -
源码阅读(14):Java中主要的Queue、Deque结构——PriorityQueue集合(下)
PriorityQueue集合是线程不安全的,但这不影响它成为Java体系统非常重要的Quere性质的集合。PriorityQueue集合很好展示了树结构向数组结构的降维,并如何将其引入到实现中的方式。原创 2019-09-09 16:08:01 · 1878 阅读 · 0 评论 -
源码阅读(15):Java中主要的Map结构——概述
Map结构同样属于Java Collections Framework的知识范畴,但是代表Map结构的顶级接口java.util.Map并没有继承java.util.Collection接口。这是因为Map结构属于映射式容器,既是一个Key键对应一个Value值(所以称为键值对),且同一个容器中不能出现两个相同的Key键信息。原创 2019-09-29 23:45:44 · 2659 阅读 · 0 评论 -
源码阅读(16):Java中主要的Map结构——HashMap容器(上)
HashMap容器从字面的理解就是,基于Hash算法构造的Map容器。从数据结构的知识体系来说,HashMap容器是散列表在Java中的具体表达(并非线性表结构)。原创 2019-09-29 23:46:44 · 1893 阅读 · 1 评论 -
源码阅读(7):Java中主要的List、Deque结构——LinkedList集合(中)
典型的数据结构中,对于“表”结构的定义是:在一维空间下元素按照某种逻辑结构进行线性连接排列的数据结构(一对一)。java中集合定义中所包括的链表(ArrayList)、链表(LinkedList)、各种队列(Queue/Deque)、栈(Stack)等都满足这样的定义。本文及后续的几篇文章中将介绍Java集合结构中关于List接口、Queue接口、Set接口下的重要实现类。注意,关于java.util.concurrent包下对于List接口、Queue接口和Set接口实现类的介绍,将在后续专门的文章介绍原创 2019-07-10 22:50:46 · 2974 阅读 · 14 评论 -
源码阅读(5):Java中主要的List结构——Stack集合
典型的数据结构中,对于“表”结构的定义是:在一维空间下元素按照某种逻辑结构进行线性连接排列的数据结构(一对一)。java中集合定义中所包括的链表(ArrayList)、链表(LinkedList)、各种队列(Queue/Deque)、栈(Stack)等都满足这样的定义。本文及后续的几篇文章中将介绍Java集合结构中关于List接口、Queue接口、Set接口下的重要实现类。注意,关于java.util.concurrent包下对于List接口、Queue接口和Set接口实现类的介绍,将在后续专门的文章介绍原创 2019-06-28 21:03:41 · 1834 阅读 · 4 评论 -
Spring/Boot/Cloud系列知识(7)——Spring Aspectj EL(3)
Spring EL是Spring Expression Language的简称,中文称作Spring表达式语言。Spring EL并不单单指代某一种特定的表达式格式,而是对Spring中字符串表达式的一个概要性称呼。原创 2017-11-04 18:43:21 · 3841 阅读 · 4 评论 -
Spring/Boot/Cloud系列知识(6)——Spring EL(2)
Spring EL是Spring Expression Language的简称,中文称作Spring表达式语言。Spring EL并不单单指代某一种特定的表达式格式,而是对Spring中字符串表达式的一个概要性称呼。原创 2017-10-05 16:05:41 · 2810 阅读 · 6 评论 -
Spring/Boot/Cloud系列知识(5)——Spring EL(1)
Spring EL是Spring Expression Language的简称,中文称作Spring表达式语言。Spring EL并不单单指代某一种特定的表达式格式,而是对Spring中字符串表达式的一个概要性称呼。原创 2017-10-03 17:46:05 · 3335 阅读 · 1 评论 -
Spring/Boot/Cloud系列知识(4)——代理模式(下)
代理模式是23种设计模式中的一种,属于一种结构模式。用一句大白话解释这个设计模式:当外部调用者调用A来完成一件事情/一个动作时,并不直接调用A本身,而是调用一个代理者,并再由代理者负责调用真实的执行者A,最终达到间接调用的目的。原创 2017-09-21 10:10:50 · 2965 阅读 · 2 评论 -
Spring/Boot/Cloud系列知识(3)——代理模式(中)
代理模式是23种设计模式中的一种,属于一种结构模式。用一句大白话解释这个设计模式:当外部调用者调用A来完成一件事情/一个动作时,并不直接调用A本身,而是调用一个代理者,并再由代理者负责调用真实的执行者A,最终达到间接调用的目的。原创 2017-09-17 09:11:58 · 5328 阅读 · 4 评论 -
Spring/Boot/Cloud系列知识(2)——代理模式
代理模式是23种设计模式中的一种,属于一种结构模式。用一句大白话解释这个设计模式:当外部调用者调用A来完成一件事情/一个动作时,并不直接调用A本身,而是调用一个代理者,并再由代理者负责调用真实的执行者A,最终达到间接调用的目的。原创 2017-09-15 11:24:54 · 5160 阅读 · 3 评论