03 2018 档案

摘要:jackson 是一个 java json 库,提供了完备的 json 解析,序列化以及反序列化功能 依赖配置 在 build.gradle 里面添加依赖配置 json 解析 调用 就能讲 json 字符串解析成一个 对象,然后通过 方法就可以获取 json 中各个字段的值了,这种方式可以用来读取 阅读全文
posted @ 2018-03-18 17:55 hatlonely 阅读(190) 评论(0) 推荐(0)
摘要:java 的多线程有好几种,可以继承 Thread,也可以实现 Runnable 接口,还可以实现 Callable 接口 Thread Callable 接口也只有一个方法 ,和 Runnable 不同的是 Callable 允许有返回值,而这个返回值可以通过 获取,还可以设置任务运行的超时时间, 阅读全文
posted @ 2018-03-18 01:53 hatlonely 阅读(112) 评论(0) 推荐(0)
摘要:相比于 c/c++,golang 的一个很大的改进就是引入了 gc 机制,不再需要用户自己管理内存,大大减少了程序由于内存泄露而引入的 bug,但是同时 gc 也带来了额外的性能开销,有时甚至会因为使用不当,导致 gc 成为性能瓶颈,所以 golang 程序设计的时候,应特别注意对象的重用,以减少 阅读全文
posted @ 2018-03-17 17:20 hatlonely 阅读(281) 评论(0) 推荐(0)
摘要:最近在做一些性能优化的工作,其中有个结构体占用的空间比较大,而且在内存中的数量又特别多,就在想有没有优化的空间,想起了 c 语言里面的字节对齐,通过简单地调整一下字段的顺序,就能省出不少内存,这个思路在 golang 里面同样适用 基本数据大小 在这之前先来看下 golang 里面基本的类型所占数据 阅读全文
posted @ 2018-03-17 01:51 hatlonely 阅读(532) 评论(0) 推荐(1)
摘要:golang 最吸引人的地方可能就是并发了,无论代码的编写上,还是性能上面,golang 都有绝对的优势 学习一个语言的并发特性,我喜欢实现一个生产者消费者模型,这个模型非常经典,适用于很多的并发场景,下面我通过这个模型,来简单介绍一下 golang 的并发编程 go 并发语法 协程 协程 是 go 阅读全文
posted @ 2018-03-11 19:28 hatlonely 阅读(429) 评论(0) 推荐(0)
摘要:有时候一个函数会有很多参数,为了方便函数的使用,我们会给希望给一些参数设定默认值,调用时只需要传与默认值不同的参数即可,类似于 python 里面的默认参数和字典参数,虽然 golang 里面既没有默认参数也没有字典参数,但是我们有选项模式 可变长参数列表 在这之前,首先需要介绍一下可变长参数列表, 阅读全文
posted @ 2018-03-11 13:07 hatlonely 阅读(381) 评论(0) 推荐(0)
摘要:s3 是 aws 提供的分布式文件服务,价格比较优惠,经常被用来作为日志的持久化存储,大数据处理结果的输入输出等 s3 服务提供命令行工具,可以很方便地上传、下载、删除文件,普通 golang 程序如果需要访问 s3 上文件,一种简单方式可以先将 s3 上文件下载到本地,然后直接访问本地文件即可,但 阅读全文
posted @ 2018-03-04 20:01 hatlonely 阅读(785) 评论(0) 推荐(0)