- 博客(87)
- 资源 (12)
- 收藏
- 关注
原创 Spring Cloud Hystrix 参数配置、简单使用、DashBoard
Spring Cloud Hystrix 是一款优秀的服务容错与保护组件,也是 Spring Cloud 中最重要的组件之一。Spring Cloud Hystrix 是基于 Netflix 公司的开源组件 Hystrix 实现的,它提供了熔断器功能,能够有效地阻止分布式微服务系统中出现联动故障,以提高微服务系统的弹性。Spring Cloud Hystrix 具有服务降级、服务熔断、线程隔离、请求缓存、请求合并以及实时故障监控等强大功能。
2024-02-07 16:18:55 1716
原创 Restful架构简单了解
如果按照HTTP方法的语义来暴露资源,那么接口将会拥有安全性和幂等性的特性,例如GET和HEAD请求都是安全的, 无论请求多少次,都不会改变服务器状态。RESTful架构应该遵循统一接口原则,统一接口包含了一组受限的预定义的操作,不论什么样的资源,都是通过使用相同的接口进行资源的访问。资源在外界的具体呈现,可以有多种表述(或成为表现、表示)形式,在客户端和服务端之间传送的也是资源的表述,而不是资源本身。状态应该区分应用状态和资源状态,客户端负责维护应用状态,而服务端维护资源状态。
2023-08-21 16:19:42 1027 1
原创 BIO、NIO、IO多路复用(select/poll/epoll)、信号驱动IO、异步IO
BIO、NIO、IO多路复用(select/poll/epoll)、信号驱动IO、异步IO
2022-09-03 23:22:17 717 2
原创 Java自定义线程池详解及代码实现(非直接调用ThreadPoolExecutor)
Java从头开始自定义线程池详解及代码实现(非直接调用ThreadPoolExecutor)-生产者消费者模式1.定义阻塞队列,使用双端队列,和可重入锁以及条件变量。2.定义线程池。
2022-08-08 13:29:00 2317
原创 并发编程-生产者消费者模式Java代码实现
并发编程-生产者消费者模式代码实现1. 生产者仅负责产生结果数据,不关心数据该如何处理,而消费者专心处理结果数据。2. 消息队列是有容量限制的,满时不会再加入数据,空时不会再消耗数据具体实现:1. 使用双向链表和Synchronized锁来实现消息队列。2. 使用Excutors中的创建线程池的方法模拟生产者和消费者线程。...
2022-08-07 19:53:46 1865
原创 Redis实现分布式锁-原理-问题详解
Redis实现分布式锁-原理-问题详解通过setnx实现分布式锁,并通过lua脚本解决释放锁所存在的问题。
2022-08-04 00:34:42 756
原创 JAVA经典垃圾收集器的优点缺点简单总结
JAVA经典垃圾收集器的优点缺点简单总结Serial、ParNew、Parallel Scavenge、Serial Old、CMS、Parallel Old、G1
2022-07-17 19:36:57 969
原创 数据库InnoDB-MVCC-多版本并发控制
数据库InnoDB-MVCC-多版本并发控制介绍;MVCC的具体实现有三个隐藏字段DB_TRX_ID(最近修改事务ID),DB_ROLL_PTR回滚指针,不同事务或者相同事务对同一数据进行修改是,会形成undo log版本链,以便在读取的时候回滚。在RC隔离级别,为了保证读已提交,则每次读都会生成ReadView,然后与版本链中的记录进行对比,选择符合版本链规则的数据进行读。......
2022-07-13 10:41:42 824
原创 Mysql事务详解-[数据库的隔离级别、脏读、不可重复读、幻读以及ACID性质与redo log与undo log]
Mysql事务详解-[数据库的隔离级别、脏读、不可重复度、幻读以及ACID性质与redo log与undo log]数据库的隔离级别:读未提交、读已提交、可重复读、序列化。数据库并发事务问题及解决:脏读、可重读读、幻读。事务的性质:原子性、一致性、隔离性、持久性以及底层对四个性质的保证的介绍。..................
2022-07-12 22:05:57 367 1
原创 【MySQL存储引擎 InnoDB、MyISAM、Memory区别与特点】
MySQL存储引擎 Innodb、MyISAM、Memory区别与特点Innodb支持事务、支持外键、支持行级锁和表锁。MyISAM不支持事务、不支持外键,支持表锁。
2022-07-11 15:40:38 1957
原创 数据库索引使用的注意事项以及索引失效的情况【Mysql】
数据库索引使用的注意事项以及索引失效的情况1.最左前缀法则。2.范围查询。索引失效的集中情况:包括:索引列上进行运算、模糊查询、or连接条件,字符串不加引号,数据分布情况。
2022-07-11 14:48:12 1424
原创 JAVA设计模式--桥接模式【结构型模式】
设计模式--桥接模式-结构型设计模式将抽象与实现分离,使他们可以独立变化。它使用组合关系代替继承关系来实现的,从而降低了抽象与现实这两个维度的耦合度,也体现了设计原则中的【合成复用】与【依赖倒转】原则,还包括【开闭原则】。...
2022-06-22 10:55:49 197
原创 JAVA设计模式--享元模式【结构型模式】
享元模式即运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。
2022-06-21 16:25:46 136
原创 面向对象软件设计原则【JAVA】(开闭原则、里氏代换、依赖倒转、接口隔离、迪米特法则、合成复用原则)
软件设计原则【JAVA】(开闭原则、里氏代换、依赖倒转、接口隔离、迪米特法则、合成复用原则)1.开闭原则2.里氏代换原则3.依赖倒转原则4.接口隔离原则5.迪米特法则6.合成复用原则1.开闭原则对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要遵守开闭原则,那么在设计类时就需要使用抽象类和接口。因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保持软件架构的稳定。而软件中易变的细节可以从抽象派生来的实
2022-05-30 11:43:59 494
原创 Java类与类之间的关系(关联、组合、聚合、依赖、继承、实现)
Java类与类之间的关系(关联、组合、聚合、依赖、继承、实现)1.关联关系1.1 单向关联1.2 双向关联1.3 自关联2.聚合关系3.组合关系4.依赖关系5.继承关系6.实现关系1.关联关系关联关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,如老师和学生、师傅和徒弟、丈夫和妻子等。关联关系是类与类之间最常用的一种关系,分为一般关联关系、聚合关系和组合关系。关联又可以分为单向关联,双向关联,自关联。1.1 单向关联在UML类图中单向关联用一个带箭头的实线表示。上图表示每个顾
2022-05-28 21:26:57 1783
原创 Linux编写定时任务
Linux编写定时任务Linux系统的计划性的工作是由cron( crond)服务来控制的,这个服务是默认启动的。Linux提供了用户控制计划任务的命令: crontab 命令。一、crondcrond 是linux下,用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。Linux下的任务调度分为
2022-05-26 21:48:20 4049
原创 华为云maven安装包下载加速地址
华为云maven安装包下载加速地址apache-maven-3.6.1-bin安装包加速地址:https://repo.huaweicloud.com/apache/maven/maven-3/很nice,不用去csdn浪费积分下载了。点进入如下所示:选择需要的版本下载即可。
2022-05-22 17:10:09 596
原创 Java生成随机数(利用Random类和Math.random()方法)
Java生成随机数(利用Random类和Math.random()方法)Random 类(java.util.Random)常用构造方法:Random():该构造方法使用一个和当前系统时间对应的数字作为种子数,然后使用这个种子数构造 Random 对象。- Random(long seed):使用单个 long 类型的参数创建一个新的随机数生成器。Random 类提供的所有方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的概率是均等的。使用:boolean nextBoole
2022-05-11 15:20:00 1023
原创 AttributeError:module ‘distutils‘ has no attribute ‘version
AttributeError:module ‘distutils’ has no attribute 'version在使用torch.utils.tensorboard时,出现错误:出错语句from torch.utils.tensorboard import SummaryWriter报错信息:在执行LooseVersion = distutils.version.LooseVersion 的时候,出现AttributeError:module 'distutils' has no attrib
2022-05-10 10:57:25 22289 11
原创 Java使用JUnit进行单元测试
Java使用JUnit进行单元测试单元测试JUnit测试工具的优点JUnit测试工具的使用1.将JUnit的jar包导入到项目中。2.具体使用流程3.简单案例演示1. 编写待测试类2. 编写测试类(类名随意)3. 运行方式4.JUnit中的除`@Test`之外的其他注解单元测试单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法,因此,单元测试就是针对Java方法的测试,进而检查方法的正确性。JUnit测试工具的优点Junit可以灵活的选择执行哪些测试方法,可以一件执行全部
2022-05-05 19:20:50 1852
原创 指令重排序遵循的as-if-serial与happens-before原则
指令重排序遵循的as-if-serial与happens-before原则as-if-serial语义 as-if
2022-05-05 16:05:55 408
原创 JAVA代理模式-三种代理模式的对比(四)
JAVA代理模式-三种代理模式的对比(四)JAVA代理模式-静态代理的实现(一)JAVA代理模式-JDK动态代理的实现(二)JAVA代理模式-cglib动态代理的实现(三)jdk代理 和 CGLIB代理使用CGLib实现动态代理,CGLib底层采用ASM字节码生成框架,使用字节码技术生成代理类,在JDK1.6之前比使用Java反射效率要高。唯一需要注意的是,CGLib不能对声明为final的类或者方法进行代理,因为CGLib原理是动态生成被代理类的子类。在JDK1.6、JDK1.7、JDK1
2022-04-28 17:25:57 165
原创 JAVA代理模式-cglib动态代理的实现(三)
JAVA代理模式-cglib动态代理的实现(三)CGLIB动态代理:导包1.使用了Maven管理项目则引入一下坐标即可。2.未使用maven,则可以通过如下方式导包。在完成环境配置之后,进行CGLIB动态代理的实现:1.编写实体类。2.通过cglib动态生成代理类,动态生成的代理类为实体类的子类。3. 客户端从中介买票CGLIB实现动态代理的完整代码:代理模式简介、静态代理、JDK动态代理可以参考以下文章:JAVA代理模式-静态代理的实现(一)JAVA代理模式-JDK动态代理的实现(二)CGLIB动
2022-04-28 17:18:54 790
原创 JAVA代理模式-JDK动态代理的实现(二)
JAVA代理模式-JDK动态代理的实现(二)JDK动态代理的实现:1. 编写电影院售票的接口。2. 编写真实主题类,宁波电影院实现电影院接口,实现真正的售票动作。4. 编写代理工厂类,通过Java中提供的一个动态代理类Proxy,动态生成代理类。6. 客户调用代理类,从中介手中买票。动态代理使用时的细节:JDK动态代理完整代码:代理模式的简介可查看此链接。JAVA代理模式-静态代理的实现(一)JDK动态代理的实现:Java中提供了一个动态代理类Proxy,提供了一个创建代理对象的静态方法(newP
2022-04-28 16:35:29 826
原创 JAVA代理模式-静态代理的实现(一)
JAVA代理模式-静态代理的实现(一)代理模式代理模式的优点代理模式分为三种角色:静态代理的实现:1.定义进校门动作的接口。2.真实主题类,即真正进校门的类要实现该接口。3.代理类,要在原本的类功能上进行增强。代理类也必须实现school接口。4 .客户端调用代理类进校门。静态代理实现的完整代码:代理模式由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。代理模式的优点代理模式在客户端与目标对象之间起到
2022-04-28 15:45:25 922
原创 Exception in thread “main“ java.lang.NoClassDefFoundError: org/objectweb/asm/Type
在使用CGLIB尝试动态代理时,出现了如下错误:Exception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/Type at net.sf.cglib.core.TypeUtils.parseType(TypeUtils.java:184) at net.sf.cglib.core.KeyFactory.<clinit>(KeyFactory.java:72) at net.sf.cglib.pr
2022-04-28 15:01:40 701
原创 JAVA 通过反射获取公共和私有成员变量和成员方法(二)
JAVA 通过反射获取成员变量(二)JAVA通过反射创建对象可以查看以下介绍。JAVA通过反射来创建对象(一)类对象文件package com.csdn;public class Student { private String name; private int age; public String height; protected int num; public Student() { } public void print1(
2022-04-27 14:58:33 2987
原创 JAVA通过反射使用公共构造方法和私有构造方法来创建对象(一)
JAVA通过反射来创建对象JAVA反射机制是指在运行时去获取一个类的变量和信息。然后通过获取到的信息来创建对象,调用方法的一种机制。由于这种动态性,可以极大地增强程序的灵活性,程序不需要在编译期就完成确定,在运行期仍然可以扩展。创建Student类文件Student类包含公共构造方法,也包含私有构造方法。package com.csdn;public class Student { private String name; private int age; public
2022-04-27 11:23:58 3111
原创 JAVA 中HashMap的几种遍历方式
JAVA 中HashMap的几种遍历方式创建HashMap对象 Map<String, Integer> map = new HashMap<>(); map.put("手表", 1000); map.put("手机", 4000); map.put("牙刷", 200); map.put("耳机",1500);1.通过遍历map的键的方式,使用键找值进行遍历。现获取Map集合的全部键的Set集
2022-04-27 10:06:41 4319
(西交研究生)软件测试mooc标准答案.docx
2021-10-02
西交-机器学习六次作业-pang.zip
2021-10-02
texstudio编辑器图形化界面程序【texstudio-3.1.2-win-qt5】
2021-07-13
java实现的简易版网络聊天加密通信程序
2020-08-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人