JDK14初体验

JDK14也发布挺长时间了,从使用JDK8来,一直就没有动过升级JDK的想法,想想这种也不符合自己的风格,所以这次正好拿自己平时弄的一个项目试试手。 Test blocks 其实就是文本块,在之前用Golang、python的时候都使用过,这次总算可以在Java中也同样的使用了。 image.png 相对之前需要使用+拼接确实能省去一些输入量。 Pattern Matching for the instanceof Operator image.png 使用instanceof做match操作时...阅读全文

简书 2020-06-02 19:32:45 潭州三哥

go语言基础之append函数的使用

向切片追加元素 为切片追加新的元素是种常用的操作,为此 Go 提供了内建的append函数。内建函数的文档对此函数有详细的介绍。 func append(s []T, vs ...T) []T append的第一个参数s是一个元素类型为T的切片,其余类型为T的值将会追加到该切片的末尾。 append的结果是一个包含原切片所有元素加上新添加元素的切片。 当s的底层数组太小,不足以容纳所有给定的值时,它就会分配一个更大的数组。返回的切片会指向这个新分配的数组。 package main import...阅读全文

Segmentfault 2020-06-03 14:32:42 小兵

golang标准库之flag

flag包实现了简单的命令行参数解析,支持bool、int、int64、uint、uint64、float64、string和time.Duration八种类型的命令行解析。 使用方法 注册flag流程如下: import "flag" var ip = flag.Int("flagname", 1234, "help message for flagname") // 返回指针类型,访问时需要加* fmt.Println("ip has value ", *ip) var flagvar in...阅读全文

简书 2020-06-02 17:32:53 风铃草613

golang日志log

1、log简介 golang内置了log包,实现简单的日志服务。通过调用log包的函数,可以实现简单的日志打印功能。 2、log使用 log包中有3个系列的日志打印函数,分别print系列、panic系列、fatal系列。 函数系列 作用 print 单纯打印日志 panic 打印日志,抛出panic异常 fatal 打印日志,强制结束程序(os.Exit(1)),defer函数不会执行 2.1 简单示例 func main() { defer fmt.Println("panic退出前处理")...阅读全文

简书 2020-06-02 17:32:52 一如既往wfqwfq

learn go with tests 学习笔记(三) 指针和错误

知识点 接收者 type Circle struct { Radius float64 } func (c Circle) Area() float64 { return 0 } 声明方法的语法跟函数差不多,因为他们本身就很相似。唯一的不同是方法接收者的语法 func(receiverName ReceiverType) MethodName(args) 当方法被这种类型的变量调用时,数据的引用通过变量 receiverName 获得。在其他许多编程语言中这些被隐藏起来并且通过 this 来获得...阅读全文

简书 2020-06-02 17:32:51 硌手小石头

etcd+jwt实现鉴权

本文基于搭建好etcd集群,若为搭建请移步:https://www.jianshu.com/p/ec0e4911236d etcd我们使用其存储key/value的功能,存储jwt的私有key,也可以通过etcd来更新key。 设计思路: 内部服务通过go-micro api相互访问时,为了保证访问的安全,防止来自外部的攻击,我们在服务间通过token来识别。 各服务在请求对方是在header中加入token,token使用jwt生成,jwt 的私有key来自etcd。 为什么这么做 我们使用g...阅读全文

简书 2020-06-02 17:32:50 技术修仙

面试必备!就凭借着这份Java 高频面试题,我拿下了阿里,字节的offer!

List 1. 为什么 arraylist 不安全? 我们查看源码发现 arraylist 的 CRUD 操作,并没有涉及到锁之类的东西。底层是数组,初始大小为 10。插入时会判断数组容量是否足够,不够的话会进行扩容。所谓扩容就是新建一个新的数组,然后将老的数据里面的元素复制到新的数组里面(所以增加较慢)。 2. CopyOnWriteArrayList 有什么特点? 它是 List 接口的一个实现类,在 java.util.concurrent(简称 JUC,后面我全部改成 juc,大家注意下...阅读全文

简书 2020-06-02 17:32:50 前程有光

go mod使用

1、为什么要使用go mod 目前,golang的包管理工具有很多,用的比较多的包括:govendor、godep、glide等等。但是,一直以来,golang官方都没有提供一个标准的包管理工具,知道go1.11发布后,出现了一个实验中的go module。 2、启用 go mod a、全局启用 go env -w GO111MODULE=on //打开 Go modules 开关(目前在 Go1.13 中默认值为 auto) go env -w GOPROXY=https://goproxy....阅读全文

简书 2020-06-02 17:32:49 yongfutian

Golang MySQL

2839526_203626093214_2.jpg 库: database/sql : database/sql 是 golang 的标准库之一,它提供了一系列接口方法,用于访问关系数据库。它并不会提供数据库特有的方法,那些特有的方法交给数据库驱动去实现。 database/sql库提供了一些 type。这些类型对掌握它的用法非常重要。 DB : 数据库对象。 sql.DB 类型代表了数据库。和其他语言不一样,它并是数据库连接。golang 中的连接来自内部实现的连接池,连接的建立是惰性的,当...阅读全文

简书 2020-06-02 17:32:49 chengchaos

Go语言HTTP请求流式写入body

背景 最近在开发一个功能时,需要通过 http 协议上报大量的日志内容,但是在 Go 标准库里的 http client 的 API 是这样的: http.NewRequest(method, url string, body io.Reader) body 是通过io.Reader接口来传递,并没有暴露一个io.Writer接口来提供写入的办法,先来看看正常情况下怎么写入一个body,示例: buf := bytes.NewBuffer([]byte("hello")) http.Post("...阅读全文

Segmentfault 2020-06-03 14:32:41 mokeyWie

状态变换 | 我的代码没有else

嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。 本系列文章主要采用如下结构: 什么是「XX设计模式」? 什么真实业务场景可以使用「XX设计模式」? 怎么用「XX设计模式」? 本文主要介绍「状态模式」如何在真实业务场景中使用。 「状态模式」比较简单,就是算法的选取取决于于自己的内部状态。相较于「策略模式」算法的选取由用户决策变成内部状态决策,「策略模式」是用户(客户端)选择具体的算法,「状态模式」只是通过内...阅读全文

客户决策 | Go语言设计模式实战

嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。 本系列文章主要采用如下结构: 什么是「XX设计模式」? 什么真实业务场景可以使用「XX设计模式」? 怎么用「XX设计模式」? 本文主要介绍「策略模式」如何在真实业务场景中使用。 什么是「策略模式」? 「策略模式」比较简单,大家平常工作中应该经常使用到,所以本文作为复习,帮助大家温故知新。我们先来看下定义: 不同的算法按照统一的标准封装,客户端根据不同的场景,...阅读全文

Segmentfault 2020-06-03 14:32:37 TIGERB

状态变换 | Go语言设计模式实战

嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。 本系列文章主要采用如下结构: 什么是「XX设计模式」? 什么真实业务场景可以使用「XX设计模式」? 怎么用「XX设计模式」? 本文主要介绍「状态模式」如何在真实业务场景中使用。 「状态模式」比较简单,就是算法的选取取决于于自己的内部状态。相较于「策略模式」算法的选取由用户决策变成内部状态决策,「策略模式」是用户(客户端)选择具体的算法,「状态模式」只是通过内...阅读全文

Segmentfault 2020-06-03 14:32:36 TIGERB

[上海]IPO之前阶段互联网公司招聘Golang开发、爬虫职位

**公司介绍:** IPO 之前互联网公司,主要业务为互联网文娱方向,公司规模超过一千人,在北美地区、北京、上海等城市均设有办公室,招聘职位会放在商业化团队内部。(职位为猎头招聘,所以不方便透露详细公司情况在招聘信息内,希望谅解) ***资深后端开发工程师 /lead (上海) * ** 工作职责: 1 、负责后端技术的探索和技术优化及公共组件的开发; 2 、负责系统的架构设计,编码实现、重构和优化; 3 、学习和研究新技术以满足产品需求。 工作...阅读全文

Go语言中文网 2020-06-02 11:38:41 ShirleyFU

25. 学习 Go 协程:详解信道/通道

Hi,大家好,我是明哥。 在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。 我的在线博客:golang.iswbm.com 我的 Github:github.com/iswbm/GolangCodingTime Go 语言之所以开始流行起来,很大一部分原因是因为它自带的并发机制。 如果说 goroutin...阅读全文

掘金 2020年06月02日 王一白

Golang基础教程——map使用篇

本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是golang专题的第7篇文章,我们来聊聊golang当中map的用法。 map这个数据结构我们经常使用,存储的是key-value的键值对。在C++/java当中叫做map,在Python中叫做dict。这些数据结构的名称虽然不经相同,背后的技术支撑也不一定一样,比如说C++的map是红黑树实现的,Java中的hashmap则是通过hash表。但是使用起来的方法都差不多,除了Java是通过get方法获取键值之外,C++、Pytho...阅读全文

掘金 2020年06月02日 承志