2017-11-17 11:03:35  |  97 Views |  0 Ups |  0 Comments

Python抓取网易云音乐的用户评论

本文利用Python3.5根据网易云音乐的歌曲ID爬取了该歌曲的所有用户的评论数据。以ID为432506345的歌曲《童话镇》为例,通过Chrome的F12分析实际发送的请求的封装过程,基于AES对称加密算法对封装数据进行解密实现,最后使用Python成功实现对用户评论的抓取,并保存到Elasticsearch中。 # 查看实际请求评论的URL 进入URL ```http://music.1
 2017-11-16 14:41:49  |  65 Views |  0 Ups |  0 Comments

OkHttp:Java 平台上的新一代 HTTP 客户端

# OkHttp 简介 OkHttp 库的设计和实现的首要目标是高效。这也是选择 OkHttp 的重要理由之一。OkHttp 提供了对最新的 HTTP 协议版本 HTTP/2 和 SPDY 的支持,这使得对同一个主机发出的所有请求都可以共享相同的套接字连接。如果 HTTP/2 和 SPDY 不可用,OkHttp 会使用连接池来复用连接以提高效率。OkHttp 提供了对 GZIP 的默认支持来降
 2017-11-15 13:49:13  |  55 Views |  0 Ups |  0 Comments

为什么volatile不能保证原子性而Atomic可以?

为什么volatile能替代简单的锁,却不能保证原子性?这里面涉及volatile,是java中的一个我觉得这个词在Java规范中从未被解释清楚的神奇关键词,在Sun的JDK官方文档是这样形容volatile的: > The Java programming language provides a second mechanism, volatile fields, that is more
 2017-11-15 13:40:58  |  89 Views |  0 Ups |  0 Comments

非阻塞同步算法与CAS(Compare and Swap)无锁算法

# 锁(lock)的代价 锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,加锁、释放锁会导致比较多的上下文切换和调度延时,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对性能有很大的损失。操作系统对多线程的锁进行判断就像两姐妹在为一个玩具在争吵,然后操作系统就是能决定他们谁能拿到玩具的父母,这是很慢的。
 2017-11-15 10:46:00  |  56 Views |  0 Ups |  0 Comments

ConcurrentHashMap

# HashMap,HashTable,ConcurrentHashMap对比 1. HashMap,线程不安全(在高并发环境下,执行put会导致HashMap的Entry链表形成环形数据结构,从而导致Entry的next节点始终不为空,可能产生死循环)。Key可以是NULL。 1. HashTable,线程安全,采用同步方法实现,效率低下。key不可以是null 1. Concurren
 2017-11-14 11:16:36  |  53 Views |  0 Ups |  0 Comments

https 的连接建立过程

# http通信存在的问题 - 容易被监听 http通信都是明文,数据在客户端与服务器通信过程中,任何一点都可能被劫持。比如,发送了银行卡号和密码,hacker劫取到数据,就能看到卡号和密码,这是很危险的 - 被伪装 http通信时,无法保证通行双方是合法的,通信方可能是伪装的。比如你请求www.taobao.com,你怎么知道返回的数据就是来自淘宝,中间人可能返回数据伪装成淘宝。 - 被
 2017-09-25 10:52:49  |  60 Views |  0 Ups |  0 Comments

SSL证书服务的区别

# SSL证书的分类 SSL证书按照大类,一般可以分为DV(domain validation),OV(organization validation),EV。也叫做域名型,企业型,增强型证书。 ## 域名型证书(DV SSL) 即证书颁布机构只对域名的所有者进行在线检查,通常是验证域名下某个指定文件的内容,或者验证与域名相关的某条 TXT 记录;比如访问 `[http|https]://
 2017-08-18 14:23:58  |  83 Views |  0 Ups |  0 Comments

Elasticsearch5.0 安装问题集锦

elasticsearch 5.0 安装过程中遇到了一些问题,通过查找资料几乎都解决掉了,这里简单记录一下 ,供以后查阅参考,也希望可以帮助遇到同样问题的你。 ## 问题一:警告提示 ``` [2016-11-06T16:27:21,712][WARN ][o.e.b.JNANatives ] unable to install syscall filter: java.lang.Unsu
 2017-08-17 13:30:04  |  30 Views |  0 Ups |  0 Comments

保留原有插件,快速升级Eclipse发行版本

原文链接:http://vela.diandian.com/post/2012-06-30/40027179366 正文: 嗯,以前都是通过Check for Update升级。 但是这种方式一来网慢,二来有些时候还真升不上去。比如我之前的Eclipse 4.2,是从Milestone版本一路升级上来的。最后一个RC之后本来应该直接升级到GA的,但是不知道为什么,升级完后版本号没有变化。
 2017-07-31 12:54:26  |  122 Views |  0 Ups |  0 Comments

jdk8 Optional 的正确姿势

原文地址:[jdk8 Optional 的正确姿势](http://blog.csdn.net/hj7jay/article/details/52459334) 我们知道 Java 8 增加了一些很有用的 API, 其中一个就是 Optional. 如果对它不稍加探索, 只是轻描淡写的认为它可以优雅的解决 NullPointException 的问题, 于是代码就开始这么写了 ``` Op