自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 CentOS7 安装 Docker 及配置阿里云镜像仓库

Docker 的三要素1)镜像(image)镜像就是模板。2)容器(container)容器就是镜像的一个实例。比如:Public Class Person {}Person p1 = new Person();Person p2 = new Person();Person p3 = new Person();就可以类比为,Person是一个镜像(image)而 p1 p2 p3 就是该镜像对应的三个实例(容器 container)。Docke..

2021-04-20 21:37:27 1552

原创 一文读懂 Git GitHub Gitee(码云)的操作

什么是 GitGit 简单来说,就是一个分布式版本控制软件。分布式版本控制,特点就是分布式和版本控制。版本的概念很好理解,就是每个软件上线的时候,都会有一个版本号,随着软件不断增加功能或者修复以前残留的漏洞,会不断更新软件的版本,如微信一开始的版本为 v1.0.0,后面随着功能的不断增加,优化,现在我们微信的最新版本一般为 v8.0.2而分布式是一种去中心化的架构,每个开发者本地主机上都保留有一份完整的代码,开发者加入这个项目的时候,先从远程仓库克隆一份代码,在此基础上进行编程,并且把自

2021-04-17 17:08:31 536

原创 Golang 多分支语句的使用陷阱和其它细节

Golang 多分支的使用有一个容易被忽视的小细节,就是多分支语句只有一个入口。代码示例:package mainimport "fmt"func main() { var num int8 = 10 if num > 9 { fmt.Println("ok1") } else if num > 6 { fmt.Println("ok2") } else if num > 3 { fmt.Println("ok3") } else { fmt

2021-02-27 15:44:37 225

原创 Golang 浮点类型(float32、float64)在内存中的存储

在Go语言编程中,用来表示小数的有两种类型: float32(单精度类型,占据4个字节 byte,32个二进制位 bit) float64(双精度类型,占据8个字节 byte,64个二进制位 bit)那么,计算机在内存中是如何存储浮点类型的呢?我们下面就来从计算机中最小的单位 bit (二进制位)方面来详细分析:我们知道,计算机中的数据,最终都需要转化成二进制数据来存储。不管什么样的数据(文字、图片、视频、语音)存储到计算机中都会变成 0 1 这样的二进制代码那么,首...

2021-02-18 16:58:43 12706 1

原创 走迷宫算法2(顺序栈 非最短路径)

迷宫用二维数组来表示迷宫:1)0表示可走的格子。2)1表示墙。初始化二维数组: mazeMap := [10][10]int{ {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 0, 0, 1, 0, 0, 0, 1, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 1, 0, 1}, {1, 0, 0, 0, 0, 1, 1, 0, 0, 1}, {1, 0, 1, 1, 1, 0, 0, 0, 0, 1}, {1, 0, 0,

2020-12-30 17:06:32 499 1

原创 走迷宫算法1(递归 非最短路径)

递归递归的概念简单的说,递归就是函数/方法自己调用自己。每次调用传入不同的变量。递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。递归需要遵守的重要原则1)执行一个函数时,就创建一个新的受保护的独立空间(新函数栈)。2)函数的局部变量是独立的,不会相互影响。3)递归必须向退出递归的条件逼近,否则就是无限递归。4)当一个函数执行完毕,或者遇到 return ,就会返回,遵守谁调用,就将结果返回给谁。同时当函数执行完毕或者返回时,该函数本身也会被系统销毁。.

2020-12-29 15:37:55 589 1

原创 哈希表(Hash table)

Google 上机题有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id 性别 年龄 住址...)当输入该员工的 id 时,要求查找到该员工的所有信息。要求:不使用数据库,尽量节省内存,速度越快越好。哈希表这个问题可以用哈希表来解决。哈希表的基本介绍散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放.

2020-12-29 02:27:00 414

原创 用单向链表模拟队列

示意图入队列:让 rear 指针指向的节点的 Next 指针指向新节点,然后让 rear 指针指向下一个节点。出队列:每次出队列时,都让 font 指针指向 head 节点的下一个节点。然后让 head 指针的 Next 指向 front 指针指向的节点的下一个节点,如图所示:最后从队列中弹出 front 节点。完整代码(Golang)/* 数据结构 队列 链表 创建一个链表模拟队列 实现:数据入队列、数据出队列、显示队列*/package mai.

2020-12-28 16:51:39 192

原创 取号机排队取号服务算法(数据结构 队列(Queue))

取号机排队取号服务问题假设某天的取号机最多能取出15个号。一共有2个服务窗口。要求用代码模拟出:1)客户用取号机领取编号。2)模拟服务窗口的职员服务领取到号的客户。情景示意图Golang 代码/* 数据结构 队列 题目一: 1)创建一个数组模拟队列,每隔一定时间[随机],给数组添加一个数。 2)启动两个协程,每隔一定时间(时间随机)到队列取出数据 3)在控制台输出 x 号协程 服务 ---》x 号客户 x 号协程 服务 ---》x 号客户..

2020-12-27 18:10:33 2246

原创 Golang 实现单向环形链表

单向环形链表单向环形链表是一种特殊的单向链表。单向链表最后一个节点的 Next 指针指向空。而单向环形链表最后一个节点的 Next 指针指向头节点。如图所示:单向环形链表节点的构建假设把几只猫的信息(编号、名字)构成一个单向环形链表。Golang 代码:type CatNode struct { no int // 猫编号 name string // 猫的名字 next *CatNode // 指向下一只猫的指针}往单向环形链..

2020-12-26 17:53:15 317 3

原创 栈(Stack)的快速入门

Golang 代码:/* 数据结构 栈(Stack) 快速入门案例*/package mainimport ( "errors" "fmt")// 使用数组来模拟一个栈的使用type Stack struct { MaxTop int // 表示栈最大能存放的数据个数 Top int // 栈顶 arr [5]int // 模拟栈的数组}// 入栈func (this *Stack) Push(val int) (err error) {

2020-12-21 18:02:37 190

原创 约瑟夫问题(Josephus problem)详解

约瑟夫问题1)设编号为 1,2,3 ... n 的 n 个人围坐一圈。2)约定编号为 k (1 <= k <= n)的人从 1 开始报数,数到 m 的那个人出列。3)它的下一位又从 1 开始报数,数到 m 的那个人又出列,依此类推,直到所有人出列为止。4)由此产生一个出列编号的序列。解题思路1)构建一个结构体 Boy No 为 Boy 的编号。 Next 指针指向下一个 Boy。代码如下:// 小孩的结构体type Boy struct {...

2020-12-21 15:52:04 9328

原创 Golang 实现双向链表

Golang 代码:/* 数据结构 双向链表*/package mainimport "fmt"// 定义一个双向链表type DoubleNode struct { no int // 排名 name string // 名字 nickname string // 外号 pre *DoubleNode // 前一个节点 next *DoubleNode // 下一个节点}// 给双向链表加入一

2020-12-17 01:06:07 271

原创 Golang 操作单向链表的应用实例

代码:/* 使用带head头节点的单向链表实现-水浒传英雄排行榜管理: 1)完成对英雄人物的增删改查操作。 2)第一种方法:在添加英雄时,直接添加到链表的尾部 3)第二种方法:在添加英雄时,根据排名将英雄插入到指定位置 (如果没有这个排名,则添加失败,并给出提示)*/package mainimport "fmt"// 定义一个 HeroNodetype HeroNode struct { no int // 排名 name string

2020-12-16 16:17:51 181

原创 测试 Golang 指针变量的引用传递

首先设计一个数据结构(Golang 结构体) SimpleList :type SimpleList struct { num int next *SimpleList}num 用来代表该结构的编号。*SimpleList 用来表示该结构体类型的指针变量,指向下一个节点。创建头节点 head。创建其它节点 node1、node2、node3。 node3 := &SimpleList{ num: 3, } node2 := &SimpleLi.

2020-12-16 15:59:04 264

原创 稀疏数组(压缩数组)

如何用代码来表示棋盘?棋盘(11 * 11)如图所示,一个 11 * 11 的围棋棋盘。三枚黑子的位置分别为 (1,2) (2,3) (3,2)一枚白子的位置为 (2,2)传统方式一般会联想到二维数组来表示棋盘,假设:黑棋的值为1。白棋的值为2。没有落子的值为0。用二维数组来表示棋盘和棋子的 Golang 代码:package mainimport "fmt"type Node struct { row int // 行 column in..

2020-12-08 15:27:44 897

原创 Golang Redis 连接池

Redis 连接池说明:通过 Golang 对 Redis 进行操作,还可以通过使用 Redis 连接池,流程如下:1)事先初始化一定数量的线程,放入到连接池。2)当 Go 需要操作 Redis 时,直接从 Redis 连接池取出链接即可。3)这样可以节省临时获取 Redis 链接的时间,从而提高效率。核心代码:var pool *redis.Poolpool = &redis.Pool { MaxIdle:8, // 最大空闲连接处 MaxActiv

2020-12-07 16:21:37 507

原创 Java 关键字 volatile 的作用(2/2):禁止指令重排序

我们先来看一段 Java 代码,DCL (Double Check Lock) 单例模式:package singleton;public class Mgr06 { private volatile static Mgr06 INSTANCE; private Mgr06() { } public static Mgr06 getInstance() { if (INSTANCE == null) { synch

2020-12-06 23:15:11 374

原创 Linux 操作系统文件权限详解

Linux文件权限是非常重要的一部分,熟悉Linux的文件权限有助于程序员更好地使用Linux操作系统。这里我用 CentOS7 版本的 Linux 操作系统远程连接工具使用 FinalShell 3.7.7切换到测试目录 /opt/testShell[root@192 ~]# cd /opt/testShell用 root 用户登陆 Linux 然后输入 Linux 命令查看文件[root@192 testShell]# ls -lLinux 系统输出的结果:如图.

2020-12-05 23:38:09 553

原创 Golang 操作 Redis 示例

/* Golang 操作 Redis*/package mainimport ( "fmt" // 引入 Redis 包 "github.com/garyburd/redigo/redis")func main() { // 链接到 Redis conn, err := redis.Dial("tcp", "localhost:6379") if err != nil { fmt.Println("connect redis fails err = ", err) .

2020-11-20 16:22:15 458 2

原创 Go语言的简介与特点

Go语言的核心开发团队Ken Thompson 1983年图灵奖获得者,C语言的主要发明人Rob Pike 贝尔实验室Unix团队的成员,和Ken共创出广泛使用的UTF-8编码Robert Griesemer:曾协作制作Java的HotSpot编译器,和Chrome浏览器的JavaScript引擎V8Go语言诞生的小故事Google为什么要创建出Go语言?1.计算机硬件技术更新频繁,目前主流编程语言的发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。2.软件.

2020-11-20 15:45:10 1267 1

原创 Java 关键字 volatile 的作用(1/2):保证线程的可见性

volatile 保证线程可见性先贴上代码变量 running 前面不加 volatile 修饰时:package test;import java.util.concurrent.TimeUnit;public class T01_HelloVolatile { boolean running = true; void m() { System.out.println("m start"); while (running) {

2020-11-11 11:27:15 385 1

原创 win10 安装 mysqld 8.0.13 时候报错, mysqld --initialize --console 遇到的问题解决

错误:执行mysqld --initialize --console命令时解决方法:在配置文件my.ini时把所有的字符集编码设置 utf8 通通换成 utf8m4原因:一、简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编...

2019-12-08 14:46:51 8289

基于SSH的BBS论坛

基于SSH和mysql搭建的一个BBS 有前台很后台功能,页面精美 修改spring里关于hibernate就直接可以用,附带数据库文件

2016-11-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除