摘要:
前段时间,看了菜鸟入门,较浅的认识一下golang的语法习惯和规则,然后跟别人做了个爬虫项目,但是对于golang语言的语法结构还不是很懂。又看了遍《go实战》第二章。 构建程序在构建可执行文件时,需要找到这个已经声明的main函数,把它作为程序的入口。 关键字import就是导入一段代码,让用户可 阅读全文
摘要:
在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这 阅读全文
摘要:
"上一篇文章" ,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务。 Feign简介 Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Fei 阅读全文
摘要:
一、go语言爬取豆瓣电影top250 go package main import ( "net/http" "io/ioutil" "os" "fmt" "strconv" "regexp" "time" ) //定义新的数据类型 type Spider struct { url string h 阅读全文
摘要:
在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。 ribbon简介 Ribbon is a client side load balance 阅读全文
摘要:
创建服务注册中心 在这里,我还是采用Eureka作为服务注册与发现的组件。 首先创建一个空项目 首先创建一个空项目,再创建一个maven项目,首先创建一个主Maven工程,在其pom文件引入依赖,spring Boot版本为2.0.3.RELEASE,Spring Cloud版本为Finchley. 阅读全文
摘要:
概述 我们要实现一个线程安全的队列有两种实现方法一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,我们就来研究下ConcurrentLinkedQueue 阅读全文
摘要:
概述 CopyOnWriteArrayList是一个线程安全集合,原理简单说就是:在保证线程安全的前提下,牺牲掉写操作的效率来保证读操作的高效。所谓CopyOnWrite就是通过复制的方式来完成对数据的修改,在进行修改的时候,复制一个新数组,在新数组上面进行修改操作,这样就保证了不改变老数组,也就没 阅读全文
摘要:
概述 是一个关联数组、哈希表,它是 线程不安全 的,允许 key为null,value为null 。他继承自 ,实现了 接口。其内部还维护了一个 双向链表 ,在每次 插入数据,或者访问、修改数据 时, 会增加节点、或调整链表的节点顺序 。以决定迭代时输出的顺序。 默认情况,遍历时的顺序是按照插入节点 阅读全文
摘要:
简介 与`StringBuilder StringBuilder StringBuffer`是线程安全的。前者是JDK1.5加入的,后者在JDK1.0就有了。 继承关系 可以看到,两个类的继承关系是一模一样的。 是可以序列化的标志。 接口包含了 、`length() subSequence() to 阅读全文
摘要:
访问权限 Java中有三个访问权限修饰符:private、protected以及public,如果不加访问修饰符,表示包级可见。 可以对类或类中的成员(字段以及方法)加上访问修饰符。 类可见表示其他类可以用这个类创建实例对象。 成员可见表示其他类可以用这个类的实例对象访问到该对象; protecte 阅读全文
摘要:
概览 String被声明为final,因此它不可被继承。 内部使用char数组存储数据,该数组被声明为final,这意味着value数组初始化之后就不能再引用其他数组。并且String内部没有改变value数组的方法,因此可以保证String不可变。 不可变的好处 1. 可以缓存hash值 2. S 阅读全文
摘要:
String String表示字符串,Java中所有字符串的字面值都是String类的实例,例如"ABC"。字符串是常量,在定义后不能被改变,字符串缓冲区支持可变的字符串。因为String对象是不可变的,所以可以共享他们。例如: String str = "abc"; 相当于 char data[] 阅读全文
摘要:
注解 概念及作用 1. 概念 注解即元数据,就是源代码的元数据 注解在代码中添加信息提供了一种形式化的方法,可以在后续中更方便的 使用这些数据 Annotation是一种应用于类、方法、参数、变量、构造器及包声明中的特殊修饰符。它是一种由JSR 175标准选择用来描述元数据的一种工具。 2. 作用 阅读全文
摘要:
包装类型 八个基本类型: Boolean/boolean/1 Byte/byte/8 Character/char/16 Short/short/16 Integer/int/32 Float/float/32 Long/long/64 Double/double/64 基本类型都有对应的包装类型, 阅读全文
摘要:
反射是什么 反射的作用用一句简单的话来讲就是可以对代码进行操作的代码,这个特性经常在被用于创建JavaBean中,通常造轮子的人会用到这个特性,而应用程序员用到这个特性的场景则较少。 能够分析类能力的程序就叫做反射,简单来说就是可以对代码进行操作的代码。反射机制的功能极为强大,可以用来: 在运行时分 阅读全文
摘要:
前驱知识 WebSocket 维基百科: WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。 WebSocket使得客户端和服务器之间的数 阅读全文
摘要:
相信使用过Spring的众多开发者都知道Spring提供了非常好用的JavaMailSender接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。下面通过实例看看如何在Spring Boot中使用JavaMailSender发送邮件。 快速入门 在Spring 阅读全文
摘要:
技术栈: 后端 Springboot druid Spring security 数据库 MySQL 前端 vue elementUI 项目演示: GitHub地址: 后端:https://github.com/TUGOhost/My Blog 前端:https://github.com/TUGOh 阅读全文
摘要:
Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。 在Redis里面,C字符串只会作为字符串字面量(string l 阅读全文