
知识点总结
文章平均质量分 79
Arivan
这个作者很懒,什么都没留下…
展开
-
SpringCloud学习-Hystrix
1 引言主要是为了解决服务的雪崩问题,即一个服务出错,引起多个相关的服务无法正常运行。降级机制:当某一个服务出现超时、资源不足、出现异常时,可以执行一个降级方法,直接返回一个托底数据。服务隔离:提供了一个Hystrix线程池,信号量,和服务的线程池相互隔离。熔断:当某一个服务失败率打到一个阈值时,自动触发降级机制。缓存:能够缓存请求的信息。2 降级机制的实现1、导入依赖<dependency> <groupId>org.springfram原创 2020-07-18 17:00:26 · 285 阅读 · 0 评论 -
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 · 378 阅读 · 0 评论 -
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 · 269 阅读 · 0 评论 -
SpringCloud学习-Ribbon
1 引言Ribbon是帮助我们实现服务和服务之间的负载均衡,属于客户端负载均衡;客户端负载均衡:在客户端做负载均衡的策略,选中某一个服务。服务端负载均衡:在注册中心,直接根据指定的策略负载均衡。2 Ribbon的快速入门1、启动两个search模块2、在客户端导入Robbin的依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>sp原创 2020-07-16 16:15:32 · 170 阅读 · 0 评论 -
SpringCloud学习-Eureka
Eureka是帮助我们维护所有服务的信息,以便服务之间的相互调用1 Eureka的快速入门1.1、创建一个父工程并且在父工程中指定SpringCloud的版本,并且将packaging修改为pom。 <packaging>pom</packaging> <dependencyManagement> <dependencies> <dependency> <原创 2020-07-05 19:11:03 · 154 阅读 · 0 评论 -
Java代码生成图片验证码
1、使用BufferedImage创建验证码的背景图片2、定义一个字符串形式的数学运算字符串3、使用ScriptEngine对字符串运算公式进行计算4、将创建好的验证码运算答案存储到redis中,并将验证码运算公式返回前端页面5、验证验证码是否正确的时候,将redis中的验证码答案和前端提交的答案进行对比,返回验证结果。每次验证完答案,或者更新了验证码,都需要将redis中的验证码删除或者更新。public class VerifyCode { public BufferedImage crea原创 2020-06-05 15:49:07 · 273 阅读 · 0 评论 -
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 · 135 阅读 · 0 评论 -
Listener和Filter
1.1、Listener概述他是一个接口,内容由自己实现他需要注册监听器中的方法,会在特殊事件发生时被调用1.2、JavaWeb中的监听器(三大域)ServletContext生命周期监听:ServletContextListener,有两个方法,一个在出生时调用,一个在死亡时调用void contextInitialized(ServletRequest sr);创建 c...原创 2020-03-23 11:55:56 · 157 阅读 · 0 评论 -
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 · 348 阅读 · 0 评论 -
Dom4j解析xml
1、导入dom4j提供的jar包2、查询xml(以下面xml为例)<?xml version="1.0" encoding="UTF-8"?><person> <p1> <name>zhangsan</name> <age>20</age> </p1>...原创 2020-03-19 13:30:25 · 164 阅读 · 0 评论 -
SpringBoot学习笔记-配置文件
Springboot配置文件1、配置文件(1)、springboot使用一个全局的配置文件,配置文件名是固定的;application.propertiesapplication.yml(2)、配置文件的作用:修改springboot自动配置的默认值;springboot在底层将都给我们自动配置好;(3)、YAML:以数据为中心,比json、xml更适合做配置文件(4)、YAML...原创 2020-02-06 14:04:08 · 195 阅读 · 0 评论 -
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 · 426 阅读 · 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 · 510 阅读 · 0 评论 -
Java内存区域划分
本文转自大佬的博客,原文链接:https://blog.youkuaiyun.com/q5706503/article/details/84614158Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程: 首...转载 2019-08-20 10:32:03 · 156 阅读 · 0 评论 -
TCP协议可靠性与高性能的实现原理
可靠性:1、校验和16位校验和: 由发送端填充, CRC校验. 接收端校验不通过, 则认为数据有问题. 此处的检验和不光包含TCP首部, 也 包含TCP数据部分.2、序列号TCP将每个字节的数据都进行了编号. 即为序列号.3、确认应答每一个ACK都带有对应的确认序列号, 意思是告诉发送者, 我已经收到了哪些数据; 下一次你从哪里开始发4、连接管理三次握手建立连接、四...翻译 2019-08-07 10:45:15 · 268 阅读 · 0 评论 -
项目总结--阿怪快传
项目名称:阿怪快传一、项目背景在学习到Socket网络编程的时候,发现使用Socket套接字可以实现局域网内数据交互。然后就现学现卖,制作了一个可以简单实现聊天功能的小项目。项目完成之后,我在想,聊天也是一种数据传输,既然我可以实现聊天,应该也可以加上文件对端传输的功能,刚好也检验一下自己学习的成果。于是,阿怪快传就此诞生。二、实现功能1、文件对端快速传输传输速度可达70Mbps...原创 2019-07-22 15:50:43 · 187 阅读 · 0 评论 -
简单概括HashMap、Hashtable、ConcurrentHashMap
原创 2019-07-24 11:21:07 · 145 阅读 · 0 评论 -
HashMap、Hashtable以及ConcurrentHashMap的区别及原理
作者:ZytheMoon原文链接:https://blog.youkuaiyun.com/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 · 301 阅读 · 0 评论 -
This关键字和Super关键字
this关键字:1、this调用本类的属性:this.属性名,表示调用本类中属性。当参数与类中属性同名时,类中属性无法被正确赋值。 所以只要在类中方法访问类中属性,应该加上this关键字 2、this调用本类方法:1)调用本类普通方法:this.方法名字(方法参数);class Person { private String name; private S...原创 2019-04-03 15:54:17 · 160 阅读 · 0 评论 -
Java的重载
以前每次写一些小练习代码的时候,不太会利用Java的诸多特性。经常在做一些小练习的时候,代码基本上总是会写在同一个方法中。代码量少的时候还好,代码多了,参数多了之后,经常会眼花撩话,甚至思路混乱。现在发现,利用Java的重载特性写一些能用到的工具方法。对整体的思路真的是有极大的帮助,思路也会很清晰,再也不怕参数太多了。以下是重载的应用实例(Huffuman树问题)// ...原创 2019-01-19 16:48:43 · 139 阅读 · 0 评论 -
Java集合框架 - 思维导图
原创 2019-04-26 17:00:41 · 1084 阅读 · 0 评论 -
Java抽象类和接口的区别
抽象类和接口的对比: 抽象类 接口 默认的方法实现 可以拥有默认的方法实现 接口完全是抽象的,不存在方法的实现 实现 子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方法的实现。 子类使用关键字implements来实现接口。它需要提供接口中所有声明的方法的实现 构造方法 可以有构造方法 ...原创 2019-04-27 08:35:45 · 98 阅读 · 0 评论 -
Java内部类 -思维导图
原创 2019-05-02 14:24:21 · 356 阅读 · 0 评论 -
Java线程池-思维导图
原创 2019-04-23 17:04:38 · 457 阅读 · 0 评论 -
Java多线程 - 思维导图
原创 2019-05-04 20:49:13 · 335 阅读 · 0 评论 -
Java常用关键字 - 思维导图
原创 2019-04-28 16:37:14 · 420 阅读 · 0 评论 -
Java反射-思维导图
原创 2019-04-20 11:51:03 · 584 阅读 · 0 评论 -
JVM - 思维导图
原创 2019-05-05 18:00:03 · 1121 阅读 · 1 评论 -
volatile关键字与双重检验锁单例模式
volatile关键字的特性 1、保证被volatile定义的变量对所有线程的可见性 即某线程对volatile变量的操作,其他线程会立刻得知 2、使用volatile变量的语义是禁止指令重排序 volatile变量前面的操作结果对于后面的操作可见的。 volatile变量前面的代码一定会先于后面的代码执行。 由于...原创 2019-05-12 16:22:54 · 773 阅读 · 0 评论 -
二分搜索树中任意节点的删除
删除二分搜索树中的任意节点,主要分为以下几种情况1)需要删除的节点为叶子节点;这种情况是最简单的,只需要切断二叉树与该叶子节点的联系即可。2)需要删除的节点只有左子树;在这种情况下,需要找到该节点的左子节点, 切断该节点与左孩子节点的联系、删除该节点与双亲节点的联系。 然后将左孩子节点代替该节点,与双亲节点相连。 3)需要删除的节点只有右子树;在这种情况下,...原创 2019-06-03 18:00:46 · 383 阅读 · 0 评论 -
堆排序思路
思路分析: 堆排序主要是使用了堆的性质,进行排序操作,主要有两种方式 1)非原地排序:将给定数据,放入大顶堆中,然后不断取出堆的最大元素,直到堆为空。取出数据的顺序,就是待排序数据的降序(此方法需要创建额外的空间,用以存放取出的数据,所以空间复杂度为O(N))。 2)原地排序(常用):使用堆的元素下沉思想,在给定空间进行原地排序 ...原创 2019-06-15 17:50:26 · 1091 阅读 · 0 评论 -
Java主流锁
一、乐观锁和悲观锁 1)乐观锁(默认不会出现资源竞争)乐观锁认为自己在使用数据时不会有别的线程修改数据,所以不会添加锁,只是在更新数据的时候去判断之前有没有别的线程更新了这个数据。如果这个数据没有被更新,当前线程将自己修改的数据成功写入。如果数据已经被其他线程更新,则根据不同的实现方式执行不同的操作(例如报错或者自动重试)。Java通过CAS自旋实现 2)悲观锁(默认一定会...原创 2019-06-16 10:59:02 · 217 阅读 · 0 评论 -
TCP协议三次握手四次挥手
一、三次握手与四次挥手流程 1)三次握手(TCP建立连接)1、首先客户端向被服务端发送建立连接的请求(SYN),此时客户端TCP层的状态变为SYN_SENT,等待服务端的响应;2、服务端再收到客户端的建立连接请求后,向客户端作出应答(SYN),并且向客户端发送ACK,确认其是否具有收发数据的能力,此时服务端的状态为SYN_RCVD;3、客户端收的到服务端的ACK后,需要向服务端...原创 2019-07-18 20:58:24 · 148 阅读 · 0 评论 -
项目总结--性能测试框架
项目名称:性能测试框架一、项目背景:写在前面,此项目是用于测试方法性能的小框架;写这个小项目的初衷是我在学习运用的过程中发现,很多时候,实现同种功能的方法并不是单一的,每当这种情况出现的时候,我就会纠结于到底哪一种方法更加高效?最终只能是依靠理论去进行判断。当然,有时候也会进行一些测试,但在过程中容易因为影响因素考虑不全面,而使得测试过程的科学性无法保证,最终得出的测试结果也会有一...原创 2019-07-19 16:07:00 · 946 阅读 · 0 评论 -
Java I/O流
IO的核心组成就是五个类(File、OutputStream、InputStream、Reader、Writer)一个接口(Serializable)1.File文件操作类1.1File类的使用:1)直接实例化对象,两个构造方法:public File(String pathname) ; public File(String parent, String child),设置父路...原创 2019-04-06 17:01:41 · 104 阅读 · 0 评论