2021-08-13 三、Go语言基础入门——Go数据类型 三、Go语言基础入门——Go数据类型 前言最近买了两本书准备学习一下Go语言,其中一本是《Go语言高并发与微服务实战》另外一本是《Go Web编程实战派》,第一本是为了深入了解一下Go语言在高并发中的魅力,买第二本的原因是因为刚刚从Java转到Go语言,所以想更快的学习一些工作中可能接触到的Go Web相关的知识。众所周知,Go语言是Google于2009年开源的一门编程语言,原名GoLanguage也叫Golang。它可以在不损失应用程序性能的情况下极大地降低代码的复杂度。相比较其他编程语言,它具备了简洁、快速、安全、并行、有趣、开源、内存管理、数组安全、编译迅速等等一些列特点。话不多少,我会先学习《Go Web编程实战派》这本书,跟随我一起走进Go语言学习的海洋吧!!!Go数据类型Go语言的基本数据类型分为布尔型、数字类型、字符串类型、复合类型这4种。其中复合类型又分为:数组类型、切片类型、Map类型、结构体类型。Go语言常见的基本数据类型:类型说明布尔型布尔型的值只可以是常量true或者false。eg:var b bool = true数字类型包含以下类型:uint8:无符号8位整型(0~255)int8:有... 会编程的羽流云 2021-08-13 Go语言 1,750 阅读 0 评论 2021年08月13日 1,750 阅读 0 评论
2021-07-13 二、Go语言基础入门——Go基础语法与使用 二、Go语言基础入门——Go基础语法与使用 前言最近买了两本书准备学习一下Go语言,其中一本是《Go语言高并发与微服务实战》另外一本是《Go Web编程实战派》,第一本是为了深入了解一下Go语言在高并发中的魅力,买第二本的原因是因为刚刚从Java转到Go语言,所以想更快的学习一些工作中可能接触到的Go Web相关的知识。众所周知,Go语言是Google于2009年开源的一门编程语言,原名GoLanguage也叫Golang。它可以在不损失应用程序性能的情况下极大地降低代码的复杂度。相比较其他编程语言,它具备了简洁、快速、安全、并行、有趣、开源、内存管理、数组安全、编译迅速等等一些列特点。话不多少,我会先学习《Go Web编程实战派》这本书,跟随我一起走进Go语言学习的海洋吧!!!# 基础语法我们以及完成了Go语言的第一个程序,接下来本章博客将从Go语言的基础语法以及使用方面进行学习,虽然这些知识对于有其他语言开发经验的同学很简单,但我相信还还会从中发现更多知识点。## 行分隔符在Go语言中,并不需要像Java、PHP等语言那样需要在一行语句的最后使用分号结尾,因为这些工作编译器已经帮我们完成了。但是如果在同一行有多条语句,... 会编程的羽流云 2021-07-13 Go语言 2,323 阅读 1 评论 2021年07月13日 2,323 阅读 1 评论
2021-06-26 一、Go语言基础入门——第一个Go程序 一、Go语言基础入门——第一个Go程序 前言最近买了两本书准备学习一下Go语言,其中一本是《Go语言高并发与微服务实战》另外一本是《Go Web编程实战派》,第一本是为了深入了解一下Go语言在高并发中的魅力,买第二本的原因是因为刚刚从Java转到Go语言,所以想更快的学习一些工作中可能接触到的Go Web相关的知识。众所周知,Go语言是Google于2009年开源的一门编程语言,原名GoLanguage也叫Golang。它可以在不损失应用程序性能的情况下极大地降低代码的复杂度。相比较其他编程语言,它具备了简洁、快速、安全、并行、有趣、开源、内存管理、数组安全、编译迅速等等一些列特点。话不多少,我会先学习《Go Web编程实战派》这本书,跟随我一起走进Go语言学习的海洋吧!!!环境安装(windows)下载安装包下载地址为:https://golang.org/dl/ 或 https://golang.google.cn/dl/。安装Windows 下可以使用 .msi 后缀(在下载列表中可以找到该文件,如go1.4.2.windows-amd64.msi)的安装包来安装。配置默认情况下 .msi 文件会安装在 c:\G... 会编程的羽流云 2021-06-26 Go语言 2,398 阅读 1 评论 2021年06月26日 2,398 阅读 1 评论
2021-03-09 大数据技术基础-linux操作基础 大数据技术基础-linux操作基础 大数据技术基础-linux操作基础linux简介Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux的应用1、基于Linux的企业服务器 2、Linux在嵌入式领域Linux与Windows的不同1、Linux严格区分大小写; 2、Linux中所有内容以文件形式保存,包括硬件、用户; 3、Linux不靠扩展名区分文件类型(通过文件权限区分文件类型),但是我们有一些约定俗成的扩展名: 1)压缩包:“*.gz”、“*.... 会编程的羽流云 2021-03-09 学习,Java——大数据方向 1,871 阅读 0 评论 2021年03月09日 1,871 阅读 0 评论
2021-03-09 linux操作 linux操作 Linux基础指令ls指令说明:ls(list) 用法1:#ls 说明:列出当前工作目录下的所有文件/文件夹的名称 用法2:#ls 路径 说明:列出指定路径下所有文件/文件夹名称 关于路径:路径可以分为两种:相对路径、绝对路径。 相对路径:相对首先得有一个参照物(一般就是当前的工作路径); 相对路径的写法:在相对路径中通常会用到2个符号“./”【表示当前目录下】、“../”【上一级目录下】。 绝对路径:绝对路径不需要参照物,直接从根“/”开始寻找对应路径;用法3:#ls 选项 路径 含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。 常见的语法: #ls -l 路径 #ls -la 路径 选项解释: -l:表示list,表示以详细列表的形式进行展示 -a:表示显示所有的文件/文件夹(包含了隐藏文件/文件夹) 上述列表中的第一列字符表示文档的类型,其中“-”表示该行对应的文档类型为文件,“d”表示文档类型为文件夹。 在Linux中隐藏文档一般都是以“.”开头。 用法4:#ls -lh 路径 含义:... 会编程的羽流云 2021-03-09 学习,Java——大数据方向 1,943 阅读 0 评论 2021年03月09日 1,943 阅读 0 评论
2021-01-08 Java JUC——volatile关键字 Java JUC——volatile关键字 一、摘要 接下来的一周时间我将开始学习一些简单的并发编程的知识,做一些记录以便以后研习拓展。二、Java JUC简介 在 Java 5.0 提供了 java.util.concurrent (简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。提供可调的、灵活的线程池。还提供了设计用于多线程上下文中的 Collection 实现等。三、多线程 我们使用多线程主要是为了提高效率,换句话说尽可能利用cpu的资源或者说尽可能利用系统的资源,但是如果使用的不当,不仅不能提高效率反而性能会更低,因为多线程的开销会比单线程要大,它涉及到了线程之间的创建、销毁、调度以及cpu切换等等一系列操作。四、例子1、程序如下package cn.zachariah.chapter01; /** * @ClassName TestVolatile * @Description ... 会编程的羽流云 2021-01-08 学习,并发编程 1,821 阅读 0 评论 2021年01月08日 1,821 阅读 0 评论
2021-01-02 选择排序从入门到精通——Java实现 选择排序从入门到精通——Java实现 选择排序算法实现原理1、选取出 n 条记录中最小的记录与第一条记录进行交换 —— 循环的第一趟2、选取出除第一条记录以外的 n-1 条记录中最小的记录与第二条记录进行交换 —— 循环的第二趟3、以此类推直到整个数组全部遍历排序完成。与冒泡排序的对比选择排序可以看成冒泡排序的改进版本冒泡排序实际上是将数据从右至左排序完成(从右至左、从大到小进行交换排序),而快速排序是将数据从左到右排序完成(从左至右、从小到大进行交换排序),虽然选择排序相对于冒泡排序将交换次数从$O(n^2)$减少到了$O(n)$,但是比较次数还是保持$O(n^2)$算法复杂度比较次数 $O(n^2)$——比较次数与关键字的初始状态无关,总的比较次数 $N=(n-1)+(n-2)+...+1=n(n-1)/2$。交换次数 $O(n)$——最好情况是,已经有序,交换 0 次;最坏情况交换 n-1 次,逆序交换 $n/2$ 次。算法稳定性选择排序是不稳定,当数据为2,3,2,1,4,5时就会出现第一次出现的2会被交换到第二次出现的2后面,这样就造成了排序并没有按照相同数据按照初始的顺序进行排序的要求。然而冒泡排序却不会... 会编程的羽流云 2021-01-02 算法,学习 1,021 阅读 0 评论 2021年01月02日 1,021 阅读 0 评论
2021-01-02 冒泡排序从入门到精通——Java实现 冒泡排序从入门到精通——Java实现 冒泡排序算法实现原理1、从数据队列的左侧开始比较相邻的另个数据元素2、如果左侧元素大于右侧元素,则交换这两个元素的位置,继续右移一个位置比较下两个相临的数据元素3、如果右侧元素大于左侧元素,则不变,继续右移一个位置比较下两个相临的数据元素4、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。5、针对所有的元素重复以上的步骤,除了最后一个。6、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。算法复杂度若文件的初始状态是正序的,一趟扫描即可完成排序。所需的关键字比较次数C和记录移动次数M均达到最小值:$$ C_{min}=n-1,M_{min}=0$$所以,冒泡排序最好的时间复杂度为 $$O(n)$$若初始文件是反序的,需要进行n-1趟排序。每趟排序要进行n-1次关键字的比较(1≤i≤n-1),且每次比较都必须移动记录三次来达到交换记录位置。在这种情况下,比较和移动次数均达到最大值:$$C_{max}=n(n-1)/2=O(n^2),M_{max}=3n(n-1)/2=O(n^2)$$冒泡排序的最坏时间复杂度为$$... 会编程的羽流云 2021-01-02 算法,学习 998 阅读 0 评论 2021年01月02日 998 阅读 0 评论