08.Golang容器之Map

[TOC]前言一、概念Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现。map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。所有可比较的类型,如 整型 ,字符串 等,都可以作为 key 。二、map定义2.1 声明方式map 是引用类型,可以使用如下方式声明:var mapname map[keytype]valuety...

GO 2022-06-30 PM 819次 0条

07.Golang容器之切片功能操作

[TOC]前言一、切片不能直接比较切片之间是不能比较的,我们不能使用==操作符来判断两个切片是否含有全部相等元素。 切片唯一合法的比较操作是和nil比较。 一个nil值的切片并没有底层数组,一个nil值的切片的长度和容量都是0。但是我们不能说一个长度和容量都是0的切片一定是nil,例如下面的示例:var s1 []int //len(s1)=0;cap(s1)=0;s1==n...

GO 2022-06-30 PM 732次 0条

06.Golang容器之切片

[TOC]前言一、概述切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。切片是一个引用类型,它的内部结构包含地址、长度和容量。切片一般用于快速地操作一块数据集合。二、切片2.1 切片的定义声明切片类型的基本语法如下:var name []T说明name:表示变量名T:表示切片中的元素类型示例func main() { /...

GO 2022-06-30 PM 633次 0条

05.Golang容器之数组

[TOC]前言一、概述数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。因为数组的长度是固定的,所以在Go语言中很少直接使用数组。和数组对应的类型是 Slice(切片),Slice 是可以增长和收缩的动态序列,功能也更灵活,但是想要理解 slice 工作原理的话需要先理解数组,所以本节主要为大家讲解数组的使用。二、数组2.1 声明数组数组的声明语法如下:var ...

GO 2022-06-29 PM 694次 0条

04.Golang基本数据类型

[TOC]前言在静态类型语言(C++/Java/Golang 等)中规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存。一、整形整型分两大类有符号整型:int8、int16、int32、int64、int。无符号整型:uint8、uint16、uint32、uint64、uint。注意: 在使用int和 uint类型时,不能假定它是32位或64位的整型,而是考虑...

GO 2022-06-28 PM 876次 0条

03.Golang基础之变量与常量

[TOC]前言一、变量1.1 概述程序在运行过程中,数据保存在内存当中。在代码中,可以通过以下两种方式到内容中访问具体的数据:直接引用该数据的内存地址访问数据通过创建变量将数据的内存地址保存起来,然后通过引用变量名去访问数据和后者相比前者的可读性差,并且容易出错,所以在程序中通常会通过定义一个简短有意义的名称来用于对数据的访问。简言之,变量就是一块存放(可变)数据的内存空间,引用变量名就可以...

GO 2022-06-28 PM 648次 0条

02.Golang入门程序

[TOC]前言在执行GO语言时需要先安装一个SDKGo 安装包下载Windows系统只需要下载对应版本的以.msi后缀结尾的文件即可。安装完成后自动加入环境变量,不需要手动配置。安装过程很简单本文就不在赘述。安装完成后打开cmd查看是否安装成功go version一、第一个GO程序需求:在控制台输出"Hello World!"package main // 声明 main 包 imp...

GO 2022-06-27 PM 924次 0条

01.Golang介绍

[TOC]前言在开始本篇之前先上一张表情包:GO语言的吉祥物是一只地鼠(gopher)。一、简介Go语言又称为Golang是Google于2009年正式发布的一款开源的静态编译型编程语言,Go拥有构建简单、可靠和高效的特性。主要目标是“兼具Python 等动态语言的开发速度和C/C++等编译型语言的性能与安全性”,旨在不损失应用程序性能的情况下降低代码的复杂性。很多公司,特别是中国的互联网公...

GO 2022-06-26 PM 1561次 2条

04.Netty源码分析之启动流程分析

[TOC]一、NIO启动流程Netty底层是NIO,从对NIO的组件封装开始进行分析。本次对Netty的分析主要是在源码中找到下方NIO的方法,来看看netty中对下面的代码是怎样进行处理的//1 netty 中使用 NioEventLoopGroup (简称 nio boss 线程)来封装线程和 selector //可以同时监听多个channel上的读和写事件 Selector sele...

Java 2022-06-24 PM 863次 0条

03.Netty搭建RPC框架

[TOC]一、概述RPC的目的,让分布式或者微服务系统中不同服务之间的调用(远程调用)像本地调用一样简单,调用者感知不到远程调用的逻辑。二、目的客户端向服务端发送请求,调用HelloService接口中的sayHello方法,最后服务端将结果返回给客户端HelloService接口public interface HelloService { String sayHello(Stri...

Java 2022-06-23 PM 858次 0条