自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Cloud Alibaba(1) 实现服务注册与发现 Nacos Discovery

文章目录什么是 Nacos?Nacos 的关键特性安装 Nacos什么是 Nacos?Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。...

2020-05-08 17:48:57 580

原创 Java算法——9合并两个有序链表

文章目录题目描述解题思路算法性能分析题目描述已知两个链表head1、head2各自有序(如升序排列),请把它们合并为一个链表,要求合并后的链表依然有序。解题思路分别用指针head1、head2来遍历两个链表,如果当前head1指向的数据小于head2指向的数据,则将head1指向的结点归入合并后的链表中,否则将head2指向的结点归入合并后的链表中。如果有一个链表遍历结束,则把未结束的链表连接到合并后的链表尾部。class LNode { /** * 数据域 */

2020-12-18 21:33:34 219

原创 Java算法——8把链表以K个结点为一组进行翻转

文章目录题目描述解题思路算法性能分析题目描述K链表翻转是指把每K个相邻的结点看成一组进行翻转,如果剩余结点不足K个,则保持不变。假设给定链表1→2→3→4→5→6→7和一个数K,如果K的值为2,那么翻转后的链表为2→1→4→3→6→5→7。如果K的值为3,那么翻转后的链表为3→2→1→6→5→4→7.解题思路首先把前K个结点看成一个子链表,将其进行翻转,把翻转后的子链表链接到头结点后面,然后把接下来的K个结点看成另外一个单独的链表进行翻转,把翻转后的子链表链接到上一个已经完成翻转的子链表的后面。当K

2020-12-18 21:33:24 343

原创 Java算法——7把链表相邻元素翻转(交换值法、就地逆序)

文章目录题目描述方法一:交换值法方法二:就地逆序算法性能分析题目描述把链表相邻元素翻转,如给定链表为1→2→3→4→5→6→7,则翻转后的链表为2→1→4→3→6→5→7方法一:交换值法最容易想到的方法就是交换相邻两个结点的数据域,这种方法由于不需要重新调整链表的结构,因此比较容易实现,但是这种方法并不是考官所期望的解法方法二:就地逆序主要思路:通过调整结点指针域的指向来直接调换相邻的两个结点。如果单链表恰好有偶数个结点,那么只需要将奇偶结点对调即可,如果链表有奇数个结点,那么只需要将除了最后一

2020-12-18 21:33:14 630

原创 Java算法——6检测一个较大的单链表是否有环(蛮力法、快慢指针遍历法)

文章目录题目描述方法一:蛮力法方法二:快慢指针遍历法引申:如果链表存在环,那么如何找到环的入口点?算法性能分析题目描述单链表有环指的是单链表中某个结点的next域指向链表中在它之前的某一个结点,这样在链表的尾部形成了一个环形结构。如何判断单链表是否有环存在?方法一:蛮力法定义一个HashSet用来存放结点的引用,并将其初始化为空,从链表的头结点开始向后遍历,没遍历到一个结点就判断HashSet中是否有这个结点的引用。如果没有,说明这个结点是第一次访问,还没有形成环,那么将这个结点的引用添加到Hash

2020-12-18 21:33:03 215

原创 Java算法——5找出单链表中的倒数第k个元素(遍历两次法、快慢指针法)

文章目录题目描述方法一:顺序遍历两遍法方法二:快慢指针法算法性能分析题目描述找出单链表中的倒数第k个元素,如给定单链表:1→2→3→4→5→6→7,则单链表的倒数第k=3个元素为5.方法一:顺序遍历两遍法主要思路:首先遍历一遍单链表,求出整个单链表的长度n,然后把求倒数第k个元素转换为求顺数第n-k个元素,再去遍历一次单链表就可以得到结果。需要遍历两次单链表方法二:快慢指针法由于单链表只能从头到尾依次访问链表中的各个结点,因此如果要找单链表的倒数第k个元素,也只能从头到尾进行遍历查找。在查找过程

2020-12-18 21:32:53 452

原创 Java算法——4对链表进行重新排序

文章目录题目描述解题思路算法性能分析题目描述给定链表L0→L1→L2→…→Ln-1→Ln,把链表重新排序为L0→Ln→L1→Ln-1→L2→Ln-2…。要求:①在原来链表的基础上进行排序,即不能申请新的结点;②只能修改结点的next域,不能修改数据域。解题思路(1)首先找到链表的中间结点(2)对链表的后半部分子链表进行逆序(3)把链表的前半部分子链表与逆序后的后半部分子链表进行合并,合并的思路是:分别从两个链表各取一个结点进行合并。class LNode { /** * 数

2020-12-18 21:32:43 400 1

原创 Java算法——3计算两个单链表所代表的数之和(整数相加法、链表相加法)

文章目录题目描述方法一:整数相加法方法二:链表相加法算法性能分析题目描述给定两个单链表,链表的每个结点代表一位数,计算两个数之和。例如,输入链表(3→1→5)和链表(5→9→2),输出:8→0→8,即513+295=808,注意个位数在立链表头。方法一:整数相加法主要思路:分别遍历两个链表,求出两个链表所代表的整数的值,然后把这两个整数进行相加 ,最后把它们的和用链表的形式表示出来。这种方法的优点是计算简单,缺点是:当链表所代表的数很大时(超出了long int的表示范围),就无法使用这种方法了。

2020-12-18 21:32:34 650

原创 Java算法——2从无序单链表中移除重复项(双重循环、递归法)

文章目录题目描述方法一:顺序删除算法性能分析方法二:递归法算法性能分析方法三:空间换时间题目描述给定一个没有排序的链表,去掉其重复项,并保留原顺序,如链表1→3→1→5→5→7,去掉重复部分后为1→3→5→7。方法一:顺序删除主要思路:通过双重循环直接在链表上执行删除操作。外层循环用一个指针从第一个结点开始遍历整个链表,然后内层循环用另外一个指针遍历其余结点,将与外层循环遍历到的指针所指结点的数据域相同的节点删除。class LNode { /** * 数据域 */

2020-12-18 21:32:23 395

原创 Java算法——1实现单链表的逆序(就地逆序、递归法、头插法)

文章目录题目描述解题思路方法一:就地逆序算法性能分析方法二:递归法算法性能分析方法三:插入法算法性能分析题目描述给定一个带头结点的单链表,请将其逆序。即如果单链表原来为head→1→2→3→4→5→6→7,则逆序后变为head→7→6→5→4→3→2→1。解题思路由于单链表与数组不同,单链表中每个结点的地址都存储在其前驱结点的指针域中,因此,对单链表中任何一个结点的访问只能从链表的头指针开始进行遍历。在对链表的操作过程中,需要特别注意在修改结点指针域的时候,记录下后继结点的地址,否则会丢失后继节点。

2020-12-18 21:32:00 1970 1

原创 消息队列——RabbitMQ及其实例

文章目录1. 消息队列1.1 为何要用消息队列1.2 消息队列的功能特点1.3 设计一个简单的消息队列2. RabbitMQ2.1 简介2.1.1 RabbitMQ 特点2.1.2 RabbitMQ基本概念2.2 工程实例2.2.1 Java访问RabbitMQ实例2.2.2 Spring整合RabbitMQ2.2.3 基于RabbitMQ的异步处理2.2.4 基于RabbitMQ的消息推送1. 消息队列1.1 为何要用消息队列解耦流量削峰日志收集事务最终一致性1.2 消息队列的功能特点

2020-10-09 17:08:05 2310

原创 JVM的STW(stop the world)机制及调优案例

STW(stop the world)是什么1、stop the world指的是GC事件发生过程中,会产生应用程序的停顿。停顿产生时整个应用程序线程都会被暂停,没有任何响应, 有点像卡死的感觉,这个停顿称为STW。Java中一种全局暂停现象,全局停顿,所有Java代码停止,native代码可以执行,但不能与JVM交互;这些现象多半是由于gc引起。(1)可达性分析算法中枚举根节点(GC Roots)会导致所有Java执行线程停顿。① 分析工作必须在一个能确保一 致性的快照中进行② 一致性指整个分析期

2020-08-25 15:26:37 9384 7

原创 Java算法——15翻转栈的所有元素

题目描述翻转(颠倒)栈的所有元素,如输入栈{1,2,3,4,5}。其中,1在栈顶,翻转之后的栈为{5,4,3,2,1},5处在栈顶解题思路申请额外的队列递归import java.util.Stack;public class Test15 { /**把栈底元素移动到栈顶*/ private static void move_bottom_to_top(Stack<Integer>s){ if(s.empty()){ re

2020-08-24 16:01:19 334

原创 Java算法——14实现队列

题目描述实现一个队列的数据结构,使其具有入队列、出队列、查看队列首尾元素、查看队列大小等功能方法一:数组实现import java.util.ArrayList;class MyQueue<T>{ private ArrayList<T>arr=new ArrayList<>(); /**队列头*/ private int front; /**队列尾*/ private int rear; public MyQ

2020-08-24 16:00:34 142

原创 Java算法——13实现栈

题目描述实现一个栈的数据结构,使其具有以下方法:压栈、弹栈、取栈顶元素、判断栈是否为空以及获取栈中元素个数。方法一:数组实现数组实现栈,栈空间是一段连续的空间。import java.util.ArrayList;class MyStack<T> { private ArrayList<T>arr; /**数组中存储元素的个数*/ private int stackSize; public MyStack(){ //初始

2020-08-24 15:58:45 154

原创 【面试】Java基础知识11-20

文章目录11 String \StringBuffer\StringBuilder的区别是什么?String为什么是不可变的12 自动装箱和拆箱13 在一个静态方法内调用一个非静态成员为什么是非法的14 在Java中定义一个不做事且没有参数的构造方法的作用15 import java和javac有什么区别16 接口和抽象类的区别是什么17 成员变量和局部变量的区别有哪些18 创建一个对象用什么运算符?对象实体与对象引用有何不同?19 什么是方法的返回值?返回值在类的方法里的作用是什么20 一个类的构造方法的

2020-08-24 15:56:25 137

原创 Java算法——12展开链接列表

文章目录题目描述解题思路题目描述给定一个有序链表,其中每个结点也表示一个有序链表,结点包含两个类型的指针:(1)指向主链表中下一个结点的指针(下面代码中称为“正确”指针)(2)指向此结点头的链表(下面代码中称为“down”指针)所以链表都被排序。如:3 → 11 → 15 → 30↓ ↓ ↓ ↓6 21 22 39 ↓ ↓ ↓ 8 50 40↓ ↓ 31 55实现一个函数flatten(

2020-08-23 16:15:15 181

原创 Java算法——11判断两个单链表(无环)是否交叉

文章目录题目描述解题思路算法性能分析题目描述单链表相交指的是两个链表存在完全重合的部分,如下:在上图中,这两个链表相交于结点5,要求判断两个链表是否相交,如果相交,找出相交处的结点。解题思路方法一:Hash法如果两个链表相交,那么它们一定会有公共结点,由于结点的地址或引用可以作为结点的唯一标识,因此,通过判断两个链表中的结点是否有相同的地址或引用来判断链表是否相交。首先遍历链表h1,把遍历到的所有结点的地址存放到HashSet中;接着遍历链表h2,每遍历一个结点,就判断这个结点的地址是否

2020-08-23 16:13:44 429

原创 Java算法——10在给定单链表中某个结点的指针的情况下删除该结点

文章目录题目描述解题思路算法性能分析题目描述假设给定链表1→2→3→4→5→6→7中指向第5个元素的指针,要求把结点5删掉,删除后链表变为1→2→3→4→6→7。解题思路要删除单链表中的一个结点p,首先需要找到结点p的前驱结点pre,然后通过pre.next=p.next来实现对结点p的删除。此题由于无法获取结点p的前驱结点,所以不能采用这种传统的方法。(1)如果该结点为链表最后一个结点,则无法删除这个结点(2)如果不是最后一个结点,则可以通过把其后继结点的数据复制到当前结点中,然后用删除后继结

2020-08-23 16:12:03 406

原创 实现多线程的四种实现方法

(1)继承Thread类,重写run方法(2)实现Runnable接口,重写run方法,将Runnable接口的实现类的实例对象作为Thread构造函数参数(3)通过Callable和FutureTask创建线程(4)通过线程池创建线程。线程池提供了一个线程队列,队列中保存着所有等待状态的线程。避免了创建与销毁额外开销,提高了响应的速度(1)继承Thread类,重写run方法public class TestThread extends Thread{ public TestThrea

2020-08-22 09:23:31 1422

原创 TensorFlow2.x 使用之快速入门

文章目录1. 数据类型1.1 数值类型1.2 字符串类型1.3 布尔类型2. 数值精度2.1 读取精度2.2 类型转换3. 待优化张量4. 创建张量4.1 从数组、列表对象创建4.2 创建全0或全1张量4.3 创建自定义数值张量4.4 创建已知分布的张量4.5 创建序列5. 索引与切片5.1 索引5.2 切片6. 维度变换6.1 改变视图6.2 增删维度6.3 交换维度6.4 复制数据7. Broadcasting8. 数学运算8.1 加减乘除运算8.2 乘方运算8.3 指数和对数运算8.4 矩阵相乘运算

2020-05-20 17:42:41 700

原创 利用BP神经网络 设计一个三层神经网络解决手写数字的识别问题

文章目录1. 题目描述2. 求解原理(1)算法模型(2)算法原理3.编程实现(1)环境说明(2)实验方案(3)Python实现1. 题目描述设计一个三层神经网络解决手写数字的识别问题。要求:(1)三层神经网络如图:784-15-10结构(2)使用随机梯度下降算法和MNIST训练数据。http://yann.lecun.com/exdb/mnist/2. 求解原理(1)算法模型利用BP神经网络,这里有输入层、隐藏层、输出层共三层,包括两个阶段,第一阶段是输入信息的正向传播,其中隐藏层节

2020-05-20 10:35:28 6422

原创 Spring Cloud(6)消息总线 Spring Cloud Bus + Spring Cloud Config 实现全自动刷新集群配置

文章目录springcloud系列学习笔记目录参见博主专栏 spring cloud。由于是一系列文章,所以后面的文章可能会使用到前面文章的项目。文章所有参考代码都已上传GitHub:https://github.com/Djnsakn/spring-cloud-learning本系列环境:Intellij IDEA 2019.1.1、JDK 1.8、Spring Boot 2.1.8.RELEASE、Spring Cloud Greenwich.SR3具体代码可参考https://githu

2020-05-11 17:25:00 146

原创 Spring Cloud(5)分布式配置中心 Spring Cloud Config

文章目录1. 是什么2. 构建配置中心3. 客户端配置映射4. 配置刷新-手动刷新5. 集成eureka实现高可用集群springcloud系列学习笔记目录参见博主专栏 spring cloud。由于是一系列文章,所以后面的文章可能会使用到前面文章的项目。文章所有参考代码都已上传GitHub:https://github.com/Djnsakn/spring-cloud-learning本系列环境:Intellij IDEA 2019.1.1、JDK 1.8、Spring Boot 2.1.8.RE

2020-05-11 16:55:44 123

原创 matplotlib使用之快速入门

文章目录matplotlib概述matplotlib基本功能一.基本绘图1.绘制线条2.设置坐标轴的范围3.设置坐标轴刻度4.设置坐标轴5.绘制特殊点6.添加备注7.线型、线宽和颜色8.图例案例一二.图形对象(图形窗口)1.设置当前窗口参数2.子图(1)矩阵式布局案例二(2)网格式布局(3)自由式布局3.刻度定位器4.刻度网格线5.半对数坐标6.散点图7.填充8.条形图(柱状图)9.饼图10.等高...

2020-05-07 19:22:18 273

转载 Numpy使用之快速入门

文章目录numpy概述内存中的ndarray对象ndarray数组对象的创建ndarray对象属性的基本操作Numpy的内部基本数据类型ndarray存储复合类型数据维度操作数组的切片数组的掩码操作组合与拆分其他属性numpy概述Numerical Python,数值的Python,补充了Python语言所欠缺的数值计算能力。Numpy是其它数据分析及机器学习库的底层库。Numpy完全标...

2020-05-07 12:52:28 134

原创 Spring Cloud(4)服务容错保护 Hystrix

文章目录Spring Cloud Hystrix简介Ribbon中使用断路器Feign中使用断路器springcloud系列学习笔记目录参见博主专栏 spring cloud。由于是一系列文章,所以后面的文章可能会使用到前面文章的项目。文章所有参考代码都已上传GitHub:https://github.com/Djnsakn/spring-cloud-learning本系列环境:Intel...

2020-05-06 16:37:28 110

原创 Spring Cloud(3)客户端负载均衡 Feign

文章目录Fegin简介实现feign消费者Feign的优势(相比RestTemplate)springcloud系列学习笔记目录参见博主专栏 spring cloud。由于是一系列文章,所以后面的文章可能会使用到前面文章的项目。文章所有参考代码都已上传GitHub:https://github.com/Djnsakn/spring-cloud-learning本系列环境:Intellij ...

2020-05-06 12:03:10 125

原创 Spring Cloud(2)客户端负载均衡 Ribbon

文章目录环境说明客户端负载均衡RibbonRestTemplate服务消费者Eureka的自我保护机制环境说明Intellij IDEA 2019.1.1JDK 1.8Spring Boot :2.1.8.RELEASESpring Cloud :Greenwich.SR3注意事项:spring cloud和spring boot的版本一定要对应客户端负载均衡负载均衡是对系统的高...

2020-05-05 11:55:04 173

原创 图数据库-Neo4j的下载安装

1.下载neo4jNeo4j是一个世界领先的开源图形数据库,由 Java 编写。安装Neo4j前需要安装Java JDK,并且JDK版本需要和Neo4j版本兼容。本文的JDK版本为1.8,Neo4j版本为3.5.5。官网下载(下载很慢)https://neo4j.com/download-center/#releases国内的下载地址http://neo4j.com.cn/topic...

2020-05-04 10:41:36 3437 2

原创 IDEA插件EasyCode 一键生成entity、controller、service、dao、mapper

1.EasyCode是什么基于IntelliJ IDEA开发的代码生成插件,支持自定义任意模板(Java,html,js,xml)只要是与数据库相关的代码都可以通过自定义模板来生成。支持数据库类型与java类型映射关系配置。支持同时生成生成多张表的代码。每张表有独立的配置信息。完全的个性化定义,规则由你设置。可以直接对数据的表生成entity、controller、service、dao...

2020-05-03 23:44:30 8616 1

原创 Spring Cloud(1)服务治理:Eureka服务注册与服务发现

环境说明Intellij IDEA 2019.1.1JDK 1.8Spring Boot :2.1.8.RELEASESpring Cloud :Greenwich.SR3注意事项:spring cloud和spring boot的版本一定要对应Spring Cloud EurekaSpring Cloud Eureka基于Netflix Eureka做了二次封装,主要负责完成微...

2020-05-03 19:11:35 140

原创 Spring Cloud(0)什么是微服务架构

要了解微服务,先来简单的了解下架构的演变。单体架构单体软件结构是基于面向对象的设计方法而来,单体意味着项目中的所有的代码会写在一个工程里,整个项目只需要一台机器就可以部署。单体架构开发简单,部署便捷。但是当前以互联网业务为主流的系统,用户量多、流量大、并发高单台机器难以承受大量的请求和流量。单体分层结构如下:面向服务软件体系结构面向服务软件体系结构是一种分布式的软件架构,提倡以拆分业...

2020-05-03 16:33:56 181

原创 使用以下商品房销售记录表数据,用梯度下降法,编程实现一个房价预测系统

题目描述使用以下商品房销售记录表数据,用梯度下降法,编程实现一个房价预测系统。求解原理给定的数据集dataSet,每一行代表一组数据记录,每组数据记录中,第一个值为房屋面积(单位:平方米),第二个值为房间数,第三个值为销售价格(单位:万元)。利用梯度下降法,构建损失函数,在函数gradientDescent中实现销售价格price和房屋面积area和房间数rooms的线性回归,返回值为线性...

2020-05-01 13:50:20 1799

空空如也

空空如也

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

TA关注的人

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