自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL面试题练习

InnoDb和MyIsam存储引起的区别?外键:InnoDB支持外键,而myisam不支持外键;事务:innodb支持事务机制,myisam不支持;索引:innodb是聚合索引,数据和主键索引在一起,也可以通过辅助索引查找主索引,索引的叶子节点存储的就是节点数据文件,索引innodb的索引不宜过大;而myisam不是聚合索引,myisam的主索引和辅助索引的叶子节点存储的是数据文件的地址,索引myisam存储引起的索引文件和数据文件是分开存储的。这两个存储引擎的索引的key都是唯一的。崩溃恢复:..

2021-01-11 22:49:05 182 1

原创 Dubbo注册中心

Dubbo 注册中心Dubbo注册中心是实现分布式环境中各服务之间的注册和发现。Dubbo注册中心的源码在dubbo-registry中主要分为5各模块:dubbo-registry-api 包含注册中心所有的API和抽象实现类;dubbo-registry-zookeeper 使用Zookpeer作为注册中心的实现’;dubbo-registry-redis 使用redis作为注册中心的实现;dubbo-registry-default dubbo基于内存的默认实现;dubbo-regis

2021-01-11 16:54:23 413

原创 Spring Cloud之负载均衡Ribbon

前言目前主流的负载均衡,一种是集中式负载均衡,在消费者和服务提供者中间使用独立的代理方式进行负载均衡,有硬件的(F5),也有软件的(比如nginx);另一种是客户端自己做负载均衡,根据自己的请求情况做负载,Ribbon就是客户端自己做负载均衡的。Ribbon可以通过给RestTemplate加@LoadBalanced注解去实现负载均衡,主要的逻辑是给RestTemplate增加拦截器,在请求之前对请求的地址进行替换,或者根据具体的负载均衡策略选择服务地址,然后再去调用,这是基本的原理。Ribbon饥

2021-01-11 16:53:02 130

原创 服务限流

高并发系统中有三把利器用来保护系统:缓存、降级和限流。限流的目的是为了保护系统不被大量的请求冲垮,通过限制请求的速度来保护系统。限流的方式有多种,可以在nginx层面限流,也可以在应用当中限流,比如在API网关中。降级在高并发系统中,当网络请求的并发量比较大,系统的负载高的时候可以采用服务降级的方式,关闭一些不常用的功能来提高系统负载分担能力。举例:可以通过API网关,加ZuulFilter的方式,对请求的服务ID进行匹配,如果当前获取的配置中对该服务ID进行了服务降级操作,则对当前的请求进行阻断,

2020-09-30 14:45:04 316

原创 Sleuth服务跟踪简介

前言微服务架构下,服务之间的调用关心越来越复杂,通过Zuul转发到具体的业务接口,一个接口中会涉及到多个微服务的教化,只要其中某个服务出现问题,整个请求都将失败。这个时候我们想快速定位到问题所在,就需要用到链路跟踪。每个请求都是一条完整的调用链,通过调用链我们可以清楚地知道这个请求经过了哪些服务,哪个服务上耗时多上时间,进而实现快速定位问题的目的。在需要跟踪的服务中集成Sleuth,所有需要跟踪的服务都加上依赖。2019-12-03 22:50:13.823 INFO [app-test, 42e8f

2020-09-28 17:03:26 265

原创 Spring Cloud注册中心之Eureka摘录

前言Spring Cloud Eureka是Spring Cloud Netflix微服务套件的一部分,基于Netflix Eureka做了二次封装,主要负责实现微服务架构中的服务治理功能。Eureka是一个基于REST的服务,并且提供了基于Java的客户端组件,能够非常方便的将服务注册到Eureka中进行统一管理。服务治理在微服务架构中是必不可少的一部分,安粮开源的Dubbo框架就是针对于服务治理的,服务治理必须要有一个注册中心,除了用Eureka作为注册中心外,我们还可以使用Consul、Etcd、

2020-09-28 09:14:19 132

原创 Java SPI简介

SPI (Service Provider Interface),是一种服务发现机制,SPI本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类,正因此特性,我们可以很容易通过SPI为我们程序提供扩展功能。Java SPI通过策略模式实现的,一个接口提供多个实现类,而使用哪个实现类不在程序中确定,是由配置文件配置的,具体步骤如下:定义接口以及其对应的实现类;在META-INF/services目录下创建以接口全路径命名的文件;文件

2020-09-28 09:12:38 237

原创 IntelliJ IDEA快捷键使用

前言IntelliJ IDEA现在是开发Java程序最流行的ide之一,相信很多Java开发的小伙伴都在使用这个编译器,如何使用其快捷键来提高开发效率,下面列出一些常用的快捷键,希望能帮助大家。ALT+ENTER万能快捷键,解决大部分出错标红的代码,根据提示去选择对应的解决方案;.sout 能够输出System.out.println();*.for 能够输出for( T item : ...

2020-02-11 16:22:47 155

原创 Java ClassLoader 踩坑记

本地调试加载编译文件夹target里面的class文件,结果一直加载不了,在通过文件路径加载class的时候一直加载不了。最后发现是保存源代码的根目录文件夹,文件夹名称虽然是英文但是包含一个空格,去掉后加载正常。...

2020-02-10 12:21:19 363

原创 Java 注解笔记

如果注解只有一个成员,则成员名必须取名为value(),在使用时可以忽略成员名和赋值号(=);注解类可以没有成员,没有成员的注解称为标识注解;四类元注解@Target({ElementType.METHOD…})CONSTRUCTOR - 构造方法声明;FIFLD - 字段声明;LOCAL_VARIABLE - 局部变量声明;METHOD - 方法声明;PACKAGE - 包...

2020-02-10 12:20:47 126

原创 Java反射机制

Class类自定义一个Java Bean User类,以此类作为操作对象;// test是User类的一个实例对象,// 其实User类也是一个实例对象,是Class类的实例对象User test = new User();// clazz1、clazz2、clazz3都表示User类的类类型(class type)Class clazz1 = User.class;Class c...

2020-02-09 17:44:23 94

原创 Mybatis plus插件入门实践

注解:@TableName(""):默认实体类的类名对应于数据库的表名,驼峰类名会自动映射成数据库以下划线的表名;如果不能直接使用这种方式映射,需该注解来指定表名;@TableId:默认实体类的主键字段名称为id,如果不是此名称,需在类字段上使用该注解,表明该字段对应于数据库表的主键字段;@TableFiled(""):默认实体类的字段名对应于数据库表的字段名是驼峰映射成下划线,如果不是则需...

2020-02-03 22:11:52 451

原创 Java之Stream流

Stream是什么?Stream就如同一个迭代器,对集合数据元素进行遍历并执行某些操作。正常的Iterator只能显示的一个一个的遍历元素并对其执行某些操作;而Stream用户可以给出对其中包含的特定元素执行上面操作,Stream会隐式的在内部进行遍历,做出相应的数据转换。正常的迭代器只能命令式、串行化的操作,而Stream可以并行化操作,使用并行去遍历,数据会被分成多分,每一份都在不同的线程...

2020-02-03 08:42:44 136

原创 Java 8新特性Optional

前言Optional是Java语言的有益补充,旨在减少代码中NullPointerExceptions,虽然不能完全消除但也是一种精心设计,融入Java 8函数式支持的功能。代码简化,且可读性提升了不少。Optional APIifPresent()示例:Optional.ofNullable(“test”).isPresent(System.out::println);console...

2020-02-02 22:56:39 241

原创 Java多线程同步之ThreadLocal与Synchromized

前言:ThreadLocal和Synchronized都是为了解决多线程中相同变量的访问冲突问题,只是二者处理问题的思路和角度不同。ThreadLocal是Java类,是通过每个线程单独一份存储空间,牺牲空间来弥补时间来解决多线程访问冲突,ThreadLocal具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问到想要的值。Synchronized是Java保留关键字,通过...

2020-01-29 19:56:05 296

原创 Spring 切面编程AOP注解

AOP(Aspect Oriented Programming):切面编程通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术,是Spring框架中一个重点内容也是函数式编程的一种衍生范型。在Spring中使用AOP的业务只需要关注自己业务本身,将日志记录、性能统计、安全控制、事务处理、异常处理等代码从业务逻辑代码中划分出来,进而在改变这些业务的时候不会去影响业务逻辑的代码。AOP...

2020-01-29 19:25:40 265

原创 Java类加载机制窥探

在程序运行期间对java类型进行加载、链接操作Java本身是一门静态语言,在程序运行期间可以采用一些特殊的处理方式把已经存在或者运行期生成的类型有机装备到一起,因此类型的加载、链接、初始化在运行期间起到了很大的帮助作用。**类型的加载:**查找并加载类的二进制文件(字节码文件),最常见是将类的class文件从磁盘加载到内存中;**类型的链接:**将类与类的关系确定好,对于字节码相关的处理、验...

2020-01-26 18:34:22 134

原创 SQL 语法之不常见篇

replace 、replace into、replace ignorereplace into三种语句形式:replace into tbl_name (col_name, …) values (…)replace into tbl_name (col_name, …) select …replace into tbl_name set col_name=value, …解释:ins...

2020-01-26 12:55:08 144

原创 Spring Boot中ApplicationRunner与CommandLineRunner

在实际的开发场景中,经常需要在运行环境之前执行一些类似于读取配置文件、数据库连接操作等。Spring Boot提供了ApplicationRunner和CommandLineRunner来帮助我们实现这些需求。时机:他们执行的时机是为容器启动完成的时候;实现:都需要去实现这两个接口的run方法;区别:ApplicationRunner中的run方法参数为ApplicationArgument...

2020-01-20 21:16:01 332

转载 meta-annotation元注解(@Target @Retention @Documented @Inherited)

开场白要能够写自己的注解,一定要了解Java为我们提供的元注解和相关定义注解的语法。一. 元注解(meta-annotation)

2019-01-28 22:21:03 237

原创 Java多线程编程核心技术-笔记1

Java多线程编程核心技术-笔记1线程启动如何使线程暂停如何使线程停止线程的优先级线程安全相关的问题实现多线程编程的方式主要有两种,一种是继承Thread类,另一种是实现Runnable接口。 从源代码可以发现Thread类实现了Runnale接口,它们之间具有多态关系。 调用线程的start()方法是告诉系统需要安排一个时间来调用Thread中run方法,也就是...

2018-09-10 11:05:48 172

转载 Sping boot 静态资源文件的路径配置

在web开发中,静态资源的访问是必不可少的,如:图片、js、css 等资源的访问。 spring Boot 对静态资源访问提供了很好的支持,基本使用默认配置就能满足开发需求。 一、默认静态资源映射 Spring Boot 对静态资源映射提供了默认配置Spring Boot 默认将 /** 所有访问映射到以下目录: classpath:/static classpath:/public...

2018-02-23 11:16:55 8394 1

转载 Spring boot 项目目录结构

Spring Boot框架对工程结构并没有什么特殊的限制,只是良好的工程结构划分可以使项目更清晰,明确,减少不必要的冲突,提高代码的统一性.推荐工程结构示例:代码层的结构根目录:com.springboot1.工程启动类(ApplicationServer.java)置于com.springboot.build包下2.实体类(domain)置于com.springboot.do...

2018-02-23 11:06:31 52703 4

原创 GCC编译器基本原理

GCC编译器编译程序的流程:源文件(*.c)–>预处理(预处理器)–>编译(编译器)–>汇编(汇编器)–>链接(链接器)–>可执行文件 假定有一个最简单的hello.c源文件,代码即输出一个helloworld。通过几个不同步骤来展现gcc的编译器编译流程:第一步:~ gcc -E hello.c -o hello.i 这是讲源文件进行预处理器处理,也就是主要进行一些宏替换,不会进行语法检查,-E

2017-01-06 19:25:27 792

原创 设计模式之策略模式(DesignPattern of Strategy)

C++版设计模式之策略模式

2016-11-30 19:12:02 476

原创 程序员之牙牙学语

历经艰辛考上了通信的研究生,结果发现,毕业的师兄师姐找的工作除了运营商外都是软件类岗位。瞬间感觉好大一坑,还不如当初学个计算机专业,别人本科已经学习计算机了,而我们研究生才学,半路出家哪比的过人家。抱怨归抱怨,不能拿自己的前途儿戏,所以跟着一帮大众学习起C/C++。当我们还在学习基本的语法语义时,大牛们已经开发各种系统,APP了。这差距,让我们这些本身本科出身就不怎么好的学生,怎么能比。学习C

2015-11-05 10:35:18 461

转载 Linux 硬链接与软链接(符号链接)

1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的

2015-10-19 15:53:34 528

转载 SQL Join 用法详解

关于sql语句中的连接(join)关键字,是较为常用而又不太容易理解的关键字,下面这个例子给出了一个简单的解释 --建表table1,table2:create table table1(id int,name varchar(10))create table table2(id int,score int)insert into table1 select 1,'lee'insert i...

2015-10-17 10:01:22 563

转载 图的遍历

图的遍历      图的遍历有两种遍历方式:深度优先遍历(depth-first search)和广度优先遍历(breadth-first search)。1.深度优先遍历   基本思想:首先从图中某个顶点v0出发,访问此顶点,然后依次从v0相邻的顶点出发深度优先遍历,直至图中所有与v0路径相通的顶点都被访问了;若此时尚有顶点未被访问,则从中选一个顶点作为起始点,重复上述过

2015-01-26 15:22:32 609

转载 哈夫曼树与哈夫曼编码(C语言代码实现)

在一般的数据结构的书中,树的那章后面,著者一般都会介绍一下哈夫曼(HUFFMAN)树和哈夫曼编码。哈夫曼编码是哈夫曼树的一个应用。哈夫曼编码应用广泛,如JPEG中就应用了哈夫曼编码。 首先介绍什么是哈夫曼树。哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的 路径长度(若根结点为0层,叶结点到根结点的路径长度为叶

2015-01-26 14:52:24 71891 7

转载 string、char*、const char*、char [] 之间的相互转化

1、首先必须了解,string可以被看成是以字符为元素的一种容器。字符构成序列(字符串)。有时候在字符序列中进行遍历,标准的string类提供了STL容器接口。具有一些成员函数比如begin()、end(),迭代器可以根据他们进行定位。注意,与char*不同的是,string不一定以NULL('\0')结束。string长度可以根据length()得到,string可以根据下标访问。所以,

2015-01-20 10:18:25 470

原创 努力学习的意义

“孩子,我要求你读书用功,不是我要你跟别人比,而是因为,我希望你将来拥有选择的权利。可以选择有意义,有时间的工作,而不是被迫谋生。当你的工作在你心中有意义,你就有成就感。当你的工作给你时间,不剥夺你的生活,你就有尊严。成就感和尊严,会给你快乐。”-龙应台《亲爱的安德烈》很多选择没有正确与错误之分,但是通过自己的努力奋斗可以让当初的选择变的正确。我想,能问努力学习的意义到底在哪里的人

2015-01-13 11:31:24 1350

转载 C语言结构体用法

http://www.360doc.com/content/13/0804/13/13253385_304655243.shtml

2015-01-10 16:29:32 334

转载 乘积最大

【题目描述】今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先 生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活 动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样 一道题目: 设有一个长度N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。 

2015-01-06 11:56:30 495

转载 【Windows核心编程】Windows常见数据类型

一   常见数据类型  WORD:                16位无符号整形数据  DWORD:             32位无符号整型数据(DWORD32)  DWORD64:         64位无符号整型数据  INT:                       32位有符号整型数据类型  INT_PTR:             指向INT数据类型的指针类型

2014-10-31 11:36:09 407

原创 统计整数区间的回文数

#includeusing namespace std;void main(){int a,b,i,num,sum,count;cin>>a>>b;for(num=a;num{ int arr[100];i=num;   count=0;sum=0;while(i/10){ arr[count]=i%10;i/=10;

2014-08-20 17:24:28 1025

原创 互素数组合的联系整数表示法

#include using namespace std;void main(){double a,b; double x,y;while(1){int i=0;cin>>x>>y;double arraynum[65535]={'\0'};for(a=0;afor(b=0;b{if ((a*x+b*y)break;els

2014-08-20 15:42:43 668

空空如也

空空如也

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

TA关注的人

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