自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(140)
  • 资源 (4)
  • 收藏
  • 关注

转载 2021-05-30 排序优化:如何实现一个通用的、高性能的排序函数

今天,我会讲三种时间复杂度是 O(n) 的排序算法:桶排序、计数排序、基数排序。因为这些排序算法的时间复杂度是线性的,所以我们把这类排序算法叫作线性排序(Linear sort)。之所以能做到线性的时间复杂度,主要原因是,这三个算法是非基于比较的排序算法,都不涉及元素之间的比较操作。这几种排序算法理解起来都不难,时间、空间复杂度分析起来也很简单,但是对要排序的数据要求很苛刻,所以我们今天学习重点的是掌握这些排序算法的适用场景。...

2021-05-30 17:34:39 141

转载 2021-05-25 线性排序:如何根据年龄给100万用户数据排序

今天,我会讲三种时间复杂度是 O(n) 的排序算法:桶排序、计数排序、基数排序。因为这些排序算法的时间复杂度是线性的,所以我们把这类排序算法叫作线性排序(Linear sort)。之所以能做到线性的时间复杂度,主要原因是,这三个算法是非基于比较的排序算法,都不涉及元素之间的比较操作。...

2021-05-30 10:41:37 174

转载 2021-05-25 JAVA线上故障排查全套路

1线上故障主要会包括cpu、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top 三连,然后依次jstack、jmap伺候,具体问题具体分析即可。CPU一般来讲我们首先会排查cpu方面的问题。cpu异常往往还是比较好定位的。原因包括业务逻辑问题(死循环)、频繁gc以及上下文切换过多。而最常见的往往是业务逻辑(或者框架逻辑)导致的,可以使用j

2021-05-25 22:56:22 244

转载 2021-05-24 如何用快排思想在O(n)内查找第K大元素

今天,我讲两种时间复杂度为 O(nlogn) 的排序算法,归并排序和快速排序。这两种排序算法适合大规模的数据排序。归并排序和快速排序都用到了分治思想,非常巧妙。我们可以借鉴这个思想,来解决非排序的问题,比如:如何在 O(n) 的时间复杂度内查找一个无序数组中的第 K 大元素?归并排序的原理归并排序的核心思想还是蛮简单的。如果要排序一个数组,我们先把数组从中间分成前后两部分,然后对前后两部分分别排序,再将排好序的两部分合并在一起,这样整个数组就都有序了。归并排序使用的就是分治思...

2021-05-24 23:35:53 213

转载 2021-05-16 排序(上):为什么插入排序比冒泡排序更受欢迎?

如何分析一个“排序算法”?排序算法的执行效率排序算法的内存消耗冒泡排序(Bubble Sort)插入排序(Insertion Sort)选择排序(Selection Sort)

2021-05-18 00:11:28 117

转载 2021-05-15 递归:如何用三行代码找到“最终推荐人”

如何理解“递归”? 递归需要满足的三个条件 如何编写递归代码? 递归代码要警惕堆栈溢出 递归代码要警惕重复计算 怎么将递归代码改写为非递归代码? 如何找到“最终推荐人”? ...

2021-05-16 00:39:56 84

转载 2021-05-12 09丨队列:队列在线程池等有限资源池中的应用

如何理解队列 顺序队列和链式队列

2021-05-15 00:07:51 77

转载 2021-05-11 08丨栈:如何实现浏览器的前进和后退功能

栈的特点 栈是一种操作受限的“线性表”,只需要在一端操作插入和删除。先进后出,后进先出; 如何实现栈 栈主要包含两个操作,在栈顶插入一个数据,或者在栈顶删除一个数据; 栈在函数调用中的应用 支持动态扩容的顺序栈 栈在表达式中的应用 使用两个栈,一个存储操作数,一个存储运算符;数字直接入栈;当运算符入账,遇到栈顶运算符优先级别低于或者等于它的时候,就把前面两个数取出来执行运算,再把结果入栈; 栈在括号匹配中的应用 我们假设表达式中只包含三种括号..

2021-05-11 23:37:05 185

转载 2021-05-10 07丨链表(下):如何轻松写出正确的链表代码?

技巧一:理解指针或引用的含义技巧二:警惕指针丢失和内存泄漏技巧三:利用哨兵简化实现难度技巧四:重点留意边界条件处理技巧五:举例画图,辅助思考技巧六:多写多练,没有捷径...

2021-05-11 21:51:41 89

转载 2021-05-09-链表(上):如何实现LRU缓存淘汰算法

链表的特点 通过指针将一组零散的内存块串联在一起;内存块称为链表的结点;为了将所有的结点联系起来,每个链表的结点除了存储数据之外,还需要记录链上下一个结点的地址,这个记录下个结点地址的指针叫后继指针; 单链表 双向链表 循环链表 双向循环链表 链表vs数组性能 如何实现lru缓存淘汰算法 如何判断一个字符串是回文字符串,如果这个字符串是链表存储的,时间空间复杂度如何 ...

2021-05-10 23:45:17 87

转载 2021-05-09实战一(上):业务开发常用的基于贫血模型的MVC架构违背OOP吗

什么是贫血模型?什么是充血模型? 为什么说基于贫血模型的传统开发模式违反 OOP? 基于贫血模型的传统开发模式既然违反 OOP,那又为什么如此流行? 什么情况下我们应该考虑使用基于充血模型的 DDD 开发模式 ...

2021-05-09 22:26:17 115

转载 2021-05-08-数组:为什么很多编程语言中数组都从0开始编号?

数组:线性表数组基本概念 数组的特点 数组和链表的区别 数组下表为什么从0开始

2021-05-09 00:55:01 75

转载 centos 8 steam docker install rabbitmq

查找镜像带有可视化界面[root@VM-0-15-centos ~]# docker search rabbitmq:managementNAME DESCRIPTION STARS OFFICIAL AUTOMATEDmacintoshplus/rabbitmq-management Based on.

2021-03-30 11:32:10 184

原创 centos8 stream install docker

使用DNF添加并启用官方Docker CE存储库。在终端窗口中输入以下命令: 安装containerd.io包手动 安装最新版docer ce 启用docker 添加当前用户加入docker用户组 关闭防火墙 重新登录,可以使用了 sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.reposudo dnf install

2021-03-30 10:10:16 1183 1

转载 20200808 linux搭建zookeeper集群

搭建zookeeper集群(一主两从)zk启动依赖java的JDK,所以要先安装JDK不会安装JDK的可以看这https://www.jianshu.com/p/ea5c72b273d7教程,安装完成JDK后下载zk的tar包并使用winSCP上传到3台linux服务器https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/开始搭建zookeeper集群(一主两从)我启动了3台linux服务器,IP分别是192.168.79.1

2020-08-08 14:57:07 400

转载 20200607 spring常见面试

面试题1. Spring中bean的循环依赖怎么解决?(一). 首先说一下什么是Spring的循环依赖:其实就是在进行getBean的时候,A对象中去依赖B对象,而B对象又依赖C对象,但是对象C又去依赖A对象,结果就造成A、B、C三个对象都不能完成实例化,出现了循环依赖。就会出现死循环,最终导致内存溢出的错误。(二).如何去解决Spring的循环依赖呢?1.先知道什么是Spring的“三级缓存”:就是下面的三个大的Map对象,因为Spring中的循环依赖的理论基础其实是基于java中的值传递的,

2020-06-07 21:56:24 242

转载 20200607 MYSQL基础面试

  事务四大特性(ACID)原子性、一致性、隔离性、持久性?  原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。  一致性(Consistency)  事务开始前和结束后,数据库的完整性约束没有被破坏。比如A向B转账,不可能A扣了钱,B却没收到。  隔离性(Isolation)  隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开

2020-06-07 21:35:42 170

转载 20200512 JVM监控命令详解(转)

JVM监控命令基本就是jps、jstack、jmap、jhat、jstat几个命令的使用就可以了JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。 现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lo...

2020-05-12 15:05:36 231

转载 20200512 10分钟看懂, Java NIO 底层原理

1.1. JavaIO读写原理无论是Socket的读写还是文件的读写,在Java层面的应用开发或者是linux系统底层开发,都属于输入input和输出output的处理,简称为IO读写。在原理上和处理流程上,都是一致的。区别在于参数的不同。用户程序进行IO的读写,基本上会用到read&write两大系统调用。可能不同操作系统,名称不完全一样,但是功能是一样的。先强调一个基础知识:read系统调用,并不是把数据直接从物理设备,读数据到内存。write系统调用,也不是直接把数据,写入到物理.

2020-05-12 10:18:19 180

转载 20200510 redission入门

我们现在看到的就是redission官方网站https://redisson.org首页可以看出来,redisson可以实现很多东西,在redisson的基础上,redisson做了超多的封装,我们看一下,例如说Spring Cache,TomcatSession,Spring Session,可排序的Set,还有呢Sortedsort,下面还有各种队列,包括这种双端队列,还有map,这些是数据结构,下面就是各种锁,读写锁,这里面的锁还包含,可重入锁,还有CountDownLant...

2020-05-10 19:35:09 219

转载 20200510 分布式锁的几种实现

分布式锁很久之前有讲过并发编程中的锁并发编程的锁机制:synchronized和lock。在单进程的系统中,当存在多个线程可以同时改变某个变量时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置该标记,其余后续线程发现已经有标记了则等待拥有标记的线程结束同步代码块取消标记后再去尝试设置标记。分布式环境下

2020-05-10 12:56:12 137

转载 20200510 深入理解SPI机制

一、什么是SPISPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。这一机制为很多框架扩展提供了可能,比如在Dubbo、JDBC中都使用到了SPI机制。我们先通过一个很简单的例子来看下它是怎么用的。1、小栗子首先,我们需要定义一个接口,SPIServicepackage com.viewscenes.netsupervisor.sp.

2020-05-10 08:40:46 205

转载 20200509 Curator入门

简介Curator是Netflix公司开源的一套zookeeper客户端框架,解决了很多Zookeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher和NodeExistsException异常等等。Patrixck Hunt(Zookeeper)以一句“Guava is to Java that Curator to Zookeeper” 给Curator予高度评价。Curator的maven依赖:一般直接使用curator-recipes就行了,如果需要自己封装一些底层些的功.

2020-05-09 17:09:05 171

转载 javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

臭名昭著的Java异常javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure很难被凡人理解。它最想说的是这样的:抱歉,JVM和服务器均不接受任何加密协议/版本和密码套件。例如,服务器需要的TLS版本高于(旧)JVM支持的TLS版本,或者它需要比JVM知道的更强的密码套件。现在,您将学习如何...

2020-04-21 10:44:11 4858

转载 20200411 query AJAX post提交json示例 和 ajax请求导致status为canceled

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Blockchain Platform</title></head><script type="text/javascript" src="js/j...

2020-04-11 10:17:36 248

原创 20200228华为手机安装谷歌商店,Download the latest Google Play Store APK

华为手机升级EMUI10系统后,谷歌商店无法安装,提示存在较高版本的原因:安装的谷歌商店版本过低,无法匹配谷歌商店服务解决办法:安装最新版本的谷歌商店Download Google Play Store APKApplication Name Google Play Store File Name play-store-19012.apk Versio...

2020-02-29 12:34:06 8533

原创 python3闭包函数练习题

作业1编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件)。要求:登录成功一次,后续的函数都无需再输入用户名和密码;注意:从文件中读出字符串形式的字典,可以用以下方式把字典字符串转化成字符串eval('{"name":"albert","password":"123"}')db = 'a.txt'login_status = {'status': False}...

2020-02-18 16:55:29 859

原创 python3文件处理练习题

练习一写一个程序在要保持文件内容的顺序不变的前提下,去除文件中重复的行。import oswith open('db.txt', 'r', encoding='utf-8') as read_f, \ open('db.txt.swap', 'w', encoding='utf-8') as write_f: s = set() for line in...

2020-02-18 16:10:02 1021

原创 python3数据类型操作练习题

一、字符串函数操作name = " alberT"# 1 移除 name 变量对应的值两边的空格,并输出处理结果print(name.strip())# 2 判断 name 变量对应的值是否以 "al" 开头,并输出结果print(name.startswith('al'))# 3 判断 name 变量对应的值是否以 "T" 结尾,并输出结果print(name.endswith...

2020-02-18 12:03:57 755

转载 Python3 闭包及装饰器

一.什么是闭包 不同编程语言实现闭包的方式是不同的,python中闭包从表现形式上看,如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。举个例子:def outer(x): def inner(y): return x + y return inner 结合这段...

2020-02-15 21:23:14 133

转载 MongoDB 基本操作语句及实例

MongoDB项目介绍MongoDB : 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。来源...

2020-02-03 20:10:01 778

转载 MongoDB快速入门

1.MongDB 简介MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。作为一个适用于敏捷开发的数据库,MongoDB 的数据模式可以随着应用程序的发展而灵活地更新。与此同时,它也为开发人员 提供了传统数据库的功能:二级索引,完整的查询系统以及严格一致性等等。 MongoDB 能够使企业更加具有敏捷性和可...

2020-02-03 20:03:40 184

转载 python3 requests模块用法实例

requests是通过urllib3实现自动发送HTTP/1.1请求,它能轻松的实现cookies,登陆验证,代理设置等操作。Python内置的urllib模块,用于访问网络资源。但是,它用起来比较麻烦,而且,缺少很多实用的高级功能。更好的方案是使用requests。它是一个Python第三方库,处理URL 资源特别方便requests实现内容:保持活力和连接池 支持国际域名...

2020-01-29 17:11:12 682

转载 Python pip换国内镜像源方法(Windows+Linux)

用python的时候,我们都会用pip安装很多东西,如果你的pip源不是国内镜像源的话,也是一件让人很头疼的事情,今天特意来分享给大家:pip国内源有哪些?清华:https://pypi.tuna.tsinghua.edu.cn/simple豆瓣:http://pypi.douban.com/simple/阿里云:http://mirrors.aliyun.com/py...

2020-01-28 20:53:55 1014

转载 java8之lambda表达式&方法引用

本文将简单的介绍一下Lambda表达式和方法引用,这也是Java8的重要更新,Lambda表达式和方法引用最主要的功能是为流(专门负责迭代数据的集合)服务.什么是lambda表达式可以把lambda表达式理解为简洁的匿名函数.我们先声明一个函数式接口(函数式接口:就是只有一个抽象方法的接口.lambda表达式和方法引用,只能用在函数式接口上),比较一下lambda表达式和匿名函数...

2020-01-19 16:15:41 207

转载 Spring父子上下文重叠

问题描述如果使用传统的方式来开发Spring项目,要部署在Tomcat上面,一般会依赖Spring与Spring MVC,在Tomcat的web.xml中会配置一个加载service的配置文件,这个在Tomcat启动的时候会进行加载,会生成一个Spring的容器。默认情况下,Tomcat会在资源目录下加载配置servlet名称的另外一个xml配置文件,比如servlet名称为test,那么...

2020-01-17 17:44:08 1876

原创 Spring Cloud Alibaba Nacos介绍和示例工程代码和集群配置

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

2020-01-17 11:15:18 443 1

原创 通用Mapper代码生成器

maven pom配置1.引入依赖,spring-boot-starter已经包含maven-compilem,只需要引入generator插件 <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-sp...

2020-01-15 10:19:08 298

原创 微服务架构基础知识

2020-01-14 09:51:24 108

原创 Springboot之actuato介绍及漏洞

Spring Boot Actuator可以帮助你监控和管理Spring Boot应用,比如健康检查、审计、统计和HTTP追踪等。所有的这些特性可以通过JMX或者HTTP endpoints来获得。Actuator同时还可以与外部应用监控系统整合,比如 Prometheus, Graphite, DataDog, Influx, Wavefront, New Relic等。这些系统提供了非常好的...

2020-01-10 17:32:54 7415

WIN7 64位机上免安装MySql架设

win7 64位 免安装 mysql,无需配置,含作者常用批处理命令

2011-06-12

英文文献翻译,最新出炉~

英文 文献 翻译 高质量 毕业论文 最新出炉的 给有需要的人~~~~~

2009-05-06

矩阵连乘源代码

算是经典的矩阵连乘的源代码,给有需要的人~~~~~

2008-01-09

算法设计与分析要点复习要点

算法设计与分析要点复习,比较精辟

2008-01-05

空空如也

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

TA关注的人

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