
学习笔记
文章平均质量分 54
Radish萝卜
Trying to do better
展开
-
JUC并发编程学习笔记
目录一、简介1、什么是JUC二、线程和进程三、Lock锁(重点)四、生产者和消费者问题五、8锁现象六、集合类不安全七、Callable(简单)八、常用的辅助类8.1 CountDownLatch8.2 CyclicBarrier8.3 SemaPhore九、读写锁十、阻塞队列十一、线程池(重点)十二、四大函数式接口(必须掌握)十三、流式计算十四、ForkJoin十五、异步回调十六、JMM十七、Volatile十八、彻底玩转单例模式十九、深入理解CAS二十、原子引用二十一、各种锁的理解21.1 公平锁21.2原创 2020-11-13 16:17:51 · 289 阅读 · 0 评论 -
Java多线程入门知识点-学习笔记
目录一、线程简介1、什么是多线程2、程序 进程 线程二、线程创建1、三种创建方式2、Thread3、实现Runnable4、小结5、实现Callable接口(了解)6、静态代理模式7、Lamda表达式三、线程状态1、五大状态2、线程方法3、停止线程4、线程休眠5、线程礼让6、Join7、线程状态观测8、线程优先级9、守护(daemon)线程三、线程同步1、并发2、线程同步3、同步方法4、同步方法弊端5、同步块6、死锁7、死锁的避免方法8、Lock(锁)9、synchronized与Lock的对比四、线程协作原创 2020-10-27 13:48:46 · 252 阅读 · 1 评论 -
Java中的反射到底是个啥?
前言最近看面试题的时候,看到有关反射的面试,由于上课学的时候老师压根没讲反射的内容,所以今天又来补漏洞啦一、反射是什么反射到底是个啥?《Java核心技术》书中给出的解释是:能够分析类能力的程序称为反射。反射机制可以用来:在运行时分析类的能力在运行时查看对象,例如,编写一个toString...原创 2020-10-08 14:18:01 · 1077 阅读 · 4 评论 -
Java集合框架知识总结
目录一、什么是集合二、Collection体系集合2.1 Collection父接口2.2 List实现类2.2.1 ArrayList2.2.2 LinkedList2.2.3 不同结构的实现方式2.3 Set子接口2.4 Set的实现类3.1.1 HashSet3.1.2 TreeSet三、Map集合3.1 Map父接口3.2 Map集合的实现类3.2.1 HashMap3.2.2 TreeMap四、Collections工具类一、什么是集合概念:对象的容器,定义了对多个对象进行操作的常用方法。可原创 2020-10-06 11:27:04 · 710 阅读 · 0 评论 -
Java中泛型是什么?常见形式有哪些?泛型集合的使用
一、泛型是什么Java泛型是JDK1.5引入的一个新特性,其本质是参数化类型,把类型作为参数传递一些常用的泛型类型变量:E:元素(Element),多用于java集合框架K:关键字(Key)N:数字(Number)T:类型(Type)V:值(Value)语法:<T,…> T称为类型占位符,表示一种引用类型好处:① 提高代码的重用性。 ② 防止类型转换异常,提高代码的安全性。二、常见形式2.1 泛型类/** * 泛型类 * 语法:类名<T> * T原创 2020-10-05 13:54:53 · 1890 阅读 · 0 评论 -
Java重写equals方法时,不要使用instanceof判断
问题重写equals方法时,不要使用instanceof判断,为什么呢?解析因为当一个类的子类和他进行比较时,用instanceof方法也会返回truepublic class Manager extends Employee() {}public class Employee() {}public class Test(){ public static void main(String[] args) { Manager m = new Manager(); System.o原创 2020-10-04 17:18:20 · 425 阅读 · 1 评论 -
Java中equals方法和hashcode方法有什么不同?Object类是什么?
前言在看Java面试题的时候遇到的题目,hashCode()和equals()的区别。我只知道equals方法却不知道hashCode()是啥。因此翻阅资料开始学习。一、Object类在了解hashCode方法前,还应该搞懂Object类。Object类是Java中所有类的始祖,在Java中每个类都是由它扩展而来的。因此Object类被称为Java中所有类的超类,也叫作父类。如果没有明确指出超类,Object就被认为是这个类的超类。可以使用Object类型的变量引用任何类型的对象:Obj原创 2020-09-27 00:31:22 · 226 阅读 · 0 评论 -
Java中Int类型转换为Short类型是如何计算的?原码、反码、补码是什么?
前言今天在复习Java基础时,遇到了一个问题,这也是为之前没学好Java基础和计算机组成原来补的一个坑。问题为什么将 int 类型的12312341强转为 short 类型后,输出会是 -8427呢,而262199强转后却变成了55。再一顿查找计算机组成原理书后,终于恍然大悟。解析首先 int 类型是占32位,而 short 类型是占16位在计算机中表示的带符号的二进制数称为“机器数”,而机器数有3中表示方法:原码、反码、补码而计算机都是用补码进行运算的因此,我们在int强转为sh原创 2020-09-25 23:45:55 · 8789 阅读 · 0 评论 -
用OpenResty实现广告缓存的载入与读取
文章目录一、需求分析二、实现思路1.Lua是什么2.OpenResty介绍2.1 安装OpenResty2.2 安装nginx2.3 测试访问三、广告缓存的载入与读取3.1 流程3.2 Lua+Nginx配置3.3 nginx限流3.3.1 nginx限流的两种方式一、需求分析首页需要展示各种各样的广告数据,以JD为例:如图,广告大图这种变更频率低的数据,如何提升访问速度呢?1 数据做成静态页(商品详情页)2 做缓存(Redis)二、实现思路通常情况下,首页的流量一般非常高,不适合直接通原创 2020-09-20 13:49:01 · 1051 阅读 · 1 评论 -
快速入门Lua
1 Lua是什么Lua是一个小巧的脚本语言。它是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo三人所组成的研究小组于1993年开发的。 其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua原创 2020-09-15 21:16:21 · 459 阅读 · 0 评论 -
SpringBoot无法注入依赖的其他项目的类
前言在做黑马畅购商城项目实战时遇到的一个问题,记录一下项目场景:在changgou-service-goods这个项目中需要注入changgou-common里IdWorker这个类,启动后报错显示没有扫描到。问题描述:报错信息:已加注解@Autowiredpom依赖也写了看了很多别的大神的博客(如果不是跟我同样的问题,可以参考一下这个)https://blog.youkuaiyun.com/runner1920/article/details/79076506依然解决不了我的问题解决方原创 2020-09-14 00:00:33 · 894 阅读 · 0 评论 -
分布式文件存储FastDFS
前言本文是黑马畅购商城项目实战的学习笔记1.FastDFS简介1.1 FastDFS体系结构FastDFS是一款开源的分布式文件系统,功能主要包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了文件大容量存储和高性能访问的问题。FastDFS特别适合以文件为载体的在线服务,如图片、视频、文档等等。FastDFS作为一款轻量级分布式文件系统,版本V6.01代码量6.3万行。FastDFS用C语言实现,支持Linux、FreeBSD、MacOS等类UNIX系统。FastDFS类似goo原创 2020-09-12 20:55:00 · 221 阅读 · 0 评论 -
计算机网络复习——第一章 概述
第1章 概述1.1 计算机网络在信息时代中的作用1.1.1 计算机网络的特点连通性(connectivity)使上网用户之间都可以交换信息(数据,以及各种音频视频),好像这些用户的计算机都可以彼此直接连通一样注意,互联网具有虚拟的特点,无法准确知道对方是谁,也无法知道对方的位置共享(Sharing)指资源共享资源共享的含义是多方面的。可以是信息共享、软件共享,也可以是硬件共享由于网络的存在,这些资源好像就在用户身边一样,方便使用。1.2 互联网概述1.2.1 网络的网络原创 2020-08-27 20:28:39 · 1438 阅读 · 0 评论 -
绿盟大赛-ModelArts实现智能花卉识别
目录一、ModelArts实现智能花卉识别的概述1.为什么需要花卉识别?2.传统花卉识别智能化的诉求3.智能花卉识别的概念4.ModelArts实现智能花卉识别的优势二、ModelArts实现智能花卉识别的解决方案1.传统AI开发面临的难题2.ModelArts实现智能化的优势三、ModelArts实现智能花卉识别所需的华为云技术1.ModelArts的基本原理2.ModelArts的使用方式3.AI开发的基本流程3.1 准备数据3.2 训练模型(1)3.3 模型的管理和部署4.ModelArts产品与智能原创 2020-08-24 17:49:54 · 3511 阅读 · 1 评论 -
Java main方法上的参数String[] args到底是个啥
今天在复习Java基础的时候,解决的以前一直忽略的一个问题,就是main方法上的String[] args是个啥。现在根据《Java核心技术》来解答。命令行参数每一个Java应用程序都有一个带String[] args参数的main方法。这个参数表明main方法将接收一个字符串数组,也就是命令行参数。例如,书中的一个例子:public class Message { public static void main(String[] args) { if(args.leng原创 2020-08-06 16:51:25 · 357 阅读 · 0 评论 -
SpringCloud2020学习笔记17——SpringCloud Alibaba Sentinel实现熔断与限流
目录一、Sentinel1、Sentinel 是什么2、下载地址3、作用4、如何使用二、安装Sentinel控制台1、sentinel组件由2部分组成2、安装步骤三、初始化演示工程一、SentinelSentinel: 分布式系统的流量防卫兵官网:https://github.com/alibaba/Sentinel1、Sentinel 是什么A powerful flow control component enabling reliability, resilience and monit原创 2020-08-02 17:59:37 · 2067 阅读 · 0 评论 -
Nginx学习笔记08——Nginx原理
1、mater 和 worker2、worker 如何进行工作的3、master——workers 的机制的好处(1)可以使用 nginx –s reload 热部署,利用 nginx 进行热部署操作(2)每个 woker 是独立的进程,如果有其中的一个 woker 出现问题,其他 woker 独立的,继续进行争抢,实现请求过程,不会造成服务中断4 、设置多少个 woker 合适worker 数和服务器的 cpu 数相等是最为适宜的5、连接数 worker_connection第一个:原创 2020-08-01 00:54:12 · 126 阅读 · 0 评论 -
Nginx学习笔记07——Nginx 配置高可用的集群
1、什么是nginx高可用防止一台nginx服务器宕机之后无法进行服务请求,实现nginx高可用。因此需要配置nginx集群。2、准备工作(1)需要两台服务器(2)在两台服务器安装nginx(3)在两台服务器安装keepalived3、在两台服务器安装 keepalived(1)使用yum命令进行安装yum install keepalived –y(2)安装之后,在 etc 里面生成目录 keepalived ,有文件 keepalived.conf4、完成高可用配置(主从配置原创 2020-08-01 00:46:08 · 215 阅读 · 0 评论 -
Nginx学习笔记06——nginx动静分离实例
一、简介通过 location 指定不同的后缀名实现不同的请求转发。通过 expires 参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。具体 Expires 定义:是给一个资源设定一个过期时间,也就是说无需去 服务端验证,直接通过浏览器自身确认是否期即可,所以不会产生额外的流量。此种方法非常适合不经常变动的资源。(如果经常更新的文件,不建议使用 Expires 来缓存),我这里设置 3d ,表示在这 3 天之内访问这个 URL ,发送一个请求,比对服务器该文件最后更新时间没有变化,原创 2020-07-31 19:57:40 · 231 阅读 · 0 评论 -
Nginx学习笔记05——nginx负载均衡实例
一、实例11、实现效果(1 )浏览器地址栏输入地址 http://192.168.5.75/edu/a.html ,负载均衡效果,平均 8080和 和 8081 端口中2、准备工作(1 )准备两台 tomcat 服务器,一台 8080 ,一台 8081(2 )在两台 tomcat 里面 webapps 目录中,创建名称是 edu 文件夹,在 edu 文件夹中创建页面 a.html3、在 nginx 的配置文件中进行负载均衡的配置4、测试5、nginx 分配服务器策略第一种 轮询(默认原创 2020-07-31 18:25:14 · 210 阅读 · 0 评论 -
Nginx学习笔记04——nginx反向代理实例
一、实例11、实现效果(1)打开浏览器,在浏览器输入地址www.radish.com,跳转到linux系统tomcat主页中2、准备工作(1)在linux系统安装tomcat,使用默认端口8080(2)访问过程的分析3、具体配置第一步:添加内容到host文件中第二步 在 在 nginx 进行请求转发的配置(反向代理配置)4、测试重新加载 ./nginx -s reload二、实例21、实现效果使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中nginx 监原创 2020-07-31 17:29:50 · 195 阅读 · 0 评论 -
Nginx学习笔记03——nginx 常用的命令和配置文件
一、nginx常用命令在/usr/local/nginx/sbin 目录下执行命令1、启动命令./nginx2、关闭命令./nginx -s stop3、重新加载命令当修改了配置文件不想重启nginx,则可使用重加载./nginx -s reload4、查看当前nginx状况ps -ef | grep nginx二、nginx.conf 配置文件nginx 安装目录下,其默认的配置文件都放在这个目录的 conf 目录下,而主配置文件nginx.conf 也在其中,后续对 nginx原创 2020-07-30 23:34:39 · 284 阅读 · 0 评论 -
Nginx学习笔记02——Nginx安装详细流程
一、需要的依赖pcre-8.37.tar.gzopenssl-1.0.1t.tar.gzzlib-1.2.8.tar.gznginx-1.11.1.tar.gz二、开始进行 nginx 安装1、安装pcre依赖第一步 联网下载 pcre 压缩文件依赖wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz 若没有wget,需先执行yum install -y wget安装第二步 解压压原创 2020-07-30 22:23:28 · 198 阅读 · 0 评论 -
Nginx学习笔记01——Nginx是什么?反向代理?负载均衡?动静分离?
一、什么是NginxNginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。二、正向代理正向代理,意思是一个位于客户端和原始服务原创 2020-07-30 21:15:19 · 343 阅读 · 0 评论 -
SpringCloud2020学习笔记15——SpringCloud Alibaba入门简介
目录一、为什么会出现SpringCloud alibaba1、Spring Cloud Netflix项目进入维护模式二、SpringCloud alibaba带来了什么?1、官网2、作用3、下载4、怎么玩三、SpringCloud alibaba学习资料获取1、官网2、英文3、中文一、为什么会出现SpringCloud alibaba1、Spring Cloud Netflix项目进入维护模式进入维护模式意味着 Spring Cloud Netflix 将不再开发新的组件我们都知道SpringCl原创 2020-07-29 13:53:10 · 685 阅读 · 0 评论 -
SpringCloud2020学习笔记14——SpringCloud Sleuth分布式请求链路追踪
目录一、概述1、为什么会出现这个技术?需要解决哪些问题?2、简介二、搭建链路监控步骤1、zipkin① 下载② 运行jar③ 运行控制台④ 术语2、服务提供者① cloud-provider-payment8001② POM③ YML④ 业务类PaymentController3、服务消费者(调用方)① cloud-consumer-order80② POM③ YML④ Controller4、依次启动eureka7001/8001/805、打开浏览器访问:http:localhost:9411一、概述原创 2020-07-28 21:44:33 · 366 阅读 · 0 评论 -
SpringCloud2020学习笔记13——SpringCloud Stream消息驱动
目录一、消息驱动概述1、简介2、官网2、设计思想① 标准MQ② 为什么用Cloud Stream③ Stream中的消息通信方式遵循了发布-订阅模式3、Spring Cloud Stream标准流程套路① Binder② Channel③ Source和Sink4、编码API和常用注解二、案例说明1、工程中新建三个子模块① cloud-stream-rabbitmq-provider8801,作为生产者进行发消息模块② cloud-stream-rabbitmq-consumer8802,作为消息接收模块③原创 2020-07-28 20:06:47 · 478 阅读 · 0 评论 -
SpringCloud2020学习笔记12——SpringCloud Bus 消息总线
目录一、概述1、Spring Cloud Bus配合Spring Cloud Config使用可以实现配置的动态刷新2、Bus支持两种消息代理:RabbitMQ和Kafka3、作用4、为何被称为总线二、 RabbitMQ环境配置1、安装Erlang2、安装RabbitMQ3、进入RabbitMQ安装目录下的sbin目录4、输入以下命令启动管理功能5、访问地址查看是否安装成功6、输入账号密码并登录: guest guest三、SpringCloud Bus动态刷新全局广播1、演示广播效果,增加复杂度,再以33原创 2020-07-28 15:13:53 · 291 阅读 · 0 评论 -
SpringCloud2020学习笔记11——SpringCloud config分布式配置中心
目录一、概述1、分布式系统面临的配置问题2、简介3、作用4、与Github整合配置、5、官网二、Config服务端配置与测试1、Github上新建一个名为sprincloud-config的新Repository2、本地硬盘上新建git仓库并clone3、此时在本地4、新建Module模块cloud-config-center-3344它既为Cloud的配置中心模块cloudConfig Center5、POM6、YML7、主启动8、测试通过Config微服务是否可以从Github上获取配置内容9、配置读取原创 2020-07-27 23:23:33 · 990 阅读 · 0 评论 -
SpringCloud2020学习笔记10——Gateway新一代网关
目录一、概述简介1、官网2、简介3、作用4、微服务架构中网关在哪里5、有了Zuul了怎么又出来了gateway① 我们为什么选择Gateway② Zuul1.x模型③ GateWay模型二、三大核心概念1、Route(路由)2、Predicate(断言)3、Filter(过滤)三、Gateway工作流程1、官网总结2、核心逻辑四、入门配置1、新建Module① cloud-gateway-gateway9527② POM③ YML④ 业务类⑤ 主启动类⑥ YML新增网关配置⑦ 测试五、通过微服务名实现动态路原创 2020-07-27 20:02:23 · 1729 阅读 · 0 评论 -
SpringCloud2020学习笔记09——Hystrix断路器
目录一、概述1、分布式系统面临的问题2、Hystrix简介3、作用① 服务降级② 服务熔断③ 接近实时的监控4、官方资料5、Hystrix官宣,停更进维二、Hystrix重要概念1、服务降级2、服务熔断3、服务限流三、Hystrix案例1、构建① 新建cloud-provider-hystrix-payment8001② POM③ YML④ 主启动类⑤ 业务类2、高并发测试① Jmeter压测测试② Jmeter压测结论③ 80新建加入① 新建cloud-consumer-feign-hystrix-ord原创 2020-07-26 01:30:36 · 2059 阅读 · 0 评论 -
SpringCloud2020学习笔记08——OpenFeign服务接口调用
目录一、概述1、简介2、作用3、Feign和OpenFeign两者区别二、OpenFeign使用步骤1、接口+注解2、新建cloud-consumer-feign-order803、POM4、YML5、主启动类6、业务类① 业务逻辑接口+@FeignClient配置调用provider服务② 新建PaymentFeignService接口并新增注解@FeignClient③ 控制层Controller7、测试三、OpenFeign超时控制1、超时设置,故意设置超时演示出错情况① 服务提供方8001故意写暂停原创 2020-07-24 23:47:56 · 984 阅读 · 0 评论 -
SpringCloud2020学习笔记07——Ribbon负载均衡服务调用
目录一、概述1、简介2、官方资料3、作用① LB(负载均衡)一、概述1、简介Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动帮助你基于某种规则(如简单轮询,随机连接等)去连接这些原创 2020-07-24 17:40:55 · 1116 阅读 · 0 评论 -
SpringCloud2020学习笔记06——Consul服务注册与发现
目录一、Consul简介1、官网2、作用3、下载4、文档二、安装并运行Consul三、服务提供者1、新建Module支付服务provider80062、POM3、YML4、主启动类5、业务类Controller6、测试四、服务消费者五、三个注册中心异同点1、CAP2、经典CAP图AP(Eureka)CP(Zookeeper/Consul)一、Consul简介1、官网https://www.consul.io/intro2、作用服务发现:提供Http和DNS两种发现方式健康监测:支持多种协议,H原创 2020-07-24 00:08:36 · 235 阅读 · 0 评论 -
SpringCloud2020学习笔记05——Zookeeper服务注册与发现
目录一、Eureka停止更新二、SpringCloud整合Zookeeper代替Eureka1、注册中心zookeeper2、服务提供者① cloud-provider-payment8004② POM③YML④ 主启动类⑤ Controller⑥ 排除zookeeper冲突⑦ 云服务器需要配置安全规则⑧ 测试⑨ 测试23、服务消费者① cloud-consumerzk-order80② POM③ YML④ 主启动⑤ Controller⑥ 配置Bean⑦ 测试一、Eureka停止更新https://g原创 2020-07-23 21:03:22 · 643 阅读 · 0 评论 -
centos 7.5上安装docker流程
目录一:查看CentOS内核版本号二:安装三:启动四:停止一:查看CentOS内核版本号输入uname -r查看,Docker要求CentOS系统的内核版本高于3.10若小于3.10,则执行yum update更新二:安装安装执行yun install docker ,出现提示后,输入y确认出现Complete,安装完成三:启动启动systemctl start dockerdocker -v查看版本号设置开启自启 systemctl enable docker四:停止停原创 2020-07-23 15:20:27 · 142 阅读 · 0 评论 -
SpringCloud2020学习笔记04——Eureka服务注册与发现
目录一、Eureka基础知识1、什么是服务治理2、什么是服务注册3、Eureka两组件① Eureka Server提供服务注册服务② Eureka Client通过注册中心进行访问二、构建单击Eureka步骤1、IDEA生成eurekaServer端服务注册中心2、EurekaClient端cloud-provider-payment8001将注册进EurekaServer成为服务提供者provider3、EurekaClient端cloud-consumer-order80将注册进EurekaServe原创 2020-07-23 14:27:19 · 792 阅读 · 0 评论 -
SpringCloud2020学习笔记03——微服务架构编码构建
一、IDEA新建project工作控件1、微服务cloud整体聚合父工程Project父工程步骤:① New Project② 字符编码③ 注解激活生效④ java编译版本选82、父工程POM<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst原创 2020-07-22 16:33:12 · 576 阅读 · 0 评论 -
SpringCloud2020学习笔记02——版本选择
版本选择一、SpringBoot版本选择git源码地址SpringBoot2.0新特性官网查看版本二、SpringCloud版本选择官网三、SpringCloud和SpringBoot之间的依赖关系如何查看依赖查看版本推荐四、本次学习选用版本一、SpringBoot版本选择git源码地址https://github.com/spring-projects/spring-boot/releasesSpringBoot2.0新特性官网强烈建议升级到2.x以上版本https://github.com原创 2020-07-21 17:50:14 · 339 阅读 · 0 评论 -
SpringCloud2020学习笔记01——简介
一、SpringCloud是什么SpringCloud是分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶。二、SpringCloud里有多少种技术三、SpringCloud技术栈主流核心技术:...原创 2020-07-21 17:09:34 · 179 阅读 · 0 评论