对比JAVA学习GO:JAVA程序员的GO语言速成指南
- ISBN:9787111740797
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:376
- 出版时间:2024-01-01
- 条形码:9787111740797 ; 978-7-111-74079-7
本书特色
本书清晰地描述了Go功能,并将其与类似的Java功能进行对比,以及通过大量的代码示例来教授Go。阅读本书后,你将对Go及其库有足够的了解,从而开始使用Go语言进行有效的编程。本书主要面向专业Java程序员或对Java有一定了解的读者,在结构上更像是一个教程,而不是参考文档。内容涵盖了Go的关键功能,但并没有详细讨论每一个细节。本书的目标是让读者完全掌握Go及其运行时,从而可以有效地编写Go程序。
内容简介
本书通过提供大量的代码示例,对Go特性进行了清晰的描述,并将它们与类似的Java特性进行了对比。读完这本书,你将对Go及其库有足够的了解,从而开始使用Go语言进行编程。
目录
前言
致谢
作者简介
**部分 初步了解Go
第1章 Go简介 4
1.1 Go与Java的初步比较 4
1.1.1 Go是编译型语言(Java
是解释型语言) 5
1.1.2 Go与Java的程序结构类似 5
1.1.3 Go与Java有影响代码结构
的代码风格差异 5
1.1.4 Go和Java都是过程语言 6
1.1.5 Java是一门面向对象的语言,
但Go不是完全面向对象的 6
1.1.6 Java是一门高度函数式语言,
Go不是 6
1.1.7 Java是一门高度声明性语言,
Go不是 7
1.1.8 很多Java特性是注解驱动的 7
1.1.9 Java和Go都使用内存管理
(垃圾收集器) 7
1.1.10 Go和Java都支持并发,
但方式不同 8
1.1.11 Go的运行时比JRE简单 8
1.1.12 Go程序构建过程是不同的 8
1.1.13 Go与Java有相似的发布
周期 9
1.2 Java有而Go没有的特性 9
1.2.1 多重赋值 10
1.2.2 语句和操作符 10
1.2.3 assert语句 10
1.2.4 while与do语句 10
1.2.5 throw语句/throws子句 11
1.2.6 strictfp、transient、volatile、synchronized、abstract、
static 11
1.2.7 对象、类、内部类、Lambda、this、super、显式构造
函数 11
1.2.8 泛型和方法 12
1.2.9 广泛的函数式编程能力 13
1.2.10 原始值的装箱 13
1.2.11 源码注解 13
1.2.12 多种可见性 13
1.2.13 重载/覆盖函数 14
1.2.14 正式的枚举 14
1.2.15 内置二进制数据自
序列化 14
1.2.16 并发集合 14
1.3 Go与Java的深度比较 15
第二部分 Go语言
第2章 Go的基础特性 21
2.1 语言关键字 21
2.2 操作符和标点符号 23
2.3 Go操作符优先级 26
2.4 Go内置函数 27
第3章 Go的关键特性 28
3.1 简单的Go程序示例 30
3.2 Go包 34
3.3 Go注释 35
3.4 Go构建/运行过程 36
3.4.1 Go集成开发环境 37
3.4.2 构建Go程序 40
3.4.3 运行Go程序 41
3.4.4 字节码与实码 42
3.5 Go命令行工具 43
3.5.1 捆绑在Go命令中的工具 44
3.5.2 其他工具 45
3.6 Go运行程序而非类 45
3.7 Go内存管理 46
3.8 Go标识符 50
3.9 Go作用域 50
Go作用域与Go源文件 52
3.10 初始化Go变量 54
3.11 Go标识符的生命期 56
3.12 Go模块摘要 56
3.13 Go赋值和表达式 60
3.14 Go中的文本格式设置 61
3.15 Go协程(并发执行单元) 65
3.15.1 并发问题 65
3.15.2 Go并发 66
3.15.3 Go协程示例 69
第4章 Go类型 76
4.1 基本/内置类型 76
4.1.1 数值 76
4.1.2 字符和字符串 77
4.1.3 引用与指针类型 78
4.1.4 深入基本数据类型 80
4.1.5 方法作为函数 95
4.1.6 任何被声明的类型都可以
有自定义函数 96
4.1.7 函数作为值 97
4.1.8 结构字段 102
4.1.9 结构体字面量 104
4.1.10 嵌套结构 104
4.1.11 结构体字段对齐 105
4.1.12 接口 108
4.1.13 复合接口 110
4.2 变量声明 113
4.3 常量声明 115
4.4 类型转换 116
4.5 类型测试 117
4.6 派生类型声明 119
第5章 错误与panic 122
5.1 Go错误 122
5.2 Go panic 123
5.3 错误与panic演示 126
第6章 Go语句 131
6.1 包与导入语句 132
6.2 赋值语句 133
6.3 声明变量 133
6.4 声明命名常量 135
6.5 if/else语句 136
6.6 switch语句 138
6.7 while语句 140
6.8 do-while语句 140
6.9 带索引的for语句 141
6.10 遍历集合的for语句 141
6.11 无限循环 143
6.12 break与continue语句 144
6.13 goto语句 144
6.14 return语句 144
6.15 defer语句 145
6.16 go语句 146
6.17 select语句 147
第7章 接口应用 149
7.1 接口是核心 149
7.2 有关依赖注入 151
7.3 面向切面编程 156
第8章 Go单元测试和基准测试 160
8.1 Go测试用例和基准测试 160
8.2 Java测试用例 169
第9章 Go的未来 173
9.1 改进的错误处理 173
9.2 Go泛型 174
9.3 生命游戏的capstone示例 178
9.4 生命游戏的Go源代码 181
9.4.1 Java实现的capstone
项目 182
9.4.2 Go实现的capstone
项目 213
9.5 API输出 234
9.6 Game输出 237
第三部分 Go库综述
第10章 主要包比较 248
10.1 Java语言包 248
10.2 JavaIO包 251
10.3 Java Text包 252
10.4 Java Time包 253
10.5 Java Util包 254
第11章 重要方法/函数比较 259
第12章 Go包概述 263
12.1 Go的文件访问 263
12.2 压缩服务 265
?12.2.1 存档包 265
?12.2.2 压缩包 267
12.3 image包 268
12.4 Input/Output(I/O) 269
12.5 字节包 274
12.6 格式化包 276
12.7 数据集合 278
12.8 排序 279
12.9 上下文包 281
12.10 密码学、哈希和数据
编码 283
12.11 encoding包 284
第13章 SQL数据库访问 288
第14章 客户端和服务器支持 296
14.1 MIME包 296
14.2 网络包 296
14.3 net包 296
14.4 HTTP template包 305
14.5 net.http包 309
作者简介
巴里·费根鲍姆
(Barry Feigenbaum)拥有数十年的软件工程相关经验,拥有计算机工程(专注于面向对象软件设计)博士学位和电气工程学位。他曾任职于IBM、Amazon等行业领先公司,目前就职于戴尔,担任高级首席软件工程师。他在技术杂志和评审期刊上发表了多篇文章,与人合著了几本关于IBM
PC-DOS的书,并拥有20多项美国专利。
-
全图解零基础word excel ppt 应用教程
¥16.3¥48.0 -
C Primer Plus 第6版 中文版
¥62.6¥108.0 -
零信任网络:在不可信网络中构建安全系统
¥34.2¥59.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥20.3¥39.8 -
情感计算
¥66.8¥89.0 -
大模型RAG实战 RAG原理、应用与系统构建
¥74.3¥99.0 -
大学计算机基础实验教程(MS Office版)——面向数据分析能力培养
¥29.1¥39.8 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥51.8¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥70.0¥89.8 -
LINUX实战——从入门到精通
¥52.4¥69.0 -
剪映AI
¥52.8¥88.0 -
快速部署大模型:LLM策略与实践(基于ChatGPT等大语言模型)
¥56.9¥79.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
数据存储架构与技术(第2版)
¥62.9¥89.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0 -
实战知识图谱
¥51.8¥69.0