分享《Java并发核心知识体系精讲【完整无秘】》

​Java并发编程精讲本门并发课程与市面上课程最大差异是:体系化,是并发编程“道”与“术”的解析。涵盖并发必须跨越的“三座大山”:多线程并发的8大核心基础+Java内存模型+并发场景下的“死锁”问题。“第一座大山”八大核心基础分为8个章节讲解,分而治之,逐个攻克,为翻越第二座大山“Java内存模型”做铺垫,最后一座大山“死锁”落点到常见的并发问题和企业级解决方案上,传授并发编程技巧,工作面试无忧。适合人群求职Java开发的小伙伴系统学习Java的在校大学生提升个人实力的的Java程序员任何一个希...阅读全文

Go语言中文网 2019-10-18 01:37:57 guofucheng

golang初探与命令源码分析

前段时间有群友在群里问一个go语言的问题: 就是有一个main.go的main函数里调用了另一个demo.go里的hello()函数。其中main.go和hello.go同属于main包。但是在main.go的目录下执行go run main.go却报hello函数没有定义的错: image 代码结构如下: **gopath ---- src** **----gohello** **----hello.go** ** ----main.go** main.go如下: package main i...阅读全文

简书 2019.10.17 22:19:06 aside section . 等

用go语言爬取珍爱网 | 第一回

image 我们来用go语言爬取“珍爱网”用户信息。 首先分析到请求url为: http://www.zhenai.com/zhenghun image 接下来用go请求该url,代码如下: package main import ( "fmt" "io/ioutil" "net/http" ) func main() { //返送请求获取返回结果 resp, err := http.Get("http://www.zhenai.com/zhenghun") if err != nil { pa...阅读全文

简书 2019.10.17 22:25:51 aside section . 等

利用golang优雅的实现单实例

平时编写代码过程中,经常会遇到对于全局角度只需运行一次的代码,比如全局初始化操作,设计模式中的单例模式。针对单例模式,java中又出现了饿汉模式、懒汉模式,再配合synchronized同步关键字来实现。其目的无非就是将对象只初始化一次,而且最好保证在用到的时候再进行初始化,以避免初始化太早浪费资源,或者两次初始化破坏单例模式的实例唯一性。 Go语言的sync包中提供了一个Once类型来保证全局的唯一性操作,其通过Do(f func())方法来实现,即使** f** 函数发生变化,其也不会被执行...阅读全文

简书 2019.10.17 22:27:39 aside section . 等

一个神秘现象引发对beego框架的思考

小强最近在项目中遇到了一个很奇怪的问题:在整改日志规范时,为了避免影响现有的代码结构以及改动尽可能小的前提下,在调用记日志的SDK处将某一个字段值首字母改为大写,代码示例如下: fmt.Println("--------SayHello begin------------") //项目中这里的a实际是作为参数传入,只是可能为空串,不为空串,这样写肯定没问题 a := "" b := strings.ToUpper(a[:1]) + a[1:] fmt.Println("b is ", b) fm...阅读全文

简书 2019.10.17 22:28:03 aside section . 等

Go语言可能会遇到的坑

最近在用go开发项目的过程中突然发现一个坑,尤其是对于其它传统语言转来的人来说一不注意就掉坑里了,话不多说,咱看代码: //writeToCSV func writeESDateToCSV(totalValues chan []string) { f, err := os.Create("t_data_from_es.csv") defer f.Close() if err != nil { panic(err) } w := csv.NewWriter(f) w.Write(columns) ...阅读全文

简书 2019.10.17 22:59:17 aside section . 等

使用Visual Studio Code调试Golang工程

准备VSCode 在官网下载最新版的VSCode: Visual Studio Code - Code Editing. Redefined 安装Golang插件 打开扩展面板 VSCode->查看->扩展 找到Go插件 在搜索框里输入Go, 找到第二行写有 Rich Go language support for Visual Studio Code的插件, 点击安装 重启编辑器 配置启动项 打开调试面板 VSCode->查看->调试 添加调试目标 在"没有调试"的下拉框中点击"添加配置.."...阅读全文

简书 2019.10.17 23:02:36 aside section . 等

Golang文件名命名规则

规则 在golang源代码中,经常看到各种文件名,比如: bolt_windows.go。 下面对文件名命令规则的说明: 平台区分 文件名_平台。 例: file_windows.go, file_unix.go 可选为windows, unix, posix, plan9, darwin, bsd, linux, freebsd, nacl, netbsd, openbsd, solaris, dragonfly, bsd, notbsd, android,stubs 测试单远 文件名test...阅读全文

简书 2019.10.18 00:05:03 aside section . 等

golang struct 的奇技淫巧

在使用golang变成的过程中,struct的使用频率非常高,基础的使用我们都会,但有的时候可能会接到一些特殊的需求,或者发现别人的代码读起来不那么顺畅。那是因为struct的一些“冷门”方式,我们不那么熟练。 接下来,就跟大家分享下,我最近用到的“生僻方法”: 结构体中的json是干什么用的? 定义一个结构体 type Tina struct{ appID string`json:"string"` } 这里的这个json可不是备注的意思,而是在使用http接口进行传输时,根据json标识的内...阅读全文

简书 2019.10.17 19:53:06 aside section . 等

linux上安装LAMP笔记

B哥最近在参加比赛,需要把一个php项目部署到服务器上,故此在linux上安装LAMP环境,用于部署项目,第一次安装,做点儿笔记记录一下。 安装条件: Redhat或者CentOS linux环境已装好,并配置了yum源。 用yum安装httpd、mariadb、php 安装httpd: yum -y install httpd 安装mariadb: yum -y install mariadb-server 安装php: yum -y install php php-mysql 检查安装包 r...阅读全文

Segmentfault 2019-10-18 05:02:40 小碗汤

Golang 爬取学院的安全测试题库

> 爬取学院安全教育测试题库 <!-- more --> ## 前言 学院的安全教育测试题目好难,为了通过测试,也为了检验一下最近的学习成果,我尝试用 golang 爬取了整个安全题库,并保存成csv文件方便使用(轻松100分) ## 遇到的问题 * 寻找关键的 form-data * json 的反序列化 ## 实现 ```go package main import ( "encoding/csv" "encoding/json" ...阅读全文

Go语言中文网 2019-10-17 23:37:46 kqzh

秒杀系统的艺术

12306抢票,极限并发带来的思考? 每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。“12306服务”承受着这个世界上任何秒杀系统都无法超越的QPS,上百万的并发再正常不过了!笔者专门研究了一下“12306”的服务端架构,学习到了其系统设计上很多亮点,在这里和大家分享一下并模拟一个...阅读全文

掘金 2019年09月21日 绘你一世倾城

生存还是毁灭?一文读懂挖矿木马的战略战术

前言??比特币等虚拟货币在2019年迎来了久违的大幅上涨,从最低3000美元上涨至7月份的14000美元,涨幅达300%,巨大的金钱诱惑使得更多的黑产团伙加入了恶意挖矿的行列。阿里云安全团队通过对云上僵尸网络家族的监控,发现恶意挖矿已成为黑产团伙主要的牟利方式。2019年共监控到58个成规模的挖矿木马团伙(数据截止到8月底),以累积感染量定义木马活跃度,下图/表是活跃TOP10的木马家族及简介。本文尝试从宏观角度分析、总结挖矿木马常用技术及发展趋势,以期能够给企业安全防护带来启示。家族名简介平台...阅读全文

简书 2019.10.17 17:23:34 aside section . 等

log4g:站在巨人的头上实现一个可配置的Go日志库

更多精彩博文,欢迎访问我的个人博客 前言 本人Java程序员一枚,眼看着这几年Go的势头不错,本着技多不压身的原则,也随大流慢慢学习。不得不说Go其实跟Java差别还是挺大的,毕竟习惯了面向对象的思想,一时间也有点接受不过来。俗话说实践才能出真知,本想着拿刚学的点皮毛练练手,结果就遇到了一个问题:日志。 Go语言不像Java中有诸如Log4j的大哥存在,其自带的log库其实功能有限。虽然催生出了诸如logrus、zap等一系列优秀的三方日志库,但在github上找了半天始终没有找到一款符合自己需...阅读全文

Segmentfault 2019-10-18 05:02:39 鹏徙南暝

【红岸智能】-- IPFS官方周报第53期

星际文件系统 (IPFS) ( https://ipfs.io/ )是一种新的超媒体分布协议,通过内容和标识来寻址。IPFS 支持创建完全分布式的应用程序。它的目标是使网络更快、更安全、更开放。由于范围广大,本周刊旨在跟踪整个生态系统的开发。想参与其中?点击下面的一些链接,查看我们在 GitHub (https://github.com/ipfs ) 上的内容,或加入我们的 IRC ( https://riot.im/app/#/room/#ipfs:matrix.org )。想要更新你的收件箱...阅读全文

简书 2019.10.17 15:53:06 aside section . 等

【红岸智能】-- IPFS官方周报第54期

​ 星际文件系统 (IPFS) (https://ipfs.io/ )是一种新的超媒体分布协议,通过内容和标识来寻址。IPFS 支持创建完全分布式的应用程序。它的目标是使网络更快、更安全、更开放。由于范围广大,本周刊旨在跟踪整个生态系统的开发。想参与其中?点击下面的一些链接,查看我们在 GitHub (https://github.com/ipfs ) 上的内容,或加入我们的 IRC (https://riot.im/app/#/room/#ipfs:matrix.org)。想要更新你的收件箱吗...阅读全文

简书 2019.10.17 15:54:25 aside section . 等

【红岸智能】 -- IPFS官方周报第55期

​ 星际文件系统 (IPFS) (https://ipfs.io/ )是一种新的超媒体分布协议,通过内容和标识来寻址。IPFS 支持创建完全分布式的应用程序。它的目标是使网络更快、更安全、更开放。由于范围广大,本周刊旨在跟踪整个生态系统的开发。想参与其中?点击下面的一些链接,查看我们在 GitHub (https://github.com/ipfs ) 上的内容,或加入我们的 IRC (https://riot.im/app/#/room/#ipfs:matrix.org)。想要更新你的收件箱吗...阅读全文

简书 2019.10.17 15:55:54 aside section . 等

【红岸智能】 -- IPFS官方周报第56期

​ 星际文件系统 (IPFS) ( https://ipfs.io/ )是一种新的超媒体分布协议,通过内容和标识来寻址。IPFS 支持创建完全分布式的应用程序。它的目标是使网络更快、更安全、更开放。由于范围广大,本周刊旨在跟踪整个生态系统的开发。想参与其中?点击下面的一些链接,查看我们在 GitHub ( https://github.com/ipfs )上的内容,或加入我们的 IRC ( https://riot.im/app/#/room/#ipfs:matrix.org )。想要更新你的收...阅读全文

简书 2019.10.17 15:56:49 aside section . 等