自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringCloud学习-Hystrix

1 引言主要是为了解决服务的雪崩问题,即一个服务出错,引起多个相关的服务无法正常运行。降级机制:当某一个服务出现超时、资源不足、出现异常时,可以执行一个降级方法,直接返回一个托底数据。服务隔离:提供了一个Hystrix线程池,信号量,和服务的线程池相互隔离。熔断:当某一个服务失败率打到一个阈值时,自动触发降级机制。缓存:能够缓存请求的信息。2 降级机制的实现1、导入依赖<dependency> <groupId>org.springfram

2020-07-18 17:00:26 215

原创 SpringCloud学习-Feign

1 引言Feign可以帮助我们面向接口编程,就直接调用其他服务,简化开发2 快速入门1、导入依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>2、添加一个注解@Sprin

2020-07-17 16:21:19 303

原创 Mybatis-注解方式的使用

1、导入依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency>

2020-07-16 17:13:45 216

原创 SpringCloud学习-Ribbon

1 引言Ribbon是帮助我们实现服务和服务之间的负载均衡,属于客户端负载均衡;客户端负载均衡:在客户端做负载均衡的策略,选中某一个服务。服务端负载均衡:在注册中心,直接根据指定的策略负载均衡。2 Ribbon的快速入门1、启动两个search模块2、在客户端导入Robbin的依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>sp

2020-07-16 16:15:32 133

原创 SpringCloud学习-Eureka

Eureka是帮助我们维护所有服务的信息,以便服务之间的相互调用1 Eureka的快速入门1.1、创建一个父工程并且在父工程中指定SpringCloud的版本,并且将packaging修改为pom。 <packaging>pom</packaging> <dependencyManagement> <dependencies> <dependency> &lt

2020-07-05 19:11:03 108

原创 Java代码生成图片验证码

1、使用BufferedImage创建验证码的背景图片2、定义一个字符串形式的数学运算字符串3、使用ScriptEngine对字符串运算公式进行计算4、将创建好的验证码运算答案存储到redis中,并将验证码运算公式返回前端页面5、验证验证码是否正确的时候,将redis中的验证码答案和前端提交的答案进行对比,返回验证结果。每次验证完答案,或者更新了验证码,都需要将redis中的验证码删除或者更新。public class VerifyCode { public BufferedImage crea

2020-06-05 15:49:07 208

原创 springboot-JPA的使用

1、在配置文件中做相关配置spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/luckymoney?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC ...

2020-03-27 15:16:50 99

原创 Listener和Filter

1.1、Listener概述他是一个接口,内容由自己实现他需要注册监听器中的方法,会在特殊事件发生时被调用1.2、JavaWeb中的监听器(三大域)ServletContext生命周期监听:ServletContextListener,有两个方法,一个在出生时调用,一个在死亡时调用void contextInitialized(ServletRequest sr);创建 c...

2020-03-23 11:55:56 110

原创 AJAX的四步操作

1、第一步,得到XMLHttpRequest对象ajax需要掌握XMLHttpRequest对象。获取方式:大多数浏览器都支持 :var xmlHttp = new XMLHttpRequest();IE6.0 : var xmlHttp = new ActiveXObject(“Msxml2.XMLHTTP”);IE5.5及更早版本:var xmlHttp = new Active...

2020-03-20 11:09:40 297

原创 Dom4j解析xml

1、导入dom4j提供的jar包2、查询xml(以下面xml为例)<?xml version="1.0" encoding="UTF-8"?><person> <p1> <name>zhangsan</name> <age>20</age> </p1&gt...

2020-03-19 13:30:25 120

原创 SpringBoot学习笔记-配置文件

Springboot配置文件1、配置文件(1)、springboot使用一个全局的配置文件,配置文件名是固定的;application.propertiesapplication.yml(2)、配置文件的作用:修改springboot自动配置的默认值;springboot在底层将都给我们自动配置好;(3)、YAML:以数据为中心,比json、xml更适合做配置文件(4)、YAML...

2020-02-06 14:04:08 146

原创 Spring整合Mybatis(可代替SqlMapConfig.xml)

通过在applicationcontext.xml文件中配置,可以免去配置SqlMapConfig.xml<!-- spring整合Mybatis框架的配置--><!-- 配置连接池--> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> ...

2020-01-08 22:13:02 367 1

原创 项目总结 -网页聊天室

项目名称:网页聊天室项目地址:http://101.37.14.113:8888/一、项目简介本项目是基于WebSocket和Socket实现的网页聊天室。使用到的技术包括:MVC编程思想、WebSocket、Servlet、MySQL、DruidDataSource、Json、Junit、Lombok、Maven二、实现功能1、通过浏览器访问Tomcat服务器,显示注册、登...

2019-09-01 10:07:01 440

转载 Java内存区域划分

本文转自大佬的博客,原文链接:https://blog.csdn.net/q5706503/article/details/84614158Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:  首...

2019-08-20 10:32:03 127

翻译 TCP协议可靠性与高性能的实现原理

可靠性:1、校验和16位校验和: 由发送端填充, CRC校验. 接收端校验不通过, 则认为数据有问题. 此处的检验和不光包含TCP首部, 也 包含TCP数据部分.2、序列号TCP将每个字节的数据都进行了编号. 即为序列号.3、确认应答每一个ACK都带有对应的确认序列号, 意思是告诉发送者, 我已经收到了哪些数据; 下一次你从哪里开始发4、连接管理三次握手建立连接、四...

2019-08-07 10:45:15 218

原创 简单概括HashMap、Hashtable、ConcurrentHashMap

2019-07-24 11:21:07 110

转载 HashMap、Hashtable以及ConcurrentHashMap的区别及原理

作者:ZytheMoon原文链接:https://blog.csdn.net/ZytheMoon/article/details/88376749HashTable产生于JDK 1.0,HashMap产生于JDK 1.2,主要的区别有:1.线程安全2.处理速度3.使用迭代器不同4.输入参数不同5.扩充容量的大小方式不同6.计算hash以及index的方式不同。1.线程安全之间的区别...

2019-07-24 11:07:09 242

原创 项目总结--阿怪快传

项目名称:阿怪快传一、项目背景在学习到Socket网络编程的时候,发现使用Socket套接字可以实现局域网内数据交互。然后就现学现卖,制作了一个可以简单实现聊天功能的小项目。项目完成之后,我在想,聊天也是一种数据传输,既然我可以实现聊天,应该也可以加上文件对端传输的功能,刚好也检验一下自己学习的成果。于是,阿怪快传就此诞生。二、实现功能1、文件对端快速传输传输速度可达70Mbps...

2019-07-22 15:50:43 139

原创 项目总结--性能测试框架

项目名称:性能测试框架一、项目背景:写在前面,此项目是用于测试方法性能的小框架;写这个小项目的初衷是我在学习运用的过程中发现,很多时候,实现同种功能的方法并不是单一的,每当这种情况出现的时候,我就会纠结于到底哪一种方法更加高效?最终只能是依靠理论去进行判断。当然,有时候也会进行一些测试,但在过程中容易因为影响因素考虑不全面,而使得测试过程的科学性无法保证,最终得出的测试结果也会有一...

2019-07-19 16:07:00 837

原创 TCP协议三次握手四次挥手

一、三次握手与四次挥手流程 1)三次握手(TCP建立连接)1、首先客户端向被服务端发送建立连接的请求(SYN),此时客户端TCP层的状态变为SYN_SENT,等待服务端的响应;2、服务端再收到客户端的建立连接请求后,向客户端作出应答(SYN),并且向客户端发送ACK,确认其是否具有收发数据的能力,此时服务端的状态为SYN_RCVD;3、客户端收的到服务端的ACK后,需要向服务端...

2019-07-18 20:58:24 106

原创 Java主流锁

一、乐观锁和悲观锁 1)乐观锁(默认不会出现资源竞争)乐观锁认为自己在使用数据时不会有别的线程修改数据,所以不会添加锁,只是在更新数据的时候去判断之前有没有别的线程更新了这个数据。如果这个数据没有被更新,当前线程将自己修改的数据成功写入。如果数据已经被其他线程更新,则根据不同的实现方式执行不同的操作(例如报错或者自动重试)。Java通过CAS自旋实现 2)悲观锁(默认一定会...

2019-06-16 10:59:02 164

原创 堆排序思路

思路分析: 堆排序主要是使用了堆的性质,进行排序操作,主要有两种方式 1)非原地排序:将给定数据,放入大顶堆中,然后不断取出堆的最大元素,直到堆为空。取出数据的顺序,就是待排序数据的降序(此方法需要创建额外的空间,用以存放取出的数据,所以空间复杂度为O(N))。 2)原地排序(常用):使用堆的元素下沉思想,在给定空间进行原地排序 ...

2019-06-15 17:50:26 1027

原创 对称二叉树(LeetCode)

题目描述:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3]是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3]则不是镜像对称的: 1 / \ 2 2 \ \ 3 3解题思路:先检查根节点的左右...

2019-06-09 08:57:54 326

原创 二叉树的层次遍历(LeetCode)

题目描述:给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]解题思路:利用队列的先进先出原则,先将每一层的节点...

2019-06-06 15:09:48 201

原创 二分搜索树中任意节点的删除

删除二分搜索树中的任意节点,主要分为以下几种情况1)需要删除的节点为叶子节点;这种情况是最简单的,只需要切断二叉树与该叶子节点的联系即可。2)需要删除的节点只有左子树;在这种情况下,需要找到该节点的左子节点, 切断该节点与左孩子节点的联系、删除该节点与双亲节点的联系。 然后将左孩子节点代替该节点,与双亲节点相连。 3)需要删除的节点只有右子树;在这种情况下,...

2019-06-03 18:00:46 297

原创 保持城市天际线(LeetCode)

题目描述:在二维数组grid中,grid[i][j]代表位于某处的建筑物的高度。 我们被允许增加任何数量(不同建筑物的数量可能不同)的建筑物的高度。 高度 0 也被认为是建筑物。最后,从新数组的所有四个方向(即顶部,底部,左侧和右侧)观看的“天际线”必须与原始数组的天际线相同。 城市的天际线是从远处观看时,由所有建筑物形成的矩形的外部轮廓。 请看下面的例子。建筑物高度可以增加的最大总和...

2019-05-28 11:47:04 241

原创 不要二(牛客网)

题目描述:链接:https://www.nowcoder.com/questionTerminal/1183548cd48446b38da501e58d5944eb二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x...

2019-05-27 14:48:19 576

原创 基于命令行界面的简易收银系统

功能实现: 浏览商品清单、添加商品、下架商品、修改商品信息、商品信息存于properties文件中 查看订单、下单、取消商品、修改订单信息、账单结算功能 实现思路:使用到的技术: properties属性文件 集合框架 I/O流 操作字符串(分隔、截取等) 程序结构与逻辑控制 封装、多态 效果展示:主...

2019-05-24 20:44:03 267

原创 最优除法 (LeetCode)

题目描述:给定一组正整数,相邻的整数之间将会进行浮点除法操作。例如,[2,3,4] -> 2 / 3 / 4 。但是,你可以在任意位置添加任意数目的括号,来改变算数的优先级。你需要找出怎么添加括号,才能得到最大的结果,并且返回相应的字符串格式的表达式。你的表达式不应该含有冗余的括号。示例:输入: [1000,100,10,2]输出: "1000/(100/10/2)"...

2019-05-16 21:57:28 337

原创 volatile关键字与双重检验锁单例模式

volatile关键字的特性 1、保证被volatile定义的变量对所有线程的可见性 即某线程对volatile变量的操作,其他线程会立刻得知 2、使用volatile变量的语义是禁止指令重排序 volatile变量前面的操作结果对于后面的操作可见的。 volatile变量前面的代码一定会先于后面的代码执行。 由于...

2019-05-12 16:22:54 702

翻译 分发饼干(LeetCode)

题目描述:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj。如果 sj>= gi,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃口...

2019-05-11 16:23:20 158

原创 相对名次(LeetCode)

题目描述:给出N名运动员的成绩,找出他们的相对名次并授予前三名对应的奖牌。前三名运动员将会被分别授予 “金牌”,“银牌” 和“ 铜牌”("Gold Medal", "Silver Medal", "Bronze Medal")。(注:分数越高的选手,排名越靠前。)示例 1:输入: [5, 4, 3, 2, 1]输出: ["Gold Medal", "Silver Medal...

2019-05-10 16:26:26 531

原创 二进制手表(LeetCode)

题目描述:二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。例如,上面的二进制手表读取 “3:25”。给定一个非负整数n代表当前 LED 亮着的数量,返回所有可能的时间。案例:输入: n = 1返回: ["1:00", "2:00", "4:00", "8:00...

2019-05-06 15:07:26 1459

原创 JVM - 思维导图

2019-05-05 18:00:03 1056 1

原创 Java多线程 - 思维导图

2019-05-04 20:49:13 285

原创 两句话中不常见单词(LeetCode)

题目描述:给定两个句子A和B。(句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。返回所有不常用单词的列表。您可以按任何顺序返回列表。示例 1:输入:A = "this apple is sweet", B = "this apple is sour"输出:["s...

2019-05-03 12:57:00 395

原创 Java内部类 -思维导图

2019-05-02 14:24:21 285

原创 子域名访问次数(LeetCode)

题目描述:一个网站域名,如"discuss.leetcode.com",包含了多个子域名。作为顶级域名,常用的有"com",下一级则有"leetcode.com",最低的一级为"discuss.leetcode.com"。当我们访问域名"discuss.leetcode.com"时,也同时访问了其父域名"leetcode.com"以及顶级域名"com"。给定一个带访问次数和域名的组合,要...

2019-05-01 19:16:14 387

原创 写字符串的行数(LeetCode)

题目描述:我们要把给定的字符串S从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行。我们给定了一个数组widths,这个数组widths[0] 代表 'a' 需要的单位,widths[1] 代表 'b' 需要的单位,...,widths[25] 代表 'z' 需要的单位。现在回答两个问...

2019-04-30 12:57:13 217

原创 用队列实现栈(LeetCode)

题目描述:使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2); queue.peek(); // ...

2019-04-29 15:13:59 302

空空如也

空空如也

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

TA关注的人

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