自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

幸运的梦之星

a lucky star

  • 博客(199)
  • 资源 (2)
  • 收藏
  • 关注

原创 【微服务架构】——hystrix基础知识

Hystrix是一个用于处理分布式系统的延迟和容错的开源库,主要用于隔离访问远程系统、服务和第三方库的点,防止级联故障和提高容错能力。

2023-12-19 15:27:14 894

原创 设计模式的应用——《职责链模式》

职责链模式,是一种行为型设计模式。它的目标在于将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止。职责链设计模式常常在开发框架中使用,用来实现框架的过滤器、拦截器功能,让框架的使用者在不需要对源码进行修改的情况下,添加新的过滤拦截功能,体现了开闭原则。但具体每个框架的实现会根据实际的需求来设计。

2023-12-15 19:14:33 930

原创 【面向对象】——基础概念回顾之反射

反射是Java中的动态相关机制,可以在运行时获得类的构造函数、成员变量和方法的信息,也可以动态创建对象、调用方法、获取或设置成员变量的值,甚至可以调用私有成员变量和方法。

2023-04-18 14:42:18 166

原创 【面向对象】——重新认识面向对象

从本质上来看,面向对象是一种编程思想,是程序员解决问题的一种思维方式,也就是我们所说的编程范式。

2023-04-08 20:51:52 396

原创 【高效学习秘诀4】——思考框架与模式

文章目录前言终极思想——以终为始2W1H的思考框架与OKR的结合2W1HOKR做事情的原则与步骤第一步:以终为始——你做好准备了吗?第二步:任务拆解——我要开始干活了,怎么干呀?第三步:及时反馈与复盘——事情做的怎么样啊?第四步:工作自动化—— 我们是不是还可以提高点效率呢?小结前言在我们的软件研发过程中,有架构模式、有代码设计模式……等等,这些模式给我们提供了一系列的标准化的方式去解决各种各样的问题,并且能够复用,从而达到研发效率的提高。那么,我们的学习和工作是否也可以有一系列的模式呢,通过刻意练习,

2022-04-27 10:28:58 564

原创 【高效学习秘诀3】——学习自循环系统

如何构建自己的学习自循环系统

2022-02-11 16:00:13 393

原创 2021年终总结——拾起好习惯,让自己变得更加优秀

也许现在的你不足以优秀到让人称赞,但在将来的某一天一定能够看到坚持的意义,因为此时此刻的你每天都在进步~

2022-02-11 15:40:36 478 1

原创 【统一身份认证】——概念扫盲

文章目录一、为什么要有统一身份认证二、什么是统一身份认证三、统一身份认证的实现方案一、为什么要有统一身份认证随着企业业务系统的增多,每个系统都有一个用户名和密码,那么员工需要记住所有系统的用户名和密码,员工输错密码的可能性就会大大增加。如果员工信息发生变化,那么每个系统都要随着改变,对于员工以及员工管理人员来说是及其不方便的。在这个时候,我们就需要使用一套统一的员工信息,包括用户名和密码,对员工来进行统一管理,从而提高效率。所以统一身份认证有如下好处:○ 统一身份数据源,将复杂的用户名和密码统一化,

2022-02-10 14:58:25 7373

原创 【多线程与高并发之ThreadLocal】——ThreadLocal源码分析

这里写目录标题前言总体UML图ThreadLocal取值赋值移除图解ThreadLocalThreadLocalMap获取Key为ThreadLocal的Entry值给Key为ThreadLocal的Entry赋值移除EntrySuppliedThreadLocal总结前言前面讲了ThreadLocal的基本知识,下面我们对ThreadLocal的源码进行分析。总体UML图我们首先看下ThreadLocal这个类的类图。如图所示:ThreadLocal有两个内部类,ThreadLocalMap和

2020-08-28 18:24:42 378 1

原创 【多线程与高并发之ThreadLocal】——ThreadLocal简介

目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、ThreadLocal是什么?二、ThreadLocal有什么用?1.引入库2.读入数据三、ThreadLocal源码分析四、ThreadLocal最佳实践总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、ThreadLocal是什么?示

2020-08-28 16:55:00 1760

原创 【Maven实战】——Jar包冲突解决方案

目录基础知识回顾maven依赖范围与传递性依赖依赖范围传递性依赖和依赖范围maven依赖调解最佳实践实战-jar包冲突如何解决?总结基础知识回顾你是否在运行程序的时候经常会遇到 类似NoSuchMethodError,ClassNotFoundException这样的错误?而明明引入了这个依赖,还是找不到,我引入的是2.0.0版本的,为什么使用的确是另一个版本呢?其实,如果我们理解了maven的依赖原理,这些问题就能够轻松的解决啦!maven依赖范围与传递性依赖依赖范围maven中有五种依赖范围,

2020-08-20 13:24:54 333

原创 【架构系列】分布式微服务架构设计原理

我们先来张宏观的导图来看看分布式微服务设计架构的原理都有些什么?然后再详细介绍一下。 微服务的演变历史在了解分布式微服务架构设计原理之前,我们首先应该知道什么是微服务,以及微服务是如何发展而来的。单体架构——》服务化——》微服务1、单体架构JEE架构 早期的企业级软件架构为JEE架构,它将企业软件划分为三个层次:web层(web容器),业务逻辑层(EJB组件)...

2018-05-04 18:18:08 810 2

原创 【高效代码调错系列之静态代码分析】——将错误扼杀在摇篮

前言什么是静态代码分析静态代码分析工具的优势常见的静态代码分析工具常见的静态代码分析工具对比总结前言前面我们讲到了代码规范,规范是有了,但是有没有按照规范执行呢,总不能人为的去检查吧,因此我们有了静态代码分析工具,它能够在代码构建过程中帮助开发人员快速、有效的定位代码缺陷并及时纠正这些问题,从而极大地提高软件可靠性并节省软件开发和测试成本,避免有缺陷的代码进行提交。什么是静态代码分析静态代

2017-11-27 21:05:52 570 1

原创 【高效代码调错系列之代码规范】——让软件学会自己寻找缺陷

前言使用断言异常与日志处理前言确保你的出错信息可以帮助你调试错误,不能只提醒你需要调试错误。使用断言代码的每一块都建立在一个无数假设的平台上面——某些条件必须是正确的才能让运行结果符合预期。往往缺陷的出现是因为某些假设不成立或者是错误的。避免做出这些假设是不可能的也是无意义的,但是我们不仅可以验证它们,而且可以通过断言来自动验证。那么什么是断言,如何更好的使用断言呢,它怎么着就能够帮助我们自动验

2017-11-27 19:44:24 569 3

原创 【高效代码调错系列之代码规范】——写优雅的代码

前言规范举例原则参考总结前言我们都喜欢漂亮衣服,同样的一份优雅美丽的代码,也是大家的最爱。优雅的代码不仅能够让自己看着舒服,别人看着也舒服,同时也更加方便我们在出现了问题之后,能够快速的找到问题并解决问题。所谓的规矩,都是人定的。就像买衣服一样,每个人的审美标准不一样,就会导致你觉得这件衣服好看,而有些人觉得不好看。而我们的代码也是一样的,要想统一就要有规范,在大环境下,大家都一致认同这些规

2017-11-27 11:02:03 607 4

原创 【高效代码调错系列】——宏观概况

前言如何避免错误的产生错误发现后我们应该怎么做错误解决后我们又该做些什么总结附录前言做了很多项目,遇到了很多问题,发现写代码其实很简单,不会花我们很长时间,而我们花费的大部分时间大多在调错,解决问题中。为了提高我们的软件质量,工作效率。所以,小编根据自己多年的项目经验,以及阅读的书籍,整理了一份解决错误的套路,供大家参考。此系列博客共分为以下三个主题:如何避免错误的产生?避免错误的产生,首

2017-11-26 15:08:00 437 4

翻译 【JavaEE系列——JPA】——JPA Entities

目录目录Entities实体类的要求实体类中的持久性字段和属性持久性字段持久性属性在实体字段和属性中使用集合验证持久性字段和属性实体中的属性实体关系的多重性实体关系方向双向关系单向关系查询和关系方向级联操作和关系Java Persistence API 是一种基于Java标准的持久性解决方案。持 久性使用对象/关系映射方法为面向对象模型和关系数据库建立联系。Java Pe

2017-09-21 10:52:36 1275 3

原创 2017年年中总结——爱在继续……

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-08-31 21:31:31 607 9

原创 【高效学习秘诀2】——Know Can Do

在我看到这本书的名字——Know Can Do的时候,我就决定了这就是我今天最重要的一件事情。如果不把这个事情搞清楚,我今天就不工作了,学习工作不急于这一时。所以,8:00之后没有去工作,就立马投入到这本书的阅读中去了。因为我想要寻求答案,在Dynamic,我们接收的思想都是一样的,说思想大家都很清楚,但是有的人做了,有的人没有去做,有的人持续去做,有的人做了一段时间就放弃了,有的人变成了很厉害的人

2017-08-15 10:29:39 633 16

原创 【高效学习秘诀1】——How to study?

目录目录学习套路how to study一 设疑二 宏观三 合作四 运用扩展总结经过了一段时间的训练,发现学习起来真的很简单,妈妈再也不用担心我的学习啦,so Easy!在介绍这个秘诀之前,先给大家介绍几个概念:三疑三探全局观内涵和外延学习套路——how to study?先来个宏观导图吧!下面咱们来详细介绍一下:在我讲下面的套路之前。我想强调一点,最重要的不是这个模板套路,而是

2017-08-09 11:10:34 1260 15

翻译 【JavaSE系列--基础篇7】——定义一个注解类型

许多注解替换代码中的注释。 假设一个软件组传统上开始每个类的正文,提供重要信息:public class Generation3List extends Generation2List { // Author: John Doe // Date: 3/17/2002 // Current revision: 6 // Last modified: 4/12/2004 /

2017-08-06 09:49:44 471 2

翻译 【MYSQL系列--优化5】——Is Null 优化

MySQL可以对col_name IS NULL执行相同的优化,它可以用于col_name = constant_value。例如,MySQL可以使用索引和范围来使用IS NULL搜索NULL。例如:SELECT * FROM tbl_name WHERE key_col IS NULL;SELECT * FROM tbl_name WHERE key_col <=> NULL;SELECT * F

2017-08-05 09:20:38 8952 6

翻译 【MYSQL系列-优化4】——阻止嵌套循环和批量密钥访问连接

在MYSQL中,可以使用批量秘钥访问连接算法(BKA),它使用对连接的表和连接缓冲区的索引访问。批量秘钥访问连接算法支持内连接,外联结,和半连接操作,包括嵌套外连接。BKA的优点包括通过更有效的表扫描来提高连接性能。此外,先前仅用于内部连接的块嵌套循环(BNL)连接算法被扩展,并且可以用于外连接和半连接操作,包括嵌套的外连接。 以下部分讨论了原始BNL算法,扩展BNL算法和BKA算法扩展的连接缓冲

2017-08-05 09:14:03 561 1

翻译 【MySQL系列--优化3】——多范围读取优化

在次级索引上使用范围扫描读取行可能会导致在表格较大并且未存储在存储引擎的高速缓存中时对基表进行多次随机磁盘访问。通过磁盘扫描多范围读取(MRR)优化,MySQL尝试通过首先扫描索引并收集相关行的密钥来减少范围扫描的随机磁盘访问次数。然后对密钥进行排序,最后使用主键的顺序从基表检索行。磁盘扫描MRR的动机是减少随机磁盘访问的次数,从而对基表数据进行更顺序的扫描。多范围读取优化提供了以下好处:基于索引

2017-08-05 08:57:47 613 1

翻译 【MySQL系列--优化2】——外连接简化

许多情况下简化了查询的FROM子句中的table 表达式。 在解析器阶段,具有右外连接操作的查询将转换为仅包含左连接操作的等效查询。在一般情况下,执行转换,使得该权限加入:(T1, ...) RIGHT JOIN (T2, ...) ON P(T1, ..., T2, ...)变成相等的左外连接:(T2, ...) LEFT JOIN (T1, ...) ON P(T1, ..., T2, ...)

2017-08-04 11:06:20 681 1

翻译 【MySQL系列--优化1】——嵌套join优化

表达连接的语法允许嵌套连接。以下讨论参见第13.2.9.2节“join语法”中描述的连接语法。与SQL标准相比,table_factor的语法被扩展。后者仅接受table_reference,而不是一对括号内的列表。如果我们将table_reference项目的列表中的每个逗号都视为与内部连接相同,那么这是一个保守的扩展。例如:SELECT * FROM t1 LEFT JOIN (t2, t3,

2017-08-04 10:07:02 1121 1

原创 【Docker系列】——解决Docker容器时间与主机不一致问题

目录目录背景解决方法背景公司做的项目是部署到dockerize的tomcat容器上的,将日志映射到了宿主机器的某个目录下,但是出现了一个问题,那就是日志打印的时间有问题,会比宿主机的时间晚8个小时。解决方法一、先查看服务器和容器时区设置是否一致:1、docker容器内的时区是UTC 2、主机的时区是CTS二、这两个时区有什么不同呢?GPS 系统中有两种时间区分,一为UTC,另一为LT(地方时)

2017-08-02 10:29:17 18422 9

翻译 【JavaSE系列—基础篇7】——注解基础知识

目录目录注解概念注解格式注解用在哪里注解概念注解,元数据的一种形式,提供了和程序有关但不是程序本身的一部分的数据。添加了注解对代码没有直接的影响。 注解有很多用途,其中包含:编译器的信息——注解可以用来使编译器检测错误或者忽略警告。编译时和部署时处理——软件工具可以处理注解信息以生成代码,XML文件等。运行时处理——一些注解可以在运行时检查。注解格式最简单的形式,一个注解可能是如下这

2017-08-01 21:03:15 390 2

原创 【Zookeeper】——Why should we use zookeeper?

Table of contentTable of contentwhy should we use Services Discoverywhy do we choose zookeeper to do this kind of thingswhat are the challenges o discovery servicesSummaryWhen we learn something ,w

2017-07-25 15:33:08 460 21

翻译 【JavaSE系列-基础篇6】——有界类型参数

目录目录有界类型参数多重边界有界类型参数可能有时候要限制在参数化类型中可以用作类型参数的类型。举个例子来说,一个对数字进行操作的方法可能只希望接受Number或其子类的实例。这是有界类型参数。声明一个有界类型参数,列出类型参数的名称,并且跟随extends关键字,后面是它的上限,例如Number。请注意,在这种情况下,扩展在一般意义上用于表示“扩展”(如在类中)或“实现”(如在接口中)。pub

2017-07-12 09:58:55 994 16

翻译 【JavaSE系列-基础篇6】——泛型方法

泛型方法是引入自己类型参数的方法。和声明一个泛型类型是相似的,但是这个类型参数的范围是在声明的方法体内。静态的和非静态的泛型方法都是允许的,以及泛型类构造函数。泛型方法的语法包括一个在菱形括号内的一个类型参数,并出现在方法返回类型之前。对于静态方法来说,类型参数部分必须出现在方法返回类型之前。 下面的Unit类中包含一个泛型方法compare,比较两个pair对象:public class Uti

2017-07-12 09:45:13 533 17

翻译 【JavaSE系列-基础篇6】——泛型原始类型

原始类型原始类型是没有实际参数的泛型类或者接口的名字。举个例子,泛型Box类:public class Box<T> { public void set(T t) { /* ... */ } // ...}要创建一个参数化类型的Box ,您将为形式类型参数T提供一个实际的类型参数:Box<Integer> intBox = new Box<>();如果实际的类型参数被省略,您将创建

2017-07-09 12:01:43 1061 12

翻译 【JavaSE系列-基础篇6】——泛型类型

泛型类型是对类型进行参数化的泛型类或接口。接下来我们会修改box类来演示这一概念。一个简单的Box类首先检查对任何类型的对象进行操作的非泛型类。它只需要提供2个方法:向box添加对象的set方法,以及get方法。public class Box { private Object object; public void set(Object object) { this.object =

2017-07-02 10:47:08 418 9

翻译 【JavaSE系列-基础篇6】——为什么使用泛型?

目录目录泛型简介为什么使用泛型拓展泛型简介在任何软件项目中,bugs是生活中的一件很常见的事情。仔细的计划,编程,测试可以帮助。减少bug产生的普遍性,但是在一些地方,无论怎样,它们总会寻找一种方式来爬进我们的代码。在新特性开发时,并且你的代码库变得越来越大,越来越复杂的时候特别明显。幸运的是,一些bug比其他的bug能够更早的检测出来。举个例子,编译时错误能够被更早的检测出来;你可以根据编译

2017-07-02 09:52:00 570 6

原创 【JavaSE系列-基础篇6】——数组,集合,泛型宏观把控

目录目录数组集合泛型总结数组通常数组具有连续内存位置的类似类型的元素的集合。Java数组是一个包含类似数据类型的元素对象。它是一个数据结构,我们只存储类似的元素。只能在Java数组中存储固定的元素集合。数组的优点:代码优化:轻松检索或排序数据。随机访问:可以获取任何位于索引位置的数据。数组的缺点:大小限制:只能在数组中存储固定大小的元素。元素固定:只能在数组中存储固定的元素集合。

2017-06-29 10:17:52 528 16

翻译 【JavaSE系列-基础篇6】——数组

数组数组声明一个变量来引用一个数组创建初始化和访问一个数组复制数组数据操作数组数组数组是一个容器对象,它保存单个类型的固定数组的值。创建数组时,建立数组的长度。创建后,其长度是固定的。你在“Hello World”的例子中已经看到了数组的例子。本章将详细讨论数组。 数组中的每个项目称为元素,每个元素都由其数字索引访问。如上图所示,编号从0开始。例如,第9个元素将在索引8处被访问。以下程序

2017-06-15 15:49:55 570 8

翻译 【JavaSE系列-基础篇6】——变量默认值

默认值当声明一个字段时,并不总是需要赋值。 声明但未初始化的字段将被编译器设置为合理的默认值。 一般而言,根据数据类型,默认值为零或为空。 然而,依赖于这样的默认值,通常被认为是坏的编程风格。 以下图表汇总了上述数据类型的默认值:局部变量略有不同; 编译器从不将默认值分配给未初始化的局部变量。 如果您无法初始化您声明的本地变量,请确保在尝试使用该变量之前为其分配一个值。 访问未初始化

2017-06-11 21:13:22 385 9

翻译 【JavaSE系列-基础篇6】——变量基本数据类型

基本数据类型Java编程语言是静态类型的,这意味着所有的变量,必须在使用之前先声明。这包括要说明变量的类型和名字,如你之前看到的:int gear=1;这样做会告诉你的程序,一个名为“gear”的字段存在,保存数值型数据,初始值为“1”。变量的数据类型确定其可能包含的值,以及可能对其执行的操作。除了int,Java编程语言还支持其他七种基本数据类型。基本类型由语言预定义,并由保留关键字命名。基本数据

2017-05-30 09:48:04 1084 5

翻译 【JavaSE系列-基础篇7】——运算符

现在你学会了如何声明和初始化一个变量,你可能会想知道如何用它们来做些什么?学习Java编程语言的运算符是开始的好地方。运算符是对一个,两个或三个操作数执行特定操作的特殊符号,然后返回一个结果。在我们探索Java编程语言的操作符的时候,可能有助于您提前知道哪些运算符具有最高优先级。下面列表中的操作符是按照优先级来进行排序的,最上面的是优先级最高的。具有较高优先级的运算符在具有较低优先级的运算符之前进行

2017-05-29 10:11:05 403 8

转载 【DevOps】——DevOps的前世今生

DevOps是什么从哪里来DevOps的概念历史变革DevOps的几个关键问题好处是什么为什么DevOps会兴起为什么会继续火下去条件成熟技术配套发展来自市场的外部需求这世界变化太快来自团队的内在动力工程师也需要实现DevOps需要什么硬性要求工具上的准备软性需求文化和人DevOps的采用现状哪些公司在用他们怎么实施的目前在国外,互联网巨头如Google、Facebook

2017-05-28 20:24:42 2200 6

几个用VB编写的小游戏

用visual Basic编写的几个小游戏,包括,贪吃蛇,五子棋等。

2014-10-19

学生信息管理系统

VB与SQL Server 结合的学生信息管理系统源码

2014-08-19

空空如也

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

TA关注的人

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