自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JM__SUN的博客

程序攻城狮

  • 博客(47)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据结构与算法基础入门——手写实现二叉搜索树增删查

二叉查找树特点:1、如果它的左子树不为空,则左子树节点的值都小于根节点。2、如果它的右子树不为空,则左子树节点的值都大于根节点。3、子树同样也要遵循以上两点4、中序遍历有序。5、后继节点:根据中序找第一个比当前节点大的数6、前继节点:根据中序找第一个比当前节点小的数二叉树增删查;1、增:插入的时候每次都是和根节点比较。一直要找到它应该插入的位置,并且只能插在叶子节点上(O(nlogn))2、删: 1、叶子节点可以直接删除(O(1)) 2、要删除的结点只有一个子树(

2022-04-10 15:01:06 392

原创 数据结构与算法基础入门——手写二叉树(五)

树的概念:树表示的是更为复杂的数据元素之间的非线性关系。有且仅有一个 根结点 (Root)常用的术语结点:包含一个数据元素和若干指向其子树的分支度(degree):结点拥有的子树的数目叶子:度为0 的结点孩子:结点的子树的根称为孩子结点。。。。结点的高度:结点到叶子结点的最长路径结点的深度:根结点到该结点的边个数结点的层数:结点的深度+1树的高度:根结点的高度。。。满二叉树:除了叶子结点外,每一个结点都有左后两个子结点完全二叉树:除最后一层外,其它的结点个数必须达到最大,并且

2022-04-09 19:39:02 768

原创 数据结构与算法基础入门——递归

1、递归的定义程序调用自身的编程技巧 称为 递归。对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解。另外递归与循环有一定的相似性,都是满足条件进行符合条件内的操作。满足递归的条件:1、一定有一个最后确定的答案。即递归终止的条件2、子问题须与原始问题为同样的事,且更为简单2、递归的优化1、使用非递归。所有代码递归理论上是一定可以转换成非递归的。2、加入缓存。把中间我们运算的结果保存起来,这样就能把

2022-04-04 23:16:05 758

原创 数据结构与算法基础入门——手写队列(四)

1、什么是队列?队列是一个特殊的线性表,它只允许在表的前端(front)进行删除操作,在表的后端进行插入操作,和栈一样队列是一种操作受限的线性表。其特性FIFO(first in first out) 先进先出。2、队列的分类1、顺序(单向)队列:只能在一端增加,另一端删除。2、循环(双向)队列:每一段都能进行增加删除操作。3、基于数组实现顺序队列package com.example.demo;/** * @author: sun jian ming * @since: 2022/

2022-04-03 19:41:12 1128

原创 数据结构与算法基础入门——手写栈(三)

栈(stack),它是一种运算受限的线性表,后进先出(LIFO)LIFO(last in first out)表示就是后进入的元素, 第一个弹出栈空间. 类似于自动餐托盘, 最后放上的托盘,往往先把拿出去使用.其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。时间复杂度:出/

2022-04-02 09:00:00 344

原创 数据结构与算法基础入门——手写链表(二)

1、什么是链表,链表的定义?通俗的说就是通过指针将一组零散的内存块串联在一起。其中,我们把内存块称为链表的 "节点"。为了将所有的节点串在一起,每个链表的节点除了存储数据之外,还要记录下一个节点的地址。![在这里插入图片描述](https://img-blog.csdnimg.cn/3f7f69ae12c2488fb762c0f40f978e63.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASk

2022-04-01 14:21:05 869

原创 【JVM学习之路——JDK类加载器】

快速了解类JDK加载器

2022-03-29 23:19:43 693

原创 数据结构与算法基础入门(一)——求一个数是不是2的n次方

1、计算一个数是不是2的N次方if(n> 1 && (n & (n-1)) == 0){ System.out.println("是不是2的N次方"); }解题思路:利用二进制 + 逻辑运算符“&” 判断 是不是等于0.拓展:& 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算对于:& – > 只要左

2022-03-27 00:27:46 310

原创 MySql全局二级索引创建与使用

MySql全局二级索引创建与使用前言:单表是不支持全局二级索引的如果你是单表,需要先创建一个新的支持分库分表的表结构。下面举例根据表ID做分库键CREATE TABLE `ip_b_time_order_vip` ( `id` bigint(20) NOT NULL COMMENT 'id', `bill_no` varchar(50) CHARACTER SET utf8 DEFAULT NULL COMMENT '编号', `order_sn` varchar(100) CHARACTER

2021-10-28 18:19:05 591

原创 算法之位运算学习

前言: 上学没好好上,工作几年位运算也不知道怎么回事,最近学算法遇到不理解,因此补习一下。以下为个人学习中的理解,毕竟是小白。有错误的还请指出。(1)二进制转换方法不要笑话我二进制转换都忘了,在这里介绍一下二进制与十进制互转方法:18转二进制:理解方法:18>16 在下面画1,18-16=2。2不大于8和4,继续往左移。2-2=0,在2的下面画1。最终得到:10010反转:...

2019-11-01 17:15:50 651

原创 IDEA 注册码网址

http://idea.lanyus.com/

2019-04-01 10:21:44 286

原创 Java之Poi大数据量导出技术SXSSFWorkbook应用

前言:适合小白,大神绕道。这个是最近运维项目所用的技术。之前使用的是poi的HSSFWorkbook,发现在导出5万多数据量的时候,jvm就不行了。非常慢,还报内存溢出。解决办法:在配置tomcat的时候增加下面这句-Xms128m -Xms1024m -XX:MaxPermSize=512m方法可行,但是当数据量十几万的时候还是会报内存溢出。然后就想到分sheet页。写完后发现还是不行。...

2019-03-21 10:11:14 4666 1

原创 Durid使用及进阶(一)

什么是Druid?Druid是一个高效的数据查询系统,主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到Druid后立即可查,同时数据是几乎是不可变。通常是基于时序的事实事件,事实发生后进入Druid,外部系统就可以对该事实进行查询。 目前常用的数据源主要有c3p0、dbcp、proxool、druid。Druid特点:亚秒级查询:druid提供了快速的聚合能力以及...

2019-01-11 15:43:37 2295

原创 SpringCloud分布式配置中心问题

问题:org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘helloWorldSpringBoot’: Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgum...

2018-11-15 17:47:39 208

原创 SpringCloud之JCE加密问题

jce下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html替换:%…%\jdk1.8\jre\lib\security\policy\limited及jdk1.8\jre\lib\security\policy\unlimited下的jar包访问地址:…/encrypt/...

2018-11-15 15:46:09 743

原创 Docker与Jenkins的联系及安装

Docker与Jenkins的联系:可以看出,jenkins充当的是一个自动构建的作用,而Docker相当于虚拟机,或者说是一个容器。jenkins的工作原理 :是基于Java开发的一种持续集成工具,用于监控秩序重复的工作,包括:1)、持续的软件版本发布/测试项目。2)、监控外部调用执行的工作。Dockeer安装请看上篇介绍。下面开始安装Jenkins:1.检测dockersudo...

2018-11-09 14:59:31 1567

原创 linux上安装Docker

收藏:地址连接

2018-11-09 10:42:24 123

原创 Centos7.5 项目上传

上传开始随便新建mkdir democd demogit initecho “# demo” >> README.mdgit init //把这个目录变成Git可以管理的仓库touch README.md //文件添加到仓库git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了(空目录不会被添加)git ...

2018-10-11 14:57:49 354

原创 centOS7.5安装Git教程

安装开始:卸载自带的yum remove git安装依赖库按Y确认yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel安装依赖库按Y确认yum install gcc perl-ExtUtils-MakeMaker进入/usr/local目录cd /usr/local创建git目录...

2018-10-09 16:48:51 1344

原创 Linux CentsOS7.5 Jenkins 安装

前言:这工具方便部署管理。用着舒服。不懂可以再百度一下。这里重点是怎么安装使用。 安装步骤开始: 一:下载 https://pkg.jenkins.io/redhat-stable/ 二:解压 把文件放到你指定路径,利用cd 切换到当前目录,然后利用tar zxvf 文件名 解压 (第二种:tar zxvf 你要解压的地方+文件名 +文件所在目录加文件名) ...

2018-09-11 15:07:24 287

原创 LinuxOS7.5 切换jdk 用法

前沿:最近买了一个阿里云的服务器。在安装jdk的时候选择了10的版本,在安装Jenkins的时候恐怕版本不匹配。就重新下载了1.8的版本。一下是自己操作步骤: 1:安装jdk:下载http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载。解压到你要安装的目录就行了 2:通过命令 ...

2018-09-10 17:55:38 175

转载 JavaScript代码分享

首先,我们来看一段代码:var add_level = 0; if(add_step == 5){ add_level = 1; } else if(add_step == 10){ add_level = 2; } else if(add_step == 12){ add_level = 3; } else if(add_step == 15){ add_level...

2018-08-03 11:14:09 188

原创 新浪云服务搭建个人web网站入门

废话不说直接开始:一:首先你要申请个新浪云的账户。为什么用它就是因为它免费!免费!免费! 注册地址:http://www.sinacloud.com/public/login/inviter/gaimrn-mddmzeKWrhKW3roGufWh_iKOufnzQdg.html 他们自带的开发文档:http://www.sinacloud.com/doc/index.html 你可以...

2018-07-28 11:04:05 3785

原创 Java——枚举

前言: enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中。 练习代码:public class EnumTest02 { public enum Weekday implements Behaviour { SUN("No1",0), MON("No2",1), ...

2018-07-25 17:14:21 156

原创 Java代码优化技巧分享(一)

前言:优化代码,使自己的代码精,简,灵活,效率高。(高扩展、高内聚、低耦合)。日常细节必不可少。最好的比喻“滴水穿石”。要知道一个个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。反之。一个个的堆积。将会最终到一个系统的崩溃。此话一点也不夸张。1、及时关闭流 原因:重复流 占用 ! 资源得不到释放。。 造成大量的内存垃圾等问题 2、尽量重用对象 比如说字符串连...

2018-06-20 15:58:29 1080

翻译 JavaScript常用优化分享(三)

这篇文章主要介绍内存管理、松散耦合、性能方面的一些小知识、为避免错误应该注意的点。(一)内存管理:1、循环引用如果循环引用中包含DOM对象或者ActiveX对象,那么就会发生内存泄露。内存泄露的后果是在浏览器关闭前,即使是刷新页面,这部分内存不会被浏览器释放。 简单的循环引用:var el = document.getElementById('MyElement');v...

2018-06-19 16:04:20 343

翻译 JavaScript常用优化分享(二)

1、使用事件代理任何可以冒泡的事件都不仅仅可以在事件目标上进行处理,目标的任何祖先节点上也能处理,使用这个知识就可以将事件处理程序附加到更高的地方负责多个目标的事件处理,同样,对于内容动态增加并且子节点都需要相同的事件处理函数的情况,可以把事件注册提到父节点上,这样就不需要为每个子节点注册事件监听了。另外,现有的js库都采用observe方式来创建事件监听,其实现上隔离了dom对象和事件处理函...

2018-06-13 16:39:10 192

翻译 JavaScript常用优化分享(一)

内容摘自博客园:笨小孩做开发 首先很感谢前辈的分享,让自己在写代码上有了一个新的认知。对于做前端的推荐书籍:《犀利开发Jquery内核详解与实践》,自己看了一下,的确不错。1、避免全局查找用全局对象存储为局部变量来减少全局查找,因为访问局部变量的速度要比访问全局变量的速度更快些。function search() { //当我要使用当前页面地址和主机域...

2018-06-13 15:38:30 173

原创 RabbitMQ Windows安装与配置

简介:MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。其中较...

2018-05-22 15:26:09 2482

原创 Erlang Windows安装与下载

简介:Erlang是一种通用的面向并发的编程语言,它有瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。 Erlang官网下载地址:http://www.erlang.org/ windows32位和64位根据自己电脑按需下载。 下载完成直接运行.exe文件。 选择安装地址。 配置系统环境: 新建一个系统变量:名称ER...

2018-05-22 10:33:08 20478 5

转载 SpringCloud 服务网关(三)(过滤器)

过滤器的作用通过上面所述的两篇我们,我们已经能够实现请求的路由功能,所以我们的微服务应用提供的接口就可以通过统一的API网关入口被客户端访问到了。但是,每个客户端用户请求微服务应用提供的接口时,它们的访问权限往往都需要有一定的限制,系统并不会将所有的微服务接口都对它们开放。然而,目前的服务路由并没有限制权限这样的功能,所有请求都会被毫无保留地转发到具体的应用并返回结果,为了实现对客户端请求的安...

2018-04-12 14:56:08 446

转载 Spring Cloud 服务网关(一)(十二)

在上一篇《Spring Cloud构建微服务架构:服务网关(基础)》一文中,我们通过使用Spring Cloud Zuul构建了一个基础的API网关服务,同时也演示了Spring Cloud Zuul基于服务的自动路由功能。在本文中,我们将进一步详细地介绍关于Spring Cloud Zuul的路由功能,以帮助读者可以更好的理解和使用它,以完成更复杂的路由配置。传统路由配置所谓的传统路...

2018-04-04 17:02:13 150

转载 Spring Cloud 服务网关(一)(十一)

通过之前几篇Spring Cloud中几个核心组件的介绍,我们已经可以构建一个简略的(不够完善)微服务架构了。比如下图所示: 我们使用Spring Cloud Netflix中的Eureka实现了服务注册中心以及服务注册与发现;而服务间通过Ribbon或Feign实现服务的消费以及均衡负载;通过Spring Cloud Config实现了应用多环境的外部化配置以及版本管理。为了使得服务集群更...

2018-04-04 16:17:38 140

翻译 Spring Cloud Hystrix监控数据聚合(十)

如何利用Turbine工具监控数据的聚合: 回顾上一架构图如下: 我们构建的内容包括: eureka-server:服务注册中心 eureka-client:服务提供者 eureka-consumer-ribbon-hystrix:使用ribbon和hystrix实现的服务消费者 hystrix-dashboard:用于展示eureka-consumer-ribbon-hystri...

2018-04-02 17:08:57 240

原创 Spring Cloud Hystrix监控面板(九)

基于之前的示例来结合Hystrix Dashboard实现Hystrix指标数据的可视化面板,这里我们将用到下之前实现的几个应用,包括:eureka-server:服务注册中心eureka-client:服务提供者eureka-consumer-ribbon-hystrix:使用ribbon和hystrix实现的服务消费者由于eureka-consumer-ribbon-hystr...

2018-03-24 16:54:49 152

转载 为了不哭大声笑

“为了不哭大声笑。为了不烦大声呸” 这是一首歌的歌词,歌词名叫《穷开心》。歌如其名,整个歌曲的氛围都是一种“咱们老百姓今儿个真高兴”的欢乐,加上主唱团队的演绎, 简直就是活跃气氛、扭转心情、发泄情绪的良药。 是的,这是一首开心欢乐的歌,可是我却从这句歌词中感到了一种莫名的悲伤和心酸。为了不哭大声笑,这是一种怎样的坚强?这种坚强的背后有着多少 无奈和隐忍,又有着怎样的不得已,必须要让...

2018-03-24 14:03:09 583 1

翻译 Spring Cloud Hystrix的依赖隔离和断路器(八)

前言在上一篇中,我们已经体验了如何使用@HystrixCommand来为一个依赖资源定义服务降级逻辑。实现方式非常简单,同时对于降级逻辑还能实现一些更加复杂的级联降级等策略。之前对于使用Hystrix来实现服务容错保护时,除了服务降级之外,我们还提到过线程隔离、断路器等功能。那么在本篇中我们就来具体说说线程隔离。依赖隔离“舱壁模式”对于熟悉Docker的读者一定不陌生,Docker通过...

2018-03-23 16:38:08 1475

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

Hystrix 官方简介:熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元应用间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,...

2018-03-22 17:59:35 210

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

Spring Cloud config简介: 远程配置服务。 远程配置是每个都必不可少的中间件,远程配置的特点一般需要:多节点主备、配置化、动态修改、配置本地化缓存、动态修改的实时推送等。 config允许配置文件放在git上或者svn上,和spring boot的集成非常容易,但是缺点就是修改了git上的配置以后,只能一个一个的请求每个service的接口,让他们去更新配置,没有修改配置的...

2018-03-21 11:24:27 149

转载 Spring Cloud 服务消费Feign(五)

Spring Cloud Feign是一套基于Netflix Feign实现的声明式服务调用客户端。它使得编写Web服务客户端变得更加简单。我们只需要通过创建接口并用注解来配置它既可完成对Web服务接口的绑定。它具备可插拔的注解支持,包括Feign注解、JAX-RS注解。它也支持可插拔的编码器和解码器。Spring Cloud Feign还扩展了对Spring MVC注解的支持,同时还整合了Rib...

2018-03-19 17:03:25 128

SSM+Maven简单整合

SSM+Maven简单整合

2016-04-29

空空如也

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

TA关注的人

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