自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 带你了解Apache Dubbo

文章目录一、Dubbo概述1、什么是RPC?2、Dubbo简述3、Dubbo的架构二、服务注册中心Zookeeperzookeeper的介绍安装Zookeeper一、Dubbo概述1、什么是RPC?在了解Dubbo之前,先来认识一下什么是RPC?RPC全称为remote procedure call,即远程过程调用,比如现在我有两台服务器A和B,分别都部署着一个任务,A服务器上的应用想调用B服务器上的应用提供的方法,由于两个应用不 在一个内存空间,不能直接调用,所以需要通过远程调用来表达调用的语义

2021-10-14 22:41:14 488

原创 Tomcat目录结构

打开Tomcat,我们可以看到一个这样的目录结构bin目录bin目录主要是用来存放tomcat的命令,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令)。很多环境变量的设置都在此处,例如可以设置JDK路径、tomcat路径startup 用来启动tomcatshutdown 用来关闭tomcat修改catalina可以设置tomcat的内存confconf目录主要是用来存放tomcat的一些配置文件。server.xml可以设置端口号、

2021-10-14 21:09:43 85

原创 Hystrix解决雪崩问题

线程隔离-降级服务-服务熔断什么是Hystix什么是雪崩问题Hystrix解决雪崩问题线程隔离服务降级:可以优先保证核心服务服务熔断什么是HystixHystix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务,防止出现级联失败。什么是雪崩问题微服务中,服务间调用关系错综复杂,一个请求,可能需要调用多个微服务接口才能实现,会形成非常复杂的调用链路:一次业务请求,需要调用A、P、H、I四个服务,这四个服务又可能调用其它服务。 如果此时,某个服务出现异常,用户请求得不到响应,则tomca

2021-10-06 16:20:00 354

原创 负载均衡Ribbon

文章目录前言一、Ribbon是什么?二、使用Ribbon实现负载均衡1.启动两个user-service实例2、开启负载均衡3、更换负载均衡策略前言在实际环境中,我们往往会开启很多个user-service的集群。此时我们获取的服务列表中就会有多个,到底该访问哪一个呢?一般这种情况下我们就需要编写负载均衡算法,在多个实例列表中进行选择,不过Eureka中已经帮我们集成了负载均衡组件:Ribbon一、Ribbon是什么?Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP.

2021-10-06 15:11:18 108

原创 Eureka注册中心简介与详解

文章目录前言一、Eureka简介Eureka详解高可用的EurekaEureka客户端配置服务注册服务续约获取服务列表Eureka服务端配置失效剔除自我保护测试:前言问题:当一个项目中同时有多个微服务,如果出现微服务的地址变更,删除,那么原本消费者那端写死的服务地址就会失效,如果消费者想找一个服务,也是很难找 ,那么这时候就可以将服务注册到Eureka,并可以监控服务,消费者也是到Eureka找对应的服务,相当于多了一个中间人一、Eureka简介举个例子:这就好比是网约车出现以前,人们出

2021-10-06 11:57:20 378

原创 初步认识SpringCloud

初步认识SpringCloud一、Spring Cloud完整体系架构图二、模拟微服务场景实例一、Spring Cloud完整体系架构图结合上图,先来解读一下SpringCloud的整体结构,客户的请求从PC端或者移动端发出。先是经过Gateway网关,Spring Cloud Gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。然后服务又可以通过Feign负载均衡找到其他微服务。我们可以将微服务的配置文件放在Git仓库中,有配置中心Config

2021-10-06 11:02:36 141

原创 事务&事务级别

事务&事务级别事务的定义事务级别读未提交(READ_UNCOMMITTED)读已提交(READ_COMMITTED)可重复读(REPEATABLE_READ)扩展事务的定义事务是访问并可能更新数据库中各种数据项的一个程序执行单元(unit),指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。begin;insert into grade values(5,‘bb’)这里添加的数据还有没有提交,所以数据库中未有这条数据commit 执行完这句之后才会提交到数据库

2021-07-19 17:12:03 206

原创 线程安全和不安全&加锁

线程安全和不安全&加锁一、线程不安全的表现二、线程安全三、加锁的方法同步代码同步方法显示锁 Lock 子类 ReentrantLock一、线程不安全的表现多个线程同时争抢一个数据(资源),容易发生线程不安全,例如下面卖票的例子,总三个线程相当于三个售票窗口,三个线程同时操作一个变量package com.xiancheng;public class test5 { /* * 创建一个任务,创建三个线程,每个线程传入相同的任务 * */ public s

2021-07-19 08:37:34 173

原创 序列化和反序列化

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、Serializable接口 实现序列化和反序列化4主函数:Student类:方法实现类:二、Serializable接口 部分属性序列化使用transient修饰符使用static修饰符使用默认方法writeObject 和 readObject三、Externalizable 接口实现 部分属性序列化示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。一、Serializab

2021-07-18 18:04:14 119

原创 BigDecimal的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码

2021-07-18 10:07:02 43

原创 带你认识JSON

带你认识JSON什么是JSON简单分析JSON和XML和java和js存储数据的区别JSON的语法规则java与JSONGsonFastJson什么是JSONJSON(JavaScript Object Notation),JS对象简谱 , 是一种轻量级的数据交换格式.1、JSON 的名称中虽然带有JavaScript,这是指其语法规则是参考JavaScript对象的,而不是指只能用于JavaScript 语言。2、因为JSON本身就是参考JavaScript 对象的规则定义的,其语法与JavaSc

2021-04-28 16:12:39 172

原创 多线程通信问题--生产者与消费者

多线程通信问题–生产者与消费者下面以厨师和服务员和上菜这件事为例(默认只有一个厨师一个服务生,一个装菜的盘子)先上代码感受一下多线程通信会出现的问题:package com.xiancheng;public class testxiaosheng { public static void main(String[] args) { Food f = new Food(); new Cook(f).start(); new Waiter(f).

2021-04-23 15:25:48 61

原创 实现多线程的三种方式

实现多线程的三种方式1、继承Thread2、实现Runnable接口3、带返回值的线程Callable1、继承Thread先上代码://实现多线程/** Thread实现多线程* 子线程任务调用的方法都是在子线程中执行* 每个线程都有自己的栈空间,共用一份堆内存** */public class test1 { public static void main(String[] args) { MyThread m = new MyThread();

2021-04-23 14:47:50 256

原创 ListIterator迭代器以及cursor,lastRet游标

ListIterator迭代器前言迭代器迭代的定义:常用方法具体实例讲解迭代器实现的过程(一)(二)(三)(四)(五)前言在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口java.util.Iterator 。 Iterator 接口也是Java集合中的一员,但它与 Collection 、 Map 接口有所不同, Collection 接口与 Map 接口主要用于存储元素,而 Iterator 主要用于迭代访问(即遍历)。Collection 中的元素,因此 Iter

2021-03-10 21:15:38 1443 2

原创 java-面试题:多态的运用

通过代码实例来了解多态的运用示例1:简单的感受一下多态示例2:测试一下示例1:简单的感受一下多态public class demo{ public static void main(String[] args){ Student s = new Student(); chuandi(s); //输出ssss Teacher t = new Teacher(); chuandi(t); //输出ttt

2021-03-09 11:59:57 72

原创 ArrayList实现扩容的具体过程

ArrayList是如何实现动态扩容的文章目录ArrayList是如何实现动态扩容的前言一、我们先通过了解一下ArrayList的构造方法二、走进原码三、注意&总结前言我们都知道ArrayList是基于动态数组的实现,当需要的长度大于自身最大的容量的时候,能自己扩容。那么它是怎么扩容的呢?每次扩容多少呢?还有初始的长度是多少呢?一、我们先通过了解一下ArrayList的构造方法从图中我们可以看到ArrayList有三个构造方法。一个无参构造方法,一个传入一个int型的构造方法,另

2021-03-09 01:37:27 3179

原创 第十一届蓝桥杯Java B组省赛第二场--子串分值和

子串分值和问题分析时间限制: 1.0s内存限制: 512.0MB本题总分:25 分【问题描述】对于一个字符串 S ,我们定义 S 的分值 f (S ) 为 S 中出现的不同的字符个数。例如 f (”aba”) = 2, f (”abc”) = 3, f (”aaa”) = 1。现在给定一个字符串 S [0…n − 1](长度为 n),请你计算对于所有 S 的非空子串 S [i… j](0 ≤ i ≤ j < n), f (S [i… j]) 的和是多少。【输入格式】输入一行包含一

2021-03-01 21:38:20 776

原创 数组基本格式

数组一维数组的基本格式格式1格式2格式3格式4二维数组格式一维数组的基本格式格式1数据类型[] 数组名称 = new 数据类型[数组长度]; 表明了长度,分配了空间int[] args = new int[10]; 表明创建了数组长度为10,名为args的整形数组,其中数组中的每个值默认为0格式2数据类型[] 数组名称 = {数组内容 1,数组内容 2,数组内容 3…数组内容 n}; 表明了长度和内容。int[] kk = {2,3,4,1,4,5}; 表明数组长度为6,并且给每个数组下

2021-02-15 11:57:58 4673

原创 java基础-Scanner接收用户输入

java接收用户输入(Scanner)Scanner是JDK 1.5新增的一个类,可以使用该类创建一个对象,对象再调用下列方法,读取用户在输入行中输入的各种基本类型的数据。nextBoolean(),nextByte(),nextShort(),nextInt(),nextLong(),nextFloat(),nextDouble(),下面举个例子import java.util.Scanner;public class qiqi{ public static void main (Strin

2021-02-15 00:20:17 387

原创 java环境搭建

java环境搭建&浅谈环境变量下载jdk1.点击javaSE下载2.选择想要的版本,点击JDK下载3.安装搭建环境1.win7和win10的操作过程win7详细介绍可选部分:2. 测试什么是环境变量下载jdkjdk下载链接: 点击下载过程如下:1.点击javaSE下载2.选择想要的版本,点击JDK下载会显示多个版本的jdk,这里以Java SE 11为例,点击下载,然后选中符合自己操作系统的版本进行下载。3.安装下载后得到这样的应用程序(按流程安装就行)注意下载完jdk后安

2021-02-14 18:24:44 229

空空如也

空空如也

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

TA关注的人

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