Java

JavaScript算法模式——动态规划和贪心算法

  动态规划(DynamicProgramming,DP)是一种将复杂问题分解成更小的子问题来解决的优化算法。下面有一些用动态规划来解决实际问题的算法:最少硬币找零  给定一组硬币的面额,以及要找零的钱数,计算出符合找零钱数的最少硬币数量。例如,美国硬币面额有1、5、10、25这四种面额,如果要找36美分的零钱,则得出...

JavaScript算法实现——排序

  在计算机编程中,排序算法是最常用的算法之一,本文介绍了几种常见的排序算法以及它们之间的差异和复杂度。  冒泡排序应该是最简单的排序算法了,在所有讲解计算机编程和数据结构的课程中,无一例外都会拿冒泡排序作为开篇来讲解排序的原理。冒泡排序理解起来也很容易,就是两个嵌套循环遍历数组,对数组中的元素两两进行比较,如果前者比...

JavaScript数据结构——图的实现

  在计算机科学中,图是一种网络结构的抽象模型,它是一组由边连接的顶点组成。一个图G=(V,E)由以下元素组成:V:一组顶点E:一组边,连接V中的顶点  下图表示了一个图的结构:  在介绍如何用JavaScript实现图之前,我们先介绍一些和图相关的术语。  如上图所示,由一条边连接在一起的顶点称为相邻顶点,A和B是相...
代码星球·2020-09-24

JavaScript数据结构——树的实现

  在计算机科学中,树是一种十分重要的数据结构。树被描述为一种分层数据抽象模型,常用来描述数据间的层级关系和组织结构。树也是一种非顺序的数据结构。下图展示了树的定义:  在介绍如何用JavaScript实现树之前,我们先介绍一些和树相关的术语。  如上图所示,一棵完整的树包含一个位于树顶部的节点,称之为根节点(11),...
代码星球·2020-09-24

JavaScript数据结构——字典和散列表的实现

  在前一篇文章中,我们介绍了如何在JavaScript中实现集合。字典和集合的主要区别就在于,集合中数据是以[值,值]的形式保存的,我们只关心值本身;而在字典和散列表中数据是以[键,值]的形式保存的,键不能重复,我们不仅关心键,也关心键所对应的值。  我们也可以把字典称之为映射表。由于字典和集合很相似,我们可以在前一...

JavaScript数据结构——集合的实现与应用

  与数学中的集合概念类似,集合由一组无序的元素组成,且集合中的每个元素都是唯一存在的。可以回顾一下中学数学中集合的概念,我们这里所要定义的集合也具有空集(即集合的内容为空)、交集、并集、差集、子集的特性。  在ES6中,原生的Set类已经实现了集合的全部特性,稍后我们会介绍它的用法。  我们使用JavaSctipt的...

JavaScript数据结构——链表的实现与应用

  链表用来存储有序的元素集合,与数组不同,链表中的元素并非保存在连续的存储空间内,每个元素由一个存储元素本身的节点和一个指向下一个元素的指针构成。当要移动或删除元素时,只需要修改相应元素上的指针就可以了。对链表元素的操作要比对数组元素的操作效率更高。下面是链表数据结构的示意图:  要实现链表数据结构,关键在于保存he...

JavaScript数据结构——队列的实现与应用

  队列与栈不同,它遵从先进先出(FIFO——FirstInFirstOut)原则,新添加的元素排在队列的尾部,元素只能从队列头部移除。  我们在前一篇文章中描述了如何用JavaScript来实现栈这种数据结构,这里我们对应地来实现队列。functionQueue(){letitems=[];/...

JavaScript数据结构——栈的实现与应用

  在计算机编程中,栈是一种很常见的数据结构,它遵从后进先出(LIFO——LastInFirstOut)原则,新添加或待删除的元素保存在栈的同一端,称作栈顶,另一端称作栈底。在栈中,新元素总是靠近栈顶,而旧元素总是接近栈底。  让我们来看看在JavaScript中如何实现栈这种数据结构。func...

JavaScript中的类继承

  JavaScript是一个无class的面向对象语言,它使用原型继承而非类继承。这会让那些使用传统面向对象语言如C++和Java的程序员们感到困惑。正如我们所看到的,JavaScript的原型继承比类继承具有更强的表现力。  但首先,要搞清楚我们为什么如此关注继承?主要有两个原因。首先是方便类型的转换。我们希望语言...
代码星球·2020-09-24

Spring.Net的使用

1.Spring.Net的简单介绍spring.net框架是微软效仿java中的spring框架而推出的一种在.net中使用的框架,它使用配置的方式实现逻辑的解耦,它的主要功能集成在Spring.Core.dll文件中,主要的功能有IOC(控制反转)、DI(依赖注入)、AOP(面向切面编程)等。IOC:没有解耦之前,我...
代码星球·2020-09-22

java实现Kafka的消费者示例

使用java实现Kafka的消费者12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576...

java实现Kafka生产者示例

使用java实现Kafka的生产者123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869packagecom.lis...

学习java23种设计模式自我总结

 首先先做个广告,以前看过@maowang 这位大神转的Java开发中的23种设计模式详解(转) ,但是看了之后都忘差不多了,所以,开个帖子边学习边自我总结(纯手敲)。一直以来像这种需要长久的运动,真得很少有坚持下来的,希望这次一定坚持下来,再此立贴为证!!! 2018-3-27...

SpringBoot 2.0.3 源码解析

前言用SpringBoot也有很长一段时间了,一直是底层使用者,没有研究过其到底是怎么运行的,借此机会今天试着将源码读一下,在此记录。。。我这里使用的SpringBoot版本是  2.0.3.RELEASE  源码解析   SpringApplication的初始化  ...