- 博客(29)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Netty 进阶系列之聊一聊 IO(一)
第一节 相关概念说明学习IO的相关知识,必须要对下面的一些术语有一定的了解,才能更好的学习IO模型相关知识1、用户空间和内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核(kernel...
2019-05-25 11:15:23
177
原创 《Golang 学习笔记》— 从零开始搭建Go语言开发环境
从零开始搭建Go语言开发环境下载下载地址Go官网下载地址:https://golang.org/dl/Go官方镜像站(推荐):https://golang.google.cn/dl/版本的选择Windows平台和Mac平台推荐下载可执行文件版,Linux平台下载压缩文件版。安装Windows安装此安装实例以 64位Win10系统安装 Go1.11.5可执行文件版本为例。将上一步选好的安装包下载到本地。双击下载好的文件Linux下安装我们在版本选择页面选择并下载好go1.1
2021-05-10 08:17:46
235
原创 ArrayList 并发操作 ConcurrentModificationException 异常
1、故障现象ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常2、故障代码public class ArrayListTest { public static void main(String[] args) { List<String> lists = n...
2020-02-15 20:36:46
1572
原创 图文并茂学"并发编程" - 线程的几种状态及其切换
线程的几种状态初始(NEW):新创建了一个线程对象,但还没有调用start()方法。运行(RUNNABLE):处于可运行状态的线程正在JVM中执行,但它可能正在等待来自操作系统的其他资源,例如处理器。阻塞(BLOCKED):线程阻塞于synchronized锁,等待获取synchronized锁的状态。等待(WAITING):Object.wait()、join()、 LockSuppo...
2019-10-09 22:54:26
161
原创 SpringBoot打印日志配置文件详解
官网的学习地址:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-logging-formatLogBack日志配置SpringBoot默认使用LogBack作为日志,并且在 spring-boot-starter-web 包中依赖了 LogBack的相关jar包logb...
2019-09-01 23:25:34
1758
原创 《大话设计模式》读书笔记 - 组合模式
1、组合模式定义将对象组合成树形结构以表示 ‘部分-整体’ 的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性2、组合模式模型图3、组合模式应用表示对象的 ”部分-整体“ 的层次结构(树形结构)。例如:公司的组织架构图,总公司下面有区域办事处,区域办事处下面有各个省市的子公司;文件和文件夹的管理;树形菜单;希望用户忽略组合对象和单个对象的不同,用户将统一的使用组合结构中...
2019-07-07 16:47:18
131
原创 《大话设计模式》读书笔记 - 迭代器模式
1、迭代器模式定义 提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示2、迭代器模式模型图3、迭代器模式应用1、它支持以不同的方式遍历一个聚合对象。2、迭代器简化了聚合类。 3、在同一个聚合上可以有多个遍历。4、在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码迭代器模式在访问数组、集合、列表等数据时,有着非常普遍的使用,由于它太普遍了...
2019-07-07 16:45:18
125
原创 Netty 进阶系列之Netty入门案例学习(三)
1、Echo服务端代码1.1 EchoServerHandler 处理器import io.netty.buffer.ByteBuf;import io.netty.channel.ChannelHandler;import io.netty.channel.ChannelHandlerContext;import io.netty.channel.ChannelInboundHand...
2019-06-05 22:02:08
247
原创 明明白白学 同步、异步、阻塞与非阻塞
1、同步与异步概率理解同步与异步主要是从消息通知机制角度来说的同步就是一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列。异步是不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作,依赖的任务也立即执行,只要自己完成了整个任务就算完成了。至于被依赖的任务最终是否真正完成,依赖它的任务无法确定,所以它是不可靠的任务序列。...
2019-05-25 11:37:51
139
原创 《大话设计模式》读书笔记 - 适配器模式
1 、适配器模式定义意图: 将一个类的接口转换为另一个类的接口,让原本不兼容的类兼容何时使用适配器模式:系统需要使用现有的类,而此类的接口不符合系统的需要。想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有一致的接口。通过接口转换,将一个类插入另一个类系中。2、适配器模式模型图3、适配器模式思想...
2019-05-11 19:06:05
129
原创 《大话设计模式》读书笔记 - 命令模式
1、定义 将一个请求封装为一个对象,从而可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作2、模型图在该类图中,我们看到四个角色:Command:需要执行的所有命令都在这里声明,可以是接口或者抽象类ConcreteCommand:将一个接收者对象绑定于一个动作,调用接收者相应的操作,以实现ExecuteReceiver接受者角色:该角色就是干活的角色...
2019-04-27 21:17:49
138
转载 Shell学习笔记 awk命令
1、awk的简介其实一门编程语言,支持条件判断,数组,循环等功能,与grep,sed被称为linux三剑客之所以AWK是因为取其三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Family Name的首字符2、awk的应用场景通常对数据进行列的提取3、语法awk '条件 {执行动作}'文件名awk '条件1 {执行动作} 条...
2019-04-20 14:52:43
168
原创 SpringBoot 拦截器Interceptor实战
SpringBoot2.0后拦截器实现方式第一步:创建一个类MyInterceptor实现HandlerInterceptor接口,并重写方法public class MyInterceptor implements HandlerInterceptor { /** * 调用Controller某个方法之前 * @param request * @par...
2019-04-13 13:45:25
1029
原创 SpringBoot 监听器Listener实战
监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,监听器也会执行相应的动作。1、SpringBoot 中 Listener 实现方式第一步:启动类中添加注解 @ServletComponentScan@SpringBootApplication//使用注解方式实现监听器@ServletComponentScanpublic c...
2019-04-13 12:46:17
1016
原创 SpringBoot 过滤器filter实现
1、SpringBoot启动默认加载的FiltercharacterEncodingFilterhiddenHttpMethodFilterhttpPutFormContentFilterrequestContextFilter2、Filter执行顺序Ordered.HIGHEST_PRECEDENCEOrdered.LOWEST_PRECEDENCE低位值意味着更高的优先级...
2019-04-13 10:45:36
520
原创 《大话设计模式》读书笔记 - 观察者模式
设计模式不是一种规范或者说是设计规则而是广大设计人员经验的总结,是一种思考方式观察者设计模式是什么,用于解决什么问题?
2019-04-06 17:47:25
153
原创 SpringBoot 整合定时任务
SpringBoot 的几种定时任务Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。ScheduledExecutorService:也jdk自带的一个类;是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行...
2019-04-03 00:08:02
1077
原创 SpringBoot 整合日志
SpringBoot日志使用非常简单,所以小白也可以放心的看下去,加油!官网的学习地址:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-logging-format默认日志LogBackSpringBoot默认使用LogBack作为日志,并且在 spring-boot-st...
2019-04-02 00:31:44
167
原创 Lombok使用
lombok是以注解的形式,大大减少在创建对象过程中的get,set,toString, 空参构造,有参构造等这些动作,简化代码开发减少工作量如何使用lombok第一步:在IDEA编辑器中引入lombok插件打开IDEA的Setting –> 选择Plugins选项 –> 选择Browse repositories –> 搜索lombok –> 点击安装 –> ...
2019-03-17 20:16:34
145
原创 SpringCloud微服务架构学习(七)Ribbon、Feign、Hystrix 配置详解
Ribbon# 设置连接超时时间ribbon.ConnectTimeout=600# 设置读取超时时间ribbon.ReadTimeout=6000# 对所有操作请求都进行重试ribbon.OkToRetryOnAllOperations=true# 切换实例的重试次数ribbon.MaxAutoRetriesNextServer=2# 对当前实例的重试次数ribbon.Ma...
2019-03-01 22:12:01
490
2
原创 SpringCloud微服务架构学习(六)熔断器Hystrix
Hystrix流程图说白了你想对一个请求进行熔断,必然不能让客户直接去调用那个请求,你必然要要对别人的请求进行包装一层和拦截,才能做点手脚,比如进行熔断,所以说要在Ribbon上动手脚。因为它是请求发起的地方。...
2019-02-27 23:03:30
201
原创 SpringCloud微服务架构学习(四)Ribbon
Ribbon是什么?Ribbon是Netflix公司开源的一个负载均衡的项目,它属于上述的第二种,是一个客户端负载均衡器,运行在客户端上。它是一个经过了云端测试的IPC库,可以很好地控制HTTP和TCP客户端的一些行为。 Feign已经默认使用了Ribbon。负载均衡容错多协议(HTTP,TCP,UDP)支持异步和反应模型缓存和批处理如何在项目中快速使用Ribbon第一步:创建服...
2019-02-24 20:29:11
154
转载 爬虫小偏方系列:robots.txt 快速抓取网站的小窍门
文章转载自公众号:猿人学Python支持原创!!!!在我抓取网站遇到瓶颈,想剑走偏锋去解决时,常常会先去看下该网站的 robots.txt 文件,有时会给你打开另一扇抓取之门。写爬虫有很多苦恼的事情,比如:访问频次太高被限制;如何大量发现该网站的 URL;如何抓取一个网站新产生的 URL,等等;这些问题都困扰着爬虫选手,如果有大量离散IP和账号,这些都不是问题,但是绝大部分公司都...
2019-01-21 21:54:43
398
原创 实战踩坑记-SpringBoot中使用jsp
今天这个坑踩我的很难受,为什么呢?项目中需要用到jsp页面,但是SpringBoot之后的框架对jsp支持不是很好,认为jsp已经过时了!纳尼,好吧但是我还是要用,百度一番,写个小demo1.先看一下最终项目的目录结构src/mian下主要用三个文件夹java 存放java代码resources 存放项目资源文件夹webapp 在当前项目中用于存放jsp页面SpringBoot...
2018-12-17 23:26:45
780
原创 SpringCloud微服务架构学习(三)史上最舒服姿势学 Eureka注册中心
1.什么是微服务的注册中心理解注册中心:服务管理,核心是有个服务注册表,心跳机制动态维护服务提供者provider: 启动的时候向注册中心上报自己的网络信息 服务消费者consumer: 启动的时候向注册中心上报自己的网络信息,拉取provider的相关网络信息为什么要用注册中心:微服务应用和机器越来越多,调用方需要知道接口的网络地址,如果靠配置文件的方式去控制网络地址,对于动态新增机...
2018-12-16 14:26:00
207
原创 SpringCloud微服务架构学习(二)常见的微服务架构
1.Dubbo 阿里开源微服务框架官网地址:http://dubbo.apache.org/en-us/简介:Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心部分包...
2018-12-15 23:31:12
467
原创 SpringCloud微服务架构学习(一) 基础知识
1 .从传统架构到分布式架构演变单体应用单体的应用从用户到数据库是一条直线,如果其中有一个环节出现问题,整个系统就会崩溃,而且一旦性能达到瓶颈无法扩展分布式架构分布式的架构有了负载均衡器,并且不是多台电商系统,可拓展,并且数据库也有了主从备份,提高了容灾性能,可扩展性微服务架构微服务架构将电商系统的每个模块拆分开,单独搭建服务集群,每个服务集群都有对应的数据库,当用户访问时首先经...
2018-12-15 23:30:47
214
原创 python面向对象编程思想一
面向对象与面向过程在编程语言的大家族中,从C语言的思想是面向过程,随着软件业务越来越复制,功能越来越强大,之后主流的编程语言几乎都是面向对象的设计思想,这样做的好处就是提高了代码的复用性举一个简单的栗子:比如我们去饭店吃饭,我们直接点完菜等待菜上桌就行了,还需要关注后厨是怎么做这道菜的吗?不可能吧,是不是类和对象1.类类是抽象的,在使用的时候通常会找到这个类的一个具体的存在,使用这...
2018-12-09 15:40:41
323
原创 使用python进行文件操作
文件的打开与关闭1. 打开文件在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件open(文件名,访问模式)示例如下: f = open('test.txt', 'w')常见的访问模式有以下几个:访问模式说明r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。w打开一个文件只用于写入。如果该文件已存在则将其覆...
2018-12-08 15:56:54
218
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人