自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 effective java第二章

用静态工厂替代构造函数1、关于可以重复使用对象以及命名的优势理解,但是其中可以返回原返回类型的任何类型,而该返回可以是非公有的。如下面的例子,unmodifiableSet本身对外声明的返回类型是set接口,但是实际返回的是UnmodifiableSet这样一个非共有的类型。也就是其实对于静态的工厂函数可以返回一个接口,具体的返回可以是该接口的任何子类,甚至是非公有,这样通过返回类型就明确是什么类型,但是又不关系具体到底是哪个实现类,足够灵活。 public static <T>

2021-11-08 11:06:41 357

原创 SQL窗口函数

现在存在一个成绩表,成绩表如下:现在想要得到每个同学在所在班级的排名,这个是明显的窗口函数的应用。窗口函数常用的语法:<窗口函数> over (partition by <用于分组的列> order by <用于排序的列>)1、可以通过over确定一个窗口,即是该行数据所在的组以及将数据按照指定排序的列进行排序:例如,以上,对于第一行数据得到的窗口就是包括001以及003的学号的数据,并按照成绩排名,而基于这个窗口进行相应的计算。2、常见的窗口函数:●

2021-10-25 18:35:57 267

原创 leetcoed题目记录—142 环形链表(双指针)

leetcoed题目记录—142 环形链表(双指针)题目理解这道题其实就是看一个链表是否是一个环,很容易想到的方法就是遍历,走过的记录一下,之后如果出现了走过的节点,那么这个节点就是入环节点,就直接返回即可。但是这种情况是需要O(n)的空间复杂度的。因此看题解,使用快慢指针的方法。快慢指针方法如上图所示,首先,存在一个fast指针,每次走两个,存在一个low指针,每次走一个。1.如果有环,必定相遇:因为每次fast比low多走一个,所以入环之后,fast一定可以追赶上low2、并且在一个环内

2021-02-04 11:49:03 218 1

原创 LinkedHashMap与LRU

HashMaphashMap的元素其实是一个Entry。1、put方法:其实我们一般用的就是put方法,但是对于HashMap的put方法存在有好几种,什么putIfAbsent等,其各种方法其实都是直接调用的putVal这个方法:final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { ....}其中除了key以及value之外,存在o

2020-12-10 09:49:20 297

原创 shrio

shrioshrio是做权限管理的,对比于spring security是很轻量级的,但是对于功能也会相对有限制。shrio的功能功能就是认证(登录实现)、资源权限管理、记住我、加密等基本简介首先shrio的内部架构就是三个部分,subject就是指当前的用户(不一定的人)是shrio和外部的jpa、securityManager是对subject进行管理的,相当于一个过滤器和控制器,然后realm是可以自定义的,就是需要的相关的数据,可以看成是一个datasource.之后会从多个角度描述,

2020-11-04 14:49:21 352

原创 GRPC

GRPCgrpc是谷歌的rpc框架,通过一个小小的demo,理解一下其工作原理。构建一个java语言调度python语言组成的服务的这样一个demo,对grpc进行充分理解。首先对于rpc其实之前有过学习,如下图所示:服务端中的每个服务包含许多的方法,通过一个对外的IP以及端口对外提供服务,客户端即服务调用者在本地开放多个动态代理,在本地需要调度远程服务的时候,仅仅需要调度动态代理提供的服务,看起来貌似就是本地调用一样。。。总得来说就是,服务端整合出一个服务模块对外提供服务,然后客户端通过动态代理

2020-11-02 11:25:31 120

原创 延迟任务-队列实现

延时队列延迟任务延迟队列的出现就是为了延迟任务,所谓的延迟任务就是“在一个事件发生之后触发”,并且就执行一次,不具备周期执行的特征。因此延迟任务具备的特征:1、发起事件的不确定性2、执行的一次性常见的延迟任务:(1)淘宝对于订单生成之后,存在30min的延迟时间,在30min未支付则需要取消订单,因此取消订单就是一个延迟任务。定时扫描数据库对于未支付的订单,需要进行定期扫描,判断其产生时间有没有超过固定的时间,如果超过则取消订单。这样做,很明显很垃圾,因为:(1)你说你扫描数据库,你知道在

2020-10-23 19:44:05 391

原创 Java垃圾回收机制

Java内存机制java内存主要分成两类,一种是栈内存,一种是堆内存。补充:按照一个例子来:public class Person { private String name; private int age; private static int eyesNum; public static void main(String[] args){ Person p=new Person(); } public static int g

2020-09-15 14:55:28 129

原创 Java以及网络编程(InetAddress、InetSocketAddress、 NetworkInterface)

InetAddress以及InetSocketAddressInetAddress是一个Java中的类,这个类种有很多方法,且这些方法都是静态的,因此可以利用类直接进行引用。这个类是封装Ip的,可以获得本机的ip以及本机的主机名,同时这个类支持将将域名转换。而相对的InetSocketAddress是封装ip以及端口的,这个类是有构造函数的,而InnetAddress是不存在构造函数的,而InetSocketAddress的构造函数的属性存在有(String hostname, InetAddress a

2020-09-14 22:35:50 286

原创 RPC的小demo

RPC的小demo理论RPC其实就是远程程序调用,即Remote Procedure Call,相对于远程程序调用,其实最常见的调用就是本地函数调用,比如main函数中调用两数相加的函数,实现两数相加,这种形式在单体应用中,当然是很常见的,但是对于在分布式的场景下,就无法满足了,比如主机A总是想要主机B上的某些服务,就可以利用远程调用的方式。但是很容易想到的是,我们可以直接HTTP请求啊,但是利用httpclient需要对于参数这些的设定,无法将模块抽象出来,而RPC则就是要解决远程调用像在本地调用一

2020-09-07 12:02:04 363

原创 mybatis-generator

这里写自定义目录标题mybatis-generator前提准备配置配置文件编写generatorConfig.xml编写mybatis-config文件mybatis-generatormybatis-generator可以用来自动生成实体类、mapper接口、mapper的xml文件。前提准备在数据库表建立完整的前提下pom.xml中: <dependency> <groupId>org.mybatis.generator</g

2020-08-11 20:17:43 113

原创 SpringBoot后端解决跨域问题

SpringBoot后端解决跨域问题对于跨域问题从下面四个方面进行描述1、从什么时候就跨域了?一个项目的地址是:http://localhost:8183//jiajiawen另一个项目地址是:http://localhost:8183//jiajiawen2、什么原因引起的当第一个项目需要访问第二个项目的就会出现跨域问题。跨域问题主要是源自于浏览器的同源策略。同源即域名,协议,端口**均相同,只要有一个不同,就是跨域3、解决——CORS关于跨域问题的解决前端有很多的方法,这里主要描述后端解

2020-07-29 15:47:19 1153

原创 关于 @PathVariable @RequestParam @RequestBody

@PathVariable @RequestParam 的get请求: @GetMapping("/test1/{id}") public String show(@PathVariable(value = "id") String stuId, @RequestParam(value = "name",required = true)String name, @RequestParam(value

2020-07-29 14:34:43 572

原创 springboot+rabbitMQ实现消息延迟

消息队列为什么需要消息队列所有东西的出现都存在一定的原因,消息队列一定是解决了很多问题,所以它才会存在。这个应该也是当我们了解到一个新的知识下的时候首先需要去做的是明确为什么存在这个技术,这个技术可以解决哪些问题,这样再去进行相关的学习,这样你才会对于它的作用理解的更加深刻!为什么需要消息队列呢?这个可以从一个实际的例子出发:取快递的例子,菜鸟驿站就是快递员把东西放在菜鸟驿站,我们有时间再去拿,菜鸟驿站就可以理解成一个消息队列。它实现了什么,就是消息队列的作用。1、解耦:如果没有这样的菜鸟驿站,需

2020-07-07 16:09:11 873 2

原创 springboot整合druid连接池

springboot整合druid连接池引入依赖<!--加入druid连接池--><!-- https://mvnrepository.com/artifact/com.alibaba/druid --><dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.5&

2020-07-02 17:16:05 204

原创 Redis

RedisSpringboot集成Redisredis常常作为项目中的缓存机制存在。1、加入依赖 <!--加入Redis缓存机制--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId&

2020-06-28 11:07:16 139

原创 git-learn

所谓的git其实就是完成一个协同开发的作用,你在本地进行了代码的更i新,需要上传到远程库中,实现代码的同步.这样,才能完成有效的团队写作!简单的说就是把本地的文件上传到团队库中以及从团队库中下载内容的作用!本地库$ mkdir learngit # 建立一个本地文件夹,把想要上传的文件代码放在这里$ cd learngit #进入该文件夹$ pwd # 这个命令是展示当前位置的命令/Users/michael/learngit$ git init # 将该文件夹下的文件变成git可以管理的

2020-05-31 09:11:59 233

原创 IPerf网络性能测试工具

最近项目中需要Iperf的工具,因此实施调研了一下。Iperf可以测试TCP以及UDP协议下的一些网络性能,如带宽、丢包率等。通过这个过程,我好像深刻明白了docker的意义。本身我自己是开了两个虚拟机,进行相关的网络性能的测试,但是呢,我的本子太太太差劲了,开了两个虚拟机,就要炸。在别人的建议下,开了两个docker进行了相关的测试。过程测试前准备拉取Iperf镜像我自己是去到网易的镜像仓库中去查找拉下来的。docker pull hub.c.163.com/zrc2015/iperf:lat

2020-05-28 10:48:07 697

原创 力扣50题,快速幂法

题目描述:实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000思路:5^8=5^4*5^45^7=5*5^6对于负数,5^(-2)=(1/5)^2代码:class Solution: def myPow(self, x: float, n: int) -> float: ...

2020-04-29 23:17:02 287

原创 SpringBoot集成国际化

1、在resources下建立i18n文件夹,并在文件夹下建立login.properties文件,之后建立login_en_US.properties文件,之后识别这是一个国家化的文件,会出现“Resource Bundle ‘login’”,之后右键这个标记,new-add一个操作如图片:输入语言_地区(如:en_US)就可以新建一个另一个语言的文件。2、设置默认字符设置(防止乱码):...

2020-04-24 22:30:50 739

原创 LeetCode 49. 字母异位词分组

题目描述:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]来源:力扣(LeetCode)链接:https://leetcode-cn...

2020-04-15 23:01:48 128

原创 leetCode 48. 旋转图像

题目描述:给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],来源:力扣(LeetCode)链接:https://leetcode-cn.co...

2020-04-12 19:58:32 128

原创 leetcode 47. 全排列 II

题目描述:给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutations-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题:...

2020-04-11 23:07:37 262

原创 leetcode 46. 全排列

今天很快就做出来了,我有进步哎!题目描述:给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/perm...

2020-04-10 16:41:41 54

原创 LeetCode 45. 跳跃游戏 II

题目描述:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。来源:力扣(LeetC...

2020-04-09 22:37:02 93

原创 leetcode 42. 接雨水

题目描述:思路:1.对数组中的每个数字进行遍历。能否接雨水取决于在他的两边是不是都比它高(大),并且都比他高的情况下,还取决于比较矮的那个(木桶原理)2.为了减少时间复杂度,可以用空间替代时间。对数组中每个元素的max_left以及max_right利用数组进行相关的记录。上代码:class Solution: def trap(self, height: List[int])...

2020-04-08 23:28:47 115

原创 力扣 44. 通配符匹配

用动态规划解决问题描述:给定一个字符串 (s) 和一个字符模式 (p) ,实现一个支持 '?' 和 '*' 的通配符匹配。'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s =...

2020-04-05 20:24:09 232

原创 力扣 43.字符串相乘

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 和 num2 的长度小于110。num1 和 num2 只包含...

2020-04-04 21:33:10 211

原创 力扣 41. 缺失的第一个正数

哈哈哈,今天有一些晚,别说了,今天的我是一事无成的我,等科二考试等了一整天,但是最后还是没考,我哭了,好累啊。明天努力,明天上午项目相关,下午和晚上自学。力扣题目描述:给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。 示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]...

2020-04-03 22:29:31 91

原创 力扣40 组合总和 II

认真坚持的第二天,希望可以坚持一周,然后在坚持21天,然后我就会成为一个十分钟解题的大佬…,(!停止幻想)悄咪咪说一句,希望明天科二可以顺利通过!题目:给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正...

2020-04-02 17:02:59 141

原创 组合总和-回溯、递归

emmm,最近在刷题,可是我发现,我只要碰到递归和回溯都会有思路,可我就是不会写代码,因为代码实际考虑的东西很多,每次看完题解之后就会写了,但是其实我感觉我还是不太会,所以,我决定适当的记录一下,慢慢培养我的思路。嘻嘻,从今天开始,我会自主出发去考虑解法,把回溯、递归、动态规划拿在手中,变成一个无所不能的大佬,从此一统天下。。。(我靠,停止做梦!)进入正题,今天,这道题来自力扣39题,组合总和:...

2020-04-01 17:06:40 164

原创 ubuntu下安装部署rabbitmq以及集群配置

ubuntu下安装部署rabbitmq以及集群配置现状:现在存在有三个服务器,之前三个服务器上各存在一个rabbitmq节点,因为其中一个服务器崩掉了,所以需要在这台服务器上安装rabbitmq并且将这个节点加入到之前的集群中。需要注意的是rabbitmq各个节点是互相平等的,不存在主从之分。node1 172.27.0.11node2 172…27.0.9node3 172.27.0....

2020-01-13 18:04:09 828

原创 接口调用的两种方式HttpClient以及spring cloud的@Feign方式

首先,需要说一下学习这两个方向的背景,收到任务,师兄要我将四个接口封装一下封装成两个接口,四个接口中,将其中两个上传的接口封装成一个同一的接口,将两个下载接口封装成一个同一接口,最终形成一个上传接口,一个下载接口。我刚刚开始觉得好简单哦,我就是调用嘛,可是,可能是我比较菜的原因,还是花费了很长的时间。emmmm,我要反思。所以接下来有很长的一大段的反思,反正我的博客应该没人看,所以我就写喽,要是不...

2019-12-06 21:03:19 2156

原创 Spring boot学习笔记

Spring bootSpring boot学习笔记一首先在上周的周六就已经开始了相关的学习,现在进行一系列的总结,进行一定程度上的回顾吧!文件的介绍Spring boot框架,虽然我本身没有很多的了解,但是通过两天的学习,我觉得,框架就是要满足标准之后,让其他的东西去帮你完成一些事情。pom.xml ,这个是一堆依赖的引入,每个相关的依赖都会有groupId以及artificatio...

2019-11-20 17:40:29 153

原创 haproxy+keepalived部署高可靠负载

haproxy+keepalived的高可用负载部署环境介绍:ubuntu;腾讯云;172.27.0.11(master)172.27.0.11(backup)172.27.0.26(腾讯云控制台申请的虚拟ip)在172.27.0.9上部署haproxy下载解压以及安装下载wget http://download.openpkg.org/components/cache/haprox...

2019-11-18 20:48:33 276

spring-boot-mybatis-test.rar

关于SpringBoot集成Mybatis,踩了不少的坑,谨防之后再次入坑,

2020-04-18

空空如也

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

TA关注的人

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