自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《剑指offer》,“把字符串转换成整数” 题解——过程中如何判断整数上下溢出

《把字符串转换成整数》题意:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。这个代码是牛客上一位大佬的,但是大佬的注解不全,我没看太懂,直到我自己把注解写的详细一些才看明白,我就把我写的注解也放上来,方便大家看明白。代入值建议可以试着用最大的正整数(2147483647)带入。//这个方法可以判断溢出,即数字大于2147483647时,输出0;//或者数字小于-2147483648时,输出0; public int StrToInt(

2021-01-09 15:26:10 265

原创 2020SpringCloud学习年终总结——概览

根据B站的尚硅谷springcloud2020教学视频进行学习,这是历时近一个月学习成果,对每一个模块还有详细的笔记,地址为:第一章-微服务提供者: https://blog.csdn.net/weixin_46185085/article/details/111886004第二章-微服务消费者: https://blog.csdn.net/weixin_46185085/article/details/111887367第三章-Eureka: https://blog.csdn.net/weixin

2020-12-30 10:02:45 232

原创 2020SpringCloud学习年终总结——第十七章-seata

Seata前置分布式之前,单机单库没有下面这些问题;单体引用被拆分成微服务应用,原来的三个模块,被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部数据的一致性由本地事务来保证,但是全局的数据一致性问题没法保证。Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。官网地址:http://seata.io/zh-cn/能干嘛:一个典型的分布式事务过程:分布式事务处理过程的一致性ID,以及

2020-12-30 09:54:27 271

原创 2020SpringCloud学习年终总结——第十五章-Nacos服务注册和配置中心

Nacos前置为什么叫Nacos?前四个字母分别为Naming和Configuration的前两个字母,最后的为s是Service;Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,即Nacos:Dynamic Naming and Configuration ServiceNacos是服务注册中心和配置中心的组合,等价于Nacos = Eureka+Config+Bus;替代Eureka做服务注册中心,替代Config做服务配置中心。github:

2020-12-30 09:54:08 262

原创 2020SpringCloud学习年终总结——第十六章-Sentinel

Sentinel前置官网:https://github.com/alibaba/Sentinel/wiki,分布式的流量防卫兵,轻量级的流量控制、断熔降级JAVA库;How to use? https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#_spring_cloud_alibaba_sentinel粗略的说,可以应对服务使用中的以下问题:服务雪崩、服务

2020-12-30 09:53:46 184

原创 2020SpringCloud学习年终总结——第十四章-springcloud alibaba简介

前置Spring Cloud Netflix进入维护模式,意味着Spring Cloud Netflix将不再开发新组件,即不在开发新组件和功能了;Dubbo和springcloud,springcloudAlibaba的关系2018.10.31,springcloud Alibaba正式入驻spring cloud官方孵化器,并在Maven中央库中发布了第一个版本;spring cloud Alibaba能干嘛?致力于提供微服务开发的一站式解决方案,提供必要的各种组件;服务

2020-12-30 09:53:27 91

原创 2020SpringCloud学习年终总结——第十三章-sleuth

Sleuth(请求链路追踪)前置在微服务框架中,一个由客户端发起的请求,在后端系统中会经过多个不同的服务节点调出来协同产生最后的请求结果,每一个阶段,请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或者错误,都会引起整个请求最后的失败。Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案,并兼容支持zipkin。Sleuth借鉴了zipkin;版本说明cloud Hoxton.SR1boot 2.2.2R

2020-12-30 09:53:05 118

原创 2020SpringCloud学习年终总结——第十二章-stream

Stream前置为了解决一个完整系统中有多个消息中间件(MQ),它们的切换、维护、开发会很麻烦。希望只需要用一种适配绑定的方式,自动给我们在各种MQ中切换。Stream就是可以屏蔽底层的这些插件,能够操作各种MQ,降低开发难度。屏蔽底层消息中间件的差异,降低切换成本,同一消息的编程模型。Spring Cloud Stream 是一个构建消息驱动微服务的框架。应用程序通过inputs或者outputs,来与Spring Cloud Stream中的binder对象交互。通过我们配置来binding(绑

2020-12-30 09:52:49 159

原创 2020SpringCloud学习年终总结——第十一章-Bus

Bus消息总线前置是否可以实现一次通知,处处(假设有多个config客户端)生效,或者定向通知某些客户端(有100台机器,只通知指定的89台)?目前来说做不到,只能用springcloud bus(消息总线)。一般SpringCloud Config和SpringCloud Bus(消息总线)是一块用的。SpringCloud Bus 配合Spring Cloud Config,实现配置的动态刷新功能。SpringCloud Bus支持两种消息代理(中间件):RabbitMQ和Kaf

2020-12-30 09:52:30 125 1

原创 2020SpringCloud学习年终总结——第十章-Config

Config分布式配置中心前置微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。我们每个微服务自己带着一个application.yml,过多的配置管理将出现问题,springcloud提供了ConfigServer来解决这个问题。springcloud config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环

2020-12-29 14:43:25 141 1

原创 2020SpringCloud学习年终总结——第九章-Gateway

Gateway前置Zuul是路由网关,但是现在更趋向于使用Gateway(新一代网关)。Spring研发的Gateway。cloud全家桶中有一个很重要的组件就是网关,在1.x版本中采用的Zuul网关;但在2.x版本中,zuul的升级一直跳票,最后springcloud则自己研发了一个网关代替了zuul。即gateway是原zuul1.x版的替代。SpringCloud Gateway,是基于Web’Flux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通信框架Ne

2020-12-29 14:41:24 210 1

原创 2020SpringCloud学习年终总结——第八章-Hystrix

Hystrix前置分布式系统面临的问题:在复杂的分布式体系结构中,可能有十几个依赖关系,每个依赖关系在某些时候将不可避免的会失败,导致服务雪崩;雪崩效应:多个微服务之间调用,微服务A调用B和C,B和C又调用其他微服务(称为“扇出”),如果扇出的链路某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃。具体来说,对于高流量的应用来说,单一的后端依赖可能会导致所有的服务器上的所有资源在几秒钟就饱和。更糟糕的是,这些应用程序还可能导致服务之间的延迟增加,备份

2020-12-29 14:37:41 246

原创 2020SpringCloud学习年终总结——第七章-Feign

代码地址:https://github.com/AJ-Spade/cloud2020/tree/masterFeign前置Feign是一个声明式的Web服务的客户端,它让编写Web服务的客户端变得更容易,只需创建一个接口,并再接口上添加注解即可。目的:让编写Java Http客户端(例如消费者80端口的服务)变得更容易;在之前使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模板化的调用方法。但是,在实际开发中,由于对服务依赖的调用可能不

2020-12-29 14:36:02 237

原创 2020SpringCloud学习年终总结——第六章-Ribbon

代码地址:https://github.com/AJ-Spade/cloud2020/tree/masterRibbon前置Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端,主要是提供负载均衡算法和服务调用的工具。Ribbon主要起到负载均衡+RestTemplate调用(实现RPC远程调用)的功能;Eureka2.0集成了Ribbon主要是在模块cloud-consumer-order80上进行展示版本说明cloud Hoxton.SR1boo

2020-12-29 14:34:45 180

原创 2020SpringCloud学习年终总结——第五章-Consul

Consul前置Eureka(停更),Zookeeper,Consul,Nacos相关module:cloud-providerconsul-payment8006总体与zookeeper差不多,这里用的是本机的windows版Consul版本说明cloud Hoxton.SR1boot 2.2.2RELEASEcloud alibaba 2.1.0 RELEASEjava java8Maven 3.5以上Mysql 5.7以上ConsulConsul是一套开源的分布式服务

2020-12-29 14:33:33 108

原创 2020SpringCloud学习年终总结——第四章-zookeeper

代码地址:https://github.com/AJ-Spade/cloud2020/tree/masterZookeeper前置Eureka(停更),Zookeeper,Consul,NacosEureka挺更了!!! 现在SpringCloud整合Zookeeper,代替Eureka!centos7中 zookeeper位置是/usr/local/services/zookeeper/zookeeper-3.4.9/binzookeeper IP ,即centos的ip 192.168.56

2020-12-29 14:28:13 100

原创 2020SpringCloud学习年终总结——第三章-Eureka

服务注册中心集群和服务提供者集群Eureka(停更),Zookeeper,Consul,Nacos涉及到的module:cloud-consumer-order80cloud-eureka-server7001cloud-eureka-server7002cloud-provider-payment8001cloud-provider-payment8002版本说明cloud Hoxton.SR1boot 2.2.2RELEASEcloud alibaba 2.1.0 RELEA

2020-12-29 14:25:43 149

原创 2020SpringCloud学习年终总结——第二章-微服务消费者

微服务概念版本说明cloud Hoxton.SR1boot 2.2.2RELEASEcloud alibaba 2.1.0 RELEASEjava java8Maven 3.5以上Mysql 5.7以上客户端消费者 cloud-consumer-order80因为是访问8001的服务,因此只需要一个controller就行了。@RestController@Slf4jpublic class OrderController { public static final

2020-12-29 11:53:49 121

原创 2020SpringCloud学习年终总结——第一章-微服务提供者

微服务概念每个微服务运行在其独立的进程中,服务和服务间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)。版本说明cloud Hoxton.SR1boot 2.2.2RELEASEcloud alibaba 2.1.0 RELEASEjava java8Maven 3.5以上Mysql 5.7以上微服务模块 cloud-provider-payment8001如何构件一个微服务模块: 建立module => 改写POM => 写YML =&g

2020-12-29 11:50:12 144

原创 连接oracle数据库时,报错Could not load driverClass oracle.jdbc.driver.OracleDriver

出现这个问题弄了好久,也看了很多方法,尝试了很久以后才发现是在配置文件中多了一个空格。建议大家在尝试其他方法前,看看这里是不是多了没有必要的空格(第一行最后多了一个空格)。...

2020-11-17 14:31:06 2455

原创 java web学习6——Tomcat、Servlet

1.web相关概念回顾软件架构C/S:客户端/服务器端B/S:浏览器/服务器端资源分类静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏览器解析如: html,css,JavaScript动态资源:每个用户访问相同资源后,得到的结果可能不一样。称为动态资源。动态资源被访问后,需要先转换为静态资源,在返回给浏览器如:servlet/jsp,php,asp…网络通信三要素IP:电子设备(计算机)在网络中的唯一标识。端口:应用

2020-08-27 02:46:12 100

原创 java web学习5——XML、Jsoup

1. XML概念:Extensible Markup Language 可扩展标记语言可扩展:标签都是自定义的。 功能存储数据配置文件在网络中传输xml与html的区别xml标签都是自定义的,html标签是预定义。xml的语法严格,html语法松散xml是存储数据的,html是展示数据w3c:万维网联盟语法:基本语法:xml文档的后缀名 .xmlxml第一行必须定义为文档声明xml文档中有且仅有一个根标签属性值必须使用引号(

2020-08-24 08:55:06 117

原创 java web学习4——Bootstrap

1.Bootstrap概念: 一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的,它简洁灵活,使得 Web 开发更加快捷。框架:一个半成品软件,开发人员可以在框架基础上,在进行开发,简化编码。好处:定义了很多的css样式和js插件。我们开发人员直接可以使用这些样式和插件得到丰富的页面效果。响应式布局。同一套页面可以兼容不同分辨率的设备。快速入门下载Bootst

2020-08-20 17:41:24 174

原创 java web学习3——JavaScript基础

1.JavaScript概念: 一门客户端脚本语言运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎脚本语言:不需要编译,直接就可以被浏览器解析执行了功能:可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。1.1 Javascript发展史JavaScript发展史:1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为 : C-- ,后来更名为:ScriptEas

2020-08-19 12:46:15 304

原创 java web学习2——CSS介绍、CSS语法、CSS的选择器、CSS属性

1.CSS概念: Cascading Style Sheets 层叠样式表。层叠的意思是,多个样式可以作用在同一个html的元素上,同时生效。使用CSS的好处:功能强大将内容展示和样式控制分离* 降低耦合度,解耦* 让分工协作更容易* 提高开发效率1.1CSS的使用CSS与html结合方式有两种,分别是内联样式和内部样式,以及外部样式。内联样式* 在标签内使用style属性指定css代码* 如:<div style="color:red;">hello css&lt

2020-08-17 19:31:24 122

原创 java web学习1——基本概念、html标签、表单标签

1.web概念概述JavaWeb:使用Java语言开发基于互联网的项目。1.1软件架构分类1.C/S: Client/Server 客户端/服务器端在用户本地有一个客户端程序,在远程有一个服务器端程序,例如:QQ,迅雷等。它的优点是用户体验好;其缺点,是开发、安装,部署,维护很麻烦。2.B/S: Browser/Server 浏览器/服务器端,只需要一个浏览器,用户通过不同的网址(URL),客户访问不同的服务器端程序。优点是开发、安装,部署,维护 简单;缺点是如果应用过大,用户的体验可能会受到影响

2020-08-16 18:12:14 213

原创 JDBC学习2——数据库连接池技术(C3P0、Druid)、Spring JDBC

1.数据库连接池概念:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。这样做的好处有两个:节约资源;用户访问高效。1.1 数据库连接池的实现标准接口:DataSource(数据源,即数据库连接池),这是javax.sql包下的,它没有对应的实现类,谁提供数据库的驱动,谁负责实现。DataSource中有两个方法:获取连接:getConnection()

2020-08-14 22:15:34 108

原创 JDBC学习1——JDBC基本概念、JDBC的各个对象、JDBC控制事务

1.JDBC概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库。JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。1.1JDBC快速入门步骤:导入驱动jar包 mysql-connector-java-5.1.37-bin.jar复制mysql-connector-java

2020-08-14 10:26:41 141

原创 MySQL学习3——多表查询、子查询、事务、DCL

1. 多表查询:查询语法:select 列名列表from 表名列表where....准备过程的sql语句:# 创建部门表CREATE TABLE dept( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20));INSERT INTO dept (NAME) VALUES ('开发部'),('市场部'),('财务部');# 创建员工表CREATE TABLE emp ( id INT PRIMARY KEY AUTO_I

2020-08-13 20:28:57 121

原创 MySQL学习2——DQL查询(排序、聚合、分组、分页)、约束、表间关系、范式

1. DQL:查询语句1.1 排序查询语法:order by 子句order by 排序字段1 排序方式1 , 排序字段2 排序方式2...排序方式:(1)ASC:升序,默认的;(2)DESC:降序注意:如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。1.2 聚合函数将一列数据作为一个整体,进行纵向的计算。常用关键字有如下几个:1.count:计算个数,注意两点:一般选择非空的列:主键count(*),一行数据中,只要有一个不为null,就加1;2 max:计算

2020-08-10 12:52:07 118

原创 MySQL学习1——数据库基本概念和基本语句

1. 数据库的基本概念1. 数据库的英文单词: DataBase 简称 : DB2. 什么数据库? * 用于存储和管理数据的仓库。3. 数据库的特点: 1. 持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库 -- SQL2. SQL1.什么是SQL? Structured Query Language:结构化查询语言 其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。 2.SQ

2020-08-08 16:35:36 116

原创 JAVA学习14——Junit、反射、注解

0.主要内容(1)Junit单元测试(2)反射(3)注解1.Junit单元测试测试分类:1)黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值;2)白盒测试:需要写代码,且关注程序具体的执行流程;步骤: 1.定义一个测试类(测试用例) * 建议: * 测试类名:被测试的类名Test CalculatorTest * 包名:xxx.xxx.xx.test cn.ltcast.test 2.定义测试方法:可以独立运行 * 建议: * 方法名:test测试

2020-08-07 17:08:29 123

原创 JAVA学习13——stream流、方法引用

1. stream流概述Stream流JDK1.8之后出现,关注做什么,而不是怎么做。Stream流其实是一个集合元素的函数模型,它既不是集合,也不是数据接哦古,其本身也并不存储任何元素。示例代码:public static void main(String[] args) { list.add("Lucy"); list.add("Nancy"); list.stream() .filter(name->name.startsWith("张")) .filter(name-

2020-08-05 09:54:53 201

原创 JAVA学习12——函数式接口、函数式编程、常用函数式接口(Supplier、Function、Predicate、Consumer)

1.函数式结构概述函数式接口在java中指的是,有且仅有一个抽象方法的接口(但可以有其他静态方法、默认方法、私有方法等)。函数式接口适用于函数式编程场景的接口,Java中就是Lambda。tips:(1)”语法糖“,指使用更加方便,原理不变的代码语法;(2)@Override注解的作用,是检查方法是否为重写方法,是则编译成功,否则编译失败。 (3)同样,可以在函数式接口前,添加一个@Functional函数式接口的格式修饰符 interface 接口名称 { public abstract 返回值

2020-08-04 17:30:02 179

原创 JAVA学习11——网络编程

1.网络编程1.1 软件结构C/S结构:全称为Client/Server结构,是指客户端和服务器结构,常见程序有QQ、迅雷等软件。B/S结构:Browser/Server结构,是指浏览器和服务器结构,常见浏览器有谷歌和火狐等。两种架构各有优势,都需要网络的支持,网络编程,就是在一定的协议下,实现两台计算机的通信的程序。1.2网络通信协议网络通信协议,即通过计算机网络可以使多态计算机实现连接,位于同一个网络中的计算机在进行连接和通信时,需要遵守一定的规则,就好比在道路中行驶的汽车,一定要遵守交通

2020-08-03 20:54:26 203

原创 JAVA学习10——流的编码、序列化、打印流

1.编码字符编码:就是一套自然语言的字符域二进制数之间的对应规则。编码表(字符集):生活中文字和计算机中二进制的对应规则。常见字符集有ASCII字符集(ASCII编码)、GBK字符集(GBK编码、最常用的中文码表)、Unicode字符集(UTF8编码、UTF16编码、UTF32编码)。UTF8时电子邮件、网页以及其他存储或传送文字的应用中、有限采用的编码。1.1字符通向字节的桥梁——OutputStreamWriter/InputStreamReaderOutputStreamWriter可以使用

2020-08-02 17:49:55 216

原创 JAVA学习9——IO字节流字符流、属性集、缓冲流

1.IO——字节流把数据的传输,可以看作是一种数据的流动,以内存为基准,分为输入流和输出流。输入流,即从其他设备(如硬盘)上读取到内存中的流。输出流,即从数据从内存写出到其他设备(如硬盘)上的流。根据数据类型,又可以分为字节流和字符流。tips:1个非ASCII码字符(>127)=2个字节;1个字节=8个二进制位IO流的四个顶级父类1.1 字节输出流/* java.io.OutputStream 字节输出流 此抽象类是表示输出字节流的所有类的超类。 定义了一些子类共性的成员方法:

2020-08-02 09:44:04 130

原创 JAVA学习8——Lambda表达式、File类、文件过滤器

1.Lambda表达式1.1面向对象编程思想的不足在数学中,函数就是有输入量、输出量的一套计算方案,也就是拿什么东西做什么事”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法,强调做什么,而不是以什么形式做,这样能够大大简化代码。例子如下,为了设置一个线程任务,我们需要创建Runnable接口的实现类,重写run方法。public class RunnableImpl implements Runnable { @Override public

2020-08-01 10:50:27 1094

原创 强化学习1——基本概念、MDP、价值迭代、策略迭代、蒙特卡洛

1.强化学习简介1.1 基本概念强化学习是通过从交互学习来实现目标的计算方法。其交互过程是,在每一步t中,智能体与环境进行交互:(1)智能体(agent):获得观察O_t,获得奖励R_t,执行动作A_t;(2)环境:获得行动A_t,给出观察O_{t+1},给出奖励R_{t+1};以上这种交互的一个完整的过程,我们可以称之为历史(History),这是...

2020-07-30 09:01:30 7954

原创 JAVA学习7-----异常

1.异常的概念异常:指的是程序在执行过程中,出现非正常的情况,最终会导致JVM的非正常停止。在JAVA中,异常就是一个类,产生异常就是创建异常对象并抛出一个异常对象。JAVA处理异常的方式是中断处理。异常不包括语法错误。1.1异常的体系异常机制是帮助我们找到程序中的问题,异常的根类是java.lang.Throwable,其下有两个子类:(1)java.lang.Error;//不能处理的,只能尽量避免,只能修改代码才能继续执行,比如创建数组太大了,内存溢出,超出了给JVM分配的内存;(2)ja

2020-07-26 16:44:06 103

空空如也

空空如也

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

TA关注的人

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