java多线程

多线程是java的一个很重要的高级特性,本文主要归纳了线程的相关概念,包括线程的定义,与进程的区别,线程的状态和属性。同时介绍了线程中很重要的一个知识点——如何实现线程安全:1使线程同步、使用阻塞队列或线程安全的集合。除此之外,还介绍了用于管理线程,提高线程执行效率的执行器(线程池)和同步器。
本文是在看了《Think in JAVA》、《JAVA核心技术卷》以及相关的一些博客后的总结笔记,纯属个人理解。若有错误,望指出。文末会贴出参考资料的链接。

Read More

使用Scrapy框架爬取数据

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

上述是Scrapy的官方文档的解释,个人认为学习Scrapy的最好方法就是Scrapy的官方文档,写的非常清楚,而且各种功能也都写的特别详尽。推荐看官方文档学习Scrapy。本文主要是有关于我在学习Scrapy过程中遇到的坑和解决方法,以及是Scrapy入门后找的一些网站练手的代码展示。所有的代码都已经上传到我的github上了,如果感兴趣的话,可以去这个地址下载。https://github.com/BeaLin/ScrapyProgram 。使用Scrapy爬取数据的网站有
聚美优品、豆瓣、乐峰、蜜芽、跨境淘、欧美淘。不出意外,这些代码下载下来是可以直接运行的。这篇博文会不定时更新~^-^

Read More

Python学习笔记

由于项目需要,最近开始学Python。Python是一种面向对象、解释型语言。也是最近非常火的一种语言。Python为我们提供了非常完善的基础代码库,涵盖了网络、文件、GUI、数据库、文本等大量内容。Python非常简单,有一定面向对象知识的同学都可以很快地入门并深入。但是Python也有缺点:一个是运行速度慢;一个是代码不能加密。因为Python是解释型语言,所以代码在执行时会一行一行地翻译成CPU能理解地机器码。这个翻译过程很耗时。我学习Python的目的主要是为了编写爬虫代码和学习机器学习知识。所以对Python的学习程度并不需要达到深层次。我为了快速入门,选择廖雪峰的官方网站中的Python3教程进行学习。本文主要是我学习过程记下的笔记,着重于与java不太一样的地方。个人笔记仅供参考。

Read More

Java内存模型JMM

在并发编程中,有两个关键问题需要处理:线程之间如何通信以及线程之间如何同步。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。java的并发采用的是共享内存模型。本文主要介绍Java内存模型JMM以及其实现内存可见性的方式。
本文是在看了《Think in JAVA》、《JAVA核心技术卷》以及相关的一些博客后的总结笔记,纯属个人理解。若有错误,望指出。文末会贴出参考资料的链接。

Read More