自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 高频刷题一

题目1给定数组hard和money,长度都为N,hard[i]表示i号的难度, money[i]表示i号工作的收入。给定数组ability,长度都为M, ability[j]表示j号人的能力,每一号工作,都可以提供无数的岗位,难度和收入都一样,但是人的能力必须>=这份工作的难度,才能上班返回一个长度为M的数组ans,ans[j]表示j号人能获得的最好收入数组hard: [7, 1, 1, 3]数组money: [13, 5, 9, 6]将hard和money按...

2021-07-28 22:09:57 198

原创 springCloud学习三之Eureka原理

Eureka原理eureka来源于古希腊词汇,意为“发现了”eureka分为两部分,Server端和Client端Register服务注册想要参与服务注册发现的实例首先需要向Eureka服务器注册信息注册在第一次心跳发生时提交Renew续租,心跳Eureka客户需要每30秒发送一次心跳来续租10:00 00 第一次10:00 3010:0110:01 30 最后更新通知Eureka服务器实例仍然是活动的。如果服务器在90秒内没有看到更新,它将从其注册表

2021-07-25 16:35:39 179

原创 SpringCloud简介

单体架构缺点:1.过度的复杂度  系统本身过于庞大和复杂,以至于任何一个开发者都很难以理解它的全部。这种极度的复杂度会形成恶性循环,由于代码难以理解,因此开发人员更改更容易出错,每一次更改系统更复杂,更难懂。2.开发速度缓慢  因为应用太大,每启动一次都需要很长的时间,因此从编辑到构建、运行再到测试这个周期花费的时间越来越长。3.代码部署的周期很长,而且容易出问题  程序更改部署到生产环境的时间变得更长。代码库复杂,以至于一个更改可能引起的影响是未知的。开发团队分为多个小组,

2021-07-25 15:54:48 223 1

原创 springCloud学习二之Eureka高可用搭建

有两种:1.eureka.client.register-with-eureka=true eureka服务器之间互相注册2.eureka.client.register-with-eureka=false 服务器之间互相独立,服务需要向每台eureka服务器注册,拉取服务列表的时候,需要拉取多台(HTTP请求会变多)Eureka的可靠性增强,降低了一致性搭建过程:第一步:window配置(多网口绑定机制)C:\Windows\System32\drivers\etc下的hos.

2021-07-25 15:53:21 592

原创 算法基础之暴力递归到动态规划

一斐波那契数列:public class Fibonacci { public static int f(int n) { if (n == 1) { return 1; } if (n == 2) { return 1; } return f(n - 1) + f(n - 2); }}中间存在大量的重复过程:可以缓存起来 public

2021-07-18 22:28:53 163

原创 Python学习之列表

列表lst = ['hello', 'world', 996]print(id(lst))print(type(lst))print(lst)列表的特点:列表元素按顺序有序排列 索引映射唯一个数据 列表可以存储重复数据 任意数据类型混存 根据需要动态分配和回收内存获取列表中的元素:正向索引从0到N-1,举例:lst[0]逆向索引从-N到-1,举例;lst[-N]指定索引不存在,抛出IndexErrorlst = ['hello', 'world...

2021-07-18 21:51:32 143

原创 算法基础之线段数

对于数组arr,做如下操作1.对L到R区间的数都加Vadd(L, R, V, arr)2.对L到R区间的数都修改为Vupdate(L, R, V, arr)3.查询L到R区间的数字的和add(L, R, arr)方法一:暴力破解public class BruteForce { public int[] arr; public BruteForce(int[] origin) { arr = new int[origin.length

2021-06-30 23:01:23 353 2

原创 Python循环结构

1、range()函数的使用用于生成一个整数序列 创建range对象的三种方式 range(stop) 创建一个(0,stop)之间的整数序列,步长为1 range(start,stop) 创建一个(start,stop)之间的整数序列,步长为1 range(start,stop,step) 创建一个(start,stop)之间的整数序列,步长为step 返回值是一个迭代器对象 range类型的优点:不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,

2021-06-28 20:44:34 79

原创 程序的组织结构

对象的布尔值Python一切皆对象,所有对象都有一个布尔值获取对象的布尔值:使用内置函数bool()以下对昂的布尔值为FalseFalse 数值0 None 空字符串 空列表 空元组 空字典 空集合print(bool(False)) #Falseprint(bool(0)) #Falseprint(bool(0.0)) #Falseprint(bool(None)) #Falseprint(bool("")..

2021-06-27 21:50:46 109

原创 python input函数与运算符

例子:present=input("生日想要什么礼物呢?")print(present)输入函数会提示用户输入信息,然后将数据的信息赋值给变量求两个数字和a=input("输入一个数")b=input("输入另一个数")print(type(a), print(type(b)))print(a + b)如果直接输入,则是字符串拼接a=int(input("输入一个数"))b=int(input("输入另一个数"))print(type(a), print(

2021-06-27 16:18:25 747

原创 暴力递归到动态规划

暴力递归到动态规划N皇后N皇后问题是指在N*N的棋盘上要摆N个皇后,要求任何两个皇后不同行、不同列,也不在同一条斜线上,给定一个整数n,返回n皇后的摆法有多少种。n=1,返回1;n=2或3,2皇后和3皇后问题无论怎么摆都不行,返回0;n=8,返回92...

2021-06-20 21:53:46 86

原创 算法基础之递归

暴力递归暴力递归

2021-06-14 22:14:59 97

原创 Python变量与数据结构

Python中的标识符与保留字保留字:import keywordprint(keyword.kwlist)['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', .

2021-06-14 21:05:47 145

原创 Python输出函数print

aaa

2021-06-14 16:23:26 276

原创 算法基础三之链表、栈、队列、递归

链表单向链表单向链表节点结构(可以实现成泛型)public class Node<T> { public T value; public Node next; public Node(T value) { this.value = value; }}双向链表public class DoubleNode { public int value; public DoubleNode pre; publ

2021-05-23 23:34:13 116

原创 springCloud学习三之Eureka健康检查

自我保护机制机制Eureka在CAP理论当中是属于AP , 也就说当产生网络分区时,Eureka保证系统的可用性,但不保证系统里面数据的一致性默认开启,服务器端容错的一种方式,即短时间心跳不到达仍不剔除服务列表里的节点EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANC

2021-03-21 21:39:28 810

原创 springCloud学习四之通过Eureka实现服务调用

1.实现Eureke Server<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd

2021-03-20 22:56:46 689

转载 2021JAVA面试题附答案(持续更新版)

1.JAVA基础1.JAVA中的几种基本类型,各占用多少字节?下图单位是bit,非字节 1B=8bit2.String能被继承吗?为什么?不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变。平常我们定义的String str=”abc”(直接赋一个字面量);其实和String str=new String(“abc”)(通过构造器构造)还是有差异的。 String str=“abc”和String str=ne...

2021-03-14 20:16:55 12300

转载 深入Java虚拟机之类加载

深入Java虚拟机_ClassLoader类加载器深入剖析 Java虚拟机与程序的生命周期 在如下几种情况下,Java虚拟机将结束生命周期 执行了System.exit()方法 程序正常执行结束 程序在执行过程中遇到了异常或错误而异常终止 由于操作系统出现错误而导致Java虚拟机进程 类的加载连接和初始化 加载:查找并加载类的二进制数据 连接 验证:确保被加载的类的正确性 准备:为类的静态变量分配内存,并将其初始化为默认值 解析:把类

2021-03-14 20:16:13 281

转载 深入理解Java类实例化时jvm执行顺序

前言关于jvm类加载器我们面试的时候会经常问到,如果相关概念不清楚的话可以参阅我的深入理解虚拟机之类加载器 。这一篇文章旨在实战演示jvm执行的顺序。示例代码package com.jdk.learn;/*** Created by ricky on 2017/8/25.** 类加载器加载顺序考究***/public class ClassLoaderTest { public static void main(String[] args) {...

2021-03-14 20:14:11 363

转载 JAVA--String str=““与new String()的区别

目录常量池:使用String直接赋值:使用new String创建字符串:String拼接字符串:String.intern():总结:常量池: 常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。在常量池中存储字符串常量的内存空间,即字符串常量池,当需要使用字符串时,先去字符串池中查看该字符串是否已经存在,如果存在,则可以直接使用,如果...

2021-03-14 20:08:00 438

原创 mybatis学习二之增删改查

1.增加,并返回主键的id:配置文件不详细说,见上一篇博客:mybatis学习一之入门示例在BlogDao中增加接口: /** * 插入后返回id * * @param blog */ public void insertCacheId(Blog blog) { mapper.insertCacheId(blog); this.close(); }mapper文件增加接口:void inse

2021-03-14 14:31:44 69

原创 JVM面试题总结

待更新

2021-03-07 16:36:38 114

原创 算法基础二之二分法与异或运算

时间复杂度待补充

2021-02-24 22:48:36 187

原创 算法与数据结构之排序算法

选择排序package com.zy.base.class001;import java.util.Arrays;public class Code01_SelectionSort { public static void selectionSort(int[] arr) { if (arr == null || arr.length < 2) { return; } for (int i = 0; i .

2021-02-18 22:49:15 66

原创 刷题篇一:单调栈和窗口及其更新结构

滑动窗口是什么?滑动窗口是一种想象出来的数据结构:滑动窗口有左边界L和右边界R在数组或者字符串或者一个序列上,记为S,窗口就是S[L..R]这一部分L往右滑意味着一个样本从左侧出了窗口,R往右滑意味一个样本进了窗口L和R都只能往右滑并且L<=R...

2021-02-06 22:28:42 86

原创 mongodb安装

创建目录:[root@localhost opt]# mkdir -p /mongodb/data[root@localhost opt]# mkdir -p /mongodb/logs[root@localhost opt]# mkdir -p /mongodb/conf下载:wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.3.tgz解压:tar -zxvf mongodb-shell-

2021-01-23 20:34:14 113 2

原创 1. 两数之和

给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target = 6...

2021-01-16 22:47:42 115

原创 MongoDB初识

对比关系数据库 MongoDB RDBMS 数据模型 文档模型 关系模型 数据库类型 OLTP OLTP RURD操作 MQL/SQL SQL 高可用 复制集 集群模式 横向扩展能力 通过原生分片完善支持 数据分区或者应用侵入式 索引支持 B-数、全文索引、地理位置索引、多键(multikey)索引,TLL索引 B树 开发难度 容易 困难 数据容量 没有理论...

2021-01-09 22:44:58 87

原创 netty-简易聊天

界面:package com.zy.nettychat;import java.awt.BorderLayout;import java.awt.Frame;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import

2021-01-03 17:17:58 226 1

原创 前缀树

1)单个字符串中,字符从前到后的加到一颗多叉树上2)字符放在路上,节点上有专属的数据项(常见的是pass和end值)3)所有样本都这样添加,如果没有路就新建,如有路就复用4)沿途节点的pass值增加1,每个字符串结束时来到的节点end值增加1可以完成前缀相关的查询...

2020-12-27 22:35:59 70

原创 Netty入门

网络模型:编程模型TCP、UDP1.TCP->可靠连接 使命必达2.UDP->不可靠 速度快

2020-12-20 22:50:15 104

原创

堆堆结构就是用数组实现的完全二叉树结构完全二叉树中如果每棵子树的最大值都在顶部就是大跟堆完全二叉树中如果每棵子树的最小值都在顶部就是小根堆以0开始左孩子:2 * i + 1右孩子:2 * i + 2父 (i - 1) / 2另外一种表示:下标为0弃掉 方便使用位运算左孩子2 * i 》》》》》对应的位运算 i<<1右孩子2 * i + 1 》》》》》对应的位运算 i<<1 | 1父 i/2 ...

2020-12-16 22:29:55 93

原创 spring初始

1、框架框架就是一些类和接口的集合,通过这些类和接口协调来完成一系列的程序实现。JAVA框架可以分为三层:表示层、业务层和物理层。框架又叫做开发中的半成品,它不能提供整个WEB应用程序的所有东西,但是有了框架,我们就可以集中精力进行业务逻辑的开发而不用去关心它的技术实现以及一些辅助的业务逻辑。大家熟知的structs和spring就是表示层和业务层框架的强力代表。(说的太官方了)人话:框架就是某些人或者组织定义了一系列的类或者接口,提前定义好了一些实现,用户可以在这些类和接口的基础之上,使用这些

2020-12-13 22:57:17 77

转载 设计模式之策略模式

在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。介绍意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。如

2020-12-13 18:44:06 101

原创 快速排序

快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。算法描述快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法描述如下:从数列中挑出一个元素,称为 “基准”(pivot); 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(par

2020-12-13 15:06:17 112

原创 归并排序

递归方法:package com.zy.base.class003;public class Code01_MergeSort { public static void main(String[] args) { int[] arr = {10, 2, 5, 6, 1, 3, 9}; new Code01_MergeSort().mergeSort(arr); System.out.println(); } public st

2020-12-12 15:15:47 84 1

转载 设计模式之模板方法模式

定义:在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。介绍意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。主要解决:一些方法通用,却在每一个子类都重新写了这一方法。何时使用:有一些通用的方法。如何解决:将这些通用算法抽象出来。关键代码:在抽象类实现,其

2020-11-28 22:28:44 72

原创 SPI

1、什么是SPI?SPI(Service Provider Interface)是JDK内置的服务发现机制,用在不同模块间通过接口调用服务,避免对具体服务服务接口具体实现类的耦合。比如JDBC的数据库驱动模块,不同数据库连接驱动接口相同但实现类不同,在使用SPI机制以前调用驱动代码需要直接在类里采用Class.forName(具体实现类全名)的方式调用,这样调用方依赖了具体的驱动实现,在替换驱动实现时要修改代码。而采用SPI机制后,在驱动jar包的META-INF/services下面新建一个驱动接口全

2020-11-22 22:08:24 158 1

原创 分布式事务

分布式事务解决方案:两阶段提交协议:基于XA协议的,采用强一致性,遵从ACID2PC:(2阶段提交协议),是基于XA/JTA规范过程:1.请求阶段(commit-request phase,或称表决阶段,voting phase)在请求阶段,协调者将通知事务参与者提交或取消事务,然后进入表决过程。在表决过程中,参与者将告知协调者自己的决策:同意(事务参与者本地作业执行成功)或取消(本地作业执行故障)。2.提交阶段:在该阶段,协调者将基于第一个阶段的投票结果进行决策:提

2020-11-01 22:47:33 85

空空如也

空空如也

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

TA关注的人

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