自动化代码
0f6532ac58bb070d8e2353cf86d7d6279710a46927a1658166acdcca7fcd4c30d4af1f6f539b78474e38245ed089af0c6eb6eaa97143913b59a0550b5ac9abc5af8841aac4964526354a32899101cd843bb31e53576c2daa93ebd198f9d2884e336031e25d508301799083e33878aa9169b3802720a60c25df77a42074105f32da162fe9c3161c2efaff61425ae79a8163190cf1dba06c061b6b372cb9449fc7144542e564cddc77cd11d0ae856a5a47ca0c8036b89ed715564d7fef608b625fa6d45b38a044fa1f59cfbbae2fe3ea2dd05ce6bc4a97179377e811945e75843bde9af11c5c6c743bff6d0859116774b926a81e37b1ec5c70d ...
作业答案
0f6532ac58bb070d8e2353cf86d7d6279710a46927a1658166acdcca7fcd4c30d4af1f6f539b78474e38245ed089af0c6eb6eaa97143913b59a0550b5ac9abc5af8841aac4964526354a32899101cd843bb31e53576c2daa93ebd198f9d2884e336031e25d508301799083e33878aa9169b3802720a60c25df77a42074105f32da162fe9c3161c2efaff61425ae79a8163190cf1dba06c061b6b372cb9449fc7144542e564cddc77cd11d0ae856a5a47ca0c8036b89ed715564d7fef608b625fa6d45b38a044fa1f59cfbbae2fe3ea2dd05ce6bc4a97179377e811945e75843bde9af11c5c6c743bff6d0859116774b926a81e37b1ec5c70d ...
Java测试
1. Java 语言有哪些特点?(至少列出5条) 6分2. 为什么说 Java 语言“编译与解释并存”? 6分3. Java 和 C++ 的区别? 6分4 .注释有哪几种形式?(3种) 6分5.标识符和关键字的区别是什么? 4分6 .continue、break 和 return 的区别是什么? 6分7. Java 中的几种基本数据类型了解么?(8个) 6分8 .基本类型和包装类型的区别 ? 6分9 . 什么是自动拆装箱? 6分 (不会描述,可以代码写代码演示)10.为什么浮点数运算的时候会有精度丢失的风险? 6分11.如何解决浮点数运算的精度丢失问题? 6分1 2.静态变量有什么作用? 6分13.字符型常量和字符串常量的区别? 6分14 . 面向对象当中的三大特征? 6分15 . 里面的封装是什么意思? 有什么作用? 6分16.面向对象和面向过程的区别? 6分17.创建一个对象用什么运算符?对象实体与对象引用有何不同? 6分
java练习答案
1. Java 语言有哪些特点?123456789简单易学;面向对象:(封装,继承,多态);平台无关性( Java 虚拟机实现平台无关性);支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持);可靠性(具备异常处理和自动内存管理机制);安全性(Java 语言本身的设计就提供了多重安全防护机制如访问权限修饰符、限制程序直接访问操作系统资源);高效性(通过 Just In Time 编译器等技术的优化,Java 语言的运行效率还是非常不错的);支持网络编程并且很方便;编译与解释并存;
2. 为什么说 Java 语言“编译与解释并存”?1这是因为 Java 语言既具有编译型语言的特征,也具有解释型语言的特征。因为 Java 程序要经过先编译,后解释两个步骤,由 Java 编写的程序需要先经过编译步骤,生成字节码(.class 文件),这种字节码必须由 Java 解释器来解释执行。
3. Java 和 C++ 的区别?12345678我知道很多人没学过 C++,但是面试官就是没事喜欢拿咱们 Ja ...
Go Gin安装解决国内go get 方式安装超时问题
Go Gin安装解决国内go get 方式安装超时问题在国内直接用官网推荐的下面这个命令大概率是安装不成功的。
1go get -u github.com/gin-gonic/gin
这时可以在你的项目目录下执行下面几个命令:
1234go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,directgo mod init YourProjectNamego get -u github.com/gin-gonic/gin
这样就能将 gin以module的方式安装到你的项目的Lib里面了。
如果执行完上面的命令没报错,但在goland里 import gin时,像下面一样飘红:
需要把下面这个Enable Go Modules integration给勾选上:
再运行就可以正常起来了:
00-golang介绍
第 1 章 开篇综述1.1 语言介绍
Go 语言由谷歌(Google)公司于 2009 年正式对外发布,设计 Go 语言的初衷都是为了满足 Google 公司的需求。主要目标是“兼具 Python 等动态语言的开发速度和 C/C++等编译型语言的性能与安全性”,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、执行性能好”等优势。最主要还是为了并发而生,并发是基于goroutine的,goroutine类似于线程,但并非线程,可以将goroutine理解为一种轻量级线程。Go 语言运行时会参与调度goroutine,并将goroutine合理地分配到每个 CPU 中,最大限度地使用 CPU 性能。
1.2 作者介绍
从左到右分别是 :
罗伯特·格瑞史莫(Robert Griesemer): 曾为谷歌的 V8 JavaScript 引擎和 Chubby 开发代码
罗勃·派克(Rob Pike): 罗布·派克是 Unix 的先驱,是贝尔实验室最早和 Ken Thompson 以及 Dennis M. Ritche 开发 Unix 的猛人,UTF-8 的 ...
3. golang数组
1.1概述数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成,一旦声明了,数组的长度就固定了,不能动态变化。
len() 和 cap() 返回结果始终一样。
1.2声明数组123456789101112131415161718192021222324252627282930313233package mainimport ( "fmt")func main() { //一维数组 var arr_1 [5] int fmt.Println(arr_1) var arr_2 = [5] int {1, 2, 3, 4, 5} fmt.Println(arr_2) arr_3 := [5] int {1, 2, 3, 4, 5} fmt.Println(arr_3) arr_4 := [...] int {1, 2, 3, 4, 5, 6} fmt.Println(arr_4) arr_5 := [5] int {0:3, 1:5, 4:6} fmt. ...
2.变量
1.概述在声明变量之前,咱们先了解下变量的数据类型,这篇文章主要涉及 字符串、布尔、数字,其他类型后面开篇再说。
1.1数据类型字符串123456789101112131415161718192021222324252627string`只能用一对双引号("")或反引号(``)括起来定义,不能用单引号('')定义!#### 布尔`bool`只有 true 和 false,默认为 false。#### 数字**整型**`int8` `uint8` `int16` `uint16``int32` `uint32``int64` `uint64``int` `uint`,具体长度取决于 CPU 位数。**浮点型**`float32` `float64
1.2常量声明常量,在程序编译阶段就确定下来的值,而程序在运行时无法改变该值。
单个常量声明
第一种:const 变量名称 数据类型 = 变量值
如果不赋值,使用的是该数据类型的默认值。
第二种:const 变量名称 = 变量值
根据变量值,自行判断数据类型。
多个常 ...
1.golang环境安装
1.你好,Go语言
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
因工作需要,准备入坑,先从环境安装开始,输出一个 Hello World。
1.2环境安装目标
安装完成并运行 Hello World 成功!
本机系统:macOS High Sierra 10.13.4
Go 版本:1.12
方式一:
通过 brew 安装
1brew install go
根据提示进行安装吧,我使用的 方式二 进行安装的。
方式二:
通过安装包安装
地址:https://dl.google.com/go/go1.12.darwin-amd64.pkg
下载之后直接点击安装,一步步继续即可。
配置环境变量
123456vi ~/.bashrc//新增export GOROOT=/usr/local/goexport GOPATH=/Users/username/go/code //代码目录,自定义即可export PATH=$PATH:$GOPATH/bin
及时生效,请执行命令:source ~/.bashrc
如果命令行使用的是zsh,请修改 .zshrc ...
10. defer函数
1.1概述defer 函数大家肯定都用过,它在声明时不会立刻去执行,而是在函数 return 后去执行的。
它的主要应用场景有异常处理、记录日志、清理数据、释放资源 等等。
这篇文章不是分享 defer 的应用场景,而是分享使用 defer 需要注意的点。
咱们先从一道题开始,一起来感受下 …
1234567891011121314func calc(index string, a, b int) int { ret := a + b fmt.Println(index, a, b, ret) return ret}func main() { x := 1 y := 2 defer calc("A", x, calc("B", x, y)) x = 3 defer calc("C", x, calc("D", x, y)) y = 4}
输出什么?
…
接下来,先容我分享几个小例子,再进行作答。
执行顺序12345678func main() { def ...
9. chan通道
1.1 概述原来分享基础语法的时候,还未分享过 chan 通道,这次把它补上。
chan 可以理解为队列,遵循先进先出的规则。
在说 chan 之前,咱们先说一下 go 关键字。
在 go 关键字后面加一个函数,就可以创建一个线程,函数可以为已经写好的函数,也可以是匿名函数。
举个例子:
123456789func main() { fmt.Println("main start") go func() { fmt.Println("goroutine") }() fmt.Println("main end")}
输出:
12main startmain end
为什么没有输出 goroutine ?
首先,我们清楚 Go 语言的线程是并发机制,不是并行机制。
那么,什么是并发,什么是并行?
并发是不同的代码块交替执行,也就是交替可以做不同的事情。
并行是不同的代码块同时执行,也就是同时可以做不同的事情。
举个生活化场景的例子:
你正在家看书,忽然电话来了,然后你接电话,通话完成后 ...
8. 函数
1.1 概述学习了一些基础语法,开始学习写函数了,分享几个自己写的函数。
MD5
获取当前时间戳
获取当前时间字符串
生成签名
1.2 函数定义12345func function_name(input1 type1, input2 type2) (type1, type2) { // 函数体 // 返回多个值 return value1, value2}
函数用 func 声明。
函数可以有一个或多个参数,需要有参数类型,用 , 分割。
函数可以有一个或多个返回值,需要有返回值类型,用 , 分割。
函数的参数是可选的,返回值也是可选的。
1.3 值传递传递参数时,将参数复制一份传递到函数中,对参数进行调整后,不影响参数值。
Go 语言默认是值传递。
1.4 引用传递传递参数时,将参数的地址传递到函数中,对参数进行调整后,影响参数值。
这个是 [Go - Struct 结构体]的例子:
1234567891011121314151617181920212223242526272829303132333435//demo_13.gopackage ...
7. 循环
1.1 概述前几篇文章分享了 array 数组、slice 切片、map 集合,这篇文章分享如何循环获取里面的元素,同时也是对前几篇文章的复习。
本篇文章会用到的关键字 for、range、break、continue、goto、switch。
1.2 循环 array12345678910111213141516171819202122232425262728293031323334353637//demo_18.gopackage mainimport ( "fmt")func main() { person := [3] string {"Tom", "Aaron", "John"} fmt.Printf("len=%d cap=%d array=%v\n", len(person), cap(person), person) fmt.Println("") //循环 for k, v := range person { ...
6. map集合
1.2 概述Map 集合是无序的 key-value 数据结构。
Map 集合中的 key / value 可以是任意类型,但所有的 key 必须属于同一数据类型,所有的 value 必须属于同一数据类型,key 和 value 的数据类型可以不相同。
1.2 声明 Map12345678910111213141516171819202122232425262728293031323334//demo_14.gopackage mainimport ( "fmt")func main() { var p1 map[int]string p1 = make(map[int]string) p1[1] = "Tom" fmt.Println("p1 :", p1) var p2 map[int]string = map[int]string{} p2[1] = "Tom" fmt.Println("p2 :", p2) var p3 map[int]s ...
5. 结构体
1.1概述结构体是将零个或多个任意类型的变量,组合在一起的聚合数据类型,也可以看做是数据的集合。
1.2声明结构体12345678910111213141516171819202122232425262728293031//demo_11.gopackage mainimport ( "fmt")type Person struct { Name string Age int}func main() { var p1 Person p1.Name = "Tom" p1.Age = 30 fmt.Println("p1 =", p1) var p2 = Person{Name:"Burke", Age:31} fmt.Println("p2 =", p2) p3 := Person{Name:"Aaron", Age:32} fmt.Println("p2 =", p3) // ...
4. slice切片
1.1概述切片是一种动态数组,比数组操作灵活,长度不是固定的,可以进行追加和删除。
len() 和 cap() 返回结果可相同和不同。
1.2声明切片1234567891011121314151617181920212223242526//demo_7.gopackage mainimport ( "fmt")func main() { var sli_1 [] int //nil 切片 fmt.Printf("len=%d cap=%d slice=%v\n",len(sli_1),cap(sli_1),sli_1) var sli_2 = [] int {} //空切片 fmt.Printf("len=%d cap=%d slice=%v\n",len(sli_1),cap(sli_2),sli_2) var sli_3 = [] int {1, 2, 3, 4, 5} fmt.Printf("len=%d cap=%d slice=%v\n" ...
9.随机请求头
123456789101112131415from fake_useragent import UserAgent # 下载:pip install fake-useragentimport requestsua = UserAgent() # 实例化,需要联网但是网站不太稳定-可能耗时会长一些print(ua.random) # 随机产生headers = { 'User-Agent': ua.random # 伪装 }print(headers)# 请求if __name__ == '__main__': url = 'https://www.baidu.com/' response = requests.get(url, headers=headers ,proxies={"http":"117.136.27.43"}) print(response.status_code)
1234 ...