自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Paranoid

要像一张邮票,坚持一件事情直到你到达目的地。

  • 博客(82)
  • 问答 (4)
  • 收藏
  • 关注

原创 Servlet--Servlet进阶API、过滤器、监听器

Servlet初始化过程、ServletConfig每个Servlet都必须由Web容器读取Servlet设置的信息,初始化等,才能生成对应的Servlet实例。对于每个Servlet的设置信息,Web容器都会为其生成一个ServletConfig作为代表对象。在Servlet接口上,定义了与Servlet生命周期及请求服务相关的init,service,destroy三个方法。每一次请求来到容器时

2017-06-05 21:55:02 680

原创 Servlet--浅析会话管理之Cookie、URL重写、HttpSession原理

平常我们在浏览网页的时候,会有一些网站要求我们进行登录,当我们成功登录之后,会发现我们所浏览的所有相关网页都不再需要我们重新登录,这是为什么呢。还有当我们在电商平台进行购物的时候,我们虽然是在同一家电商平台进行购物,但是我们明明是在不同的页面进行的添加购物车的选项,为什么最后我们可以在购物车中找到我们所添加的所有商品呢。其实,这些都是我们在Web后台方面使用了Cookie技术。Cookie简介Coo

2017-06-04 00:17:32 2548

原创 查找--理解哈希算法并实现哈希表

我们喜欢使用数组进行数据的查找,就是因为数组是一种“随机存取”的数据结构,我们根据数组的起始地址和数组元素的下标值就可以直接计算出每一个数组元素的存储位置,所以它的查找时间是O(1),而与数组的个数无关。我们在这个思想的基础上,可以联想到,如果有一种数据结构,让我们在进行关键字查找的时候,也可以像数组一样,进行随机存储,使其时间复杂度从O(n)降到O(1),那就可以大大提高查找的效率。我们的前...

2017-06-01 22:12:17 3256 1

转载 Java--Integer与int的种种比较

本文转载至:残剑如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null。但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的,估计更多的人会头脑一片混乱。所以我对它们进行了总结,希望对大家有帮助。...

2017-05-29 22:51:31 569

原创 Java网络爬虫--正则表达式之详解贪婪、逐步、独吐量词

除过正则表达式的基本概念与特性还有使用方法之外,我们在解析html的时候,如果要进行字符串的匹配,必须还要熟悉正则表达式之中量词的使用法则,今天我们就来谈谈贪婪、逐步、独吐这三种量词的使用。贪婪量词我们先来看一下经常使用的贪婪量词都有哪些: X?: X项目(项目也可以理解为X代表的变量,项目比较准确)出现一次或没有。 X*: X项目出现0次或多次。 X+: X项目至少出现1次。

2017-05-28 23:01:57 1722

原创 Java网络爬虫(八)--使用多线程进行百度图片的抓取

声明:如需转载本篇文章,请进行私聊并在文章首处注明出处,本代码未经授权不可用于获取商业价值,否则后果将由自己承担。这次的需求大概是从百度图片里面抓取任意的分类的图片,考虑到有些图片的资源不是很好,并且由于百度搜索越到后面相关度会越来越低,所以我将每个分类要爬的数据量控制在了600,实际爬下来,每个分类也就是500左右的图片。实现架构先来看一下本次代码的实现架构: htmlparse里面的两

2017-05-21 02:05:27 5381 8

原创 Java网络爬虫(七)--实现定时爬取与IP代理池

注:对代码及思路进行了改进—Java网络爬虫(十一)–重构定时爬取以及IP代理池(多线程+Redis+代码优化)定点爬取当我们需要对金融行业的股票信息进行爬取的时候,由于股票的价格是一直在变化的,我们不可能手动的去每天定时定点的运行程序,这个时候我们就需要实现定点爬取了,我们引入第三方库quartz的使用:package timeutils;import org.quart

2017-04-27 20:22:21 23464 7

转载 C语言--通过结构体成员的地址获取结构体变量的地址

注:本文转载自:http://blog.csdn.net/zhanshen2015/article/details/51500757C 语言的结构体可以将不同类型的对象聚合到一个对象中,在内存中,编译器按照成员列表顺序分别为每个结构体变量成员分配内存,但由于 C 的内存对齐机制以及不同机器间的差异,各个成员之间可能会有间隙,所以不能简单的通过成员类型所占的字长来推断其它成员或结构体对象的地址。 如

2017-04-21 13:20:20 11518 3

原创 操作系统--内存中的程序映像(printf函数的运算顺序)

先来看看c语言printf函数运算顺序为什么从右到左?从汇编角度来看,函数的参数总是从高地址压到低地址,而访问参数的时候又是通过基址加偏移量来的,所以按照逻辑,偏移量为0对应第一个参数,第一个参数在低地址,低地址最后压入栈,相对应的函数最右边的参数也就最先计算,并先压入栈。一个由C/C++编译的程序的内存分布分为以下几个部分:1、 栈(stack):也是我们所说的堆栈,是由编译器自动分配释放,用来

2017-04-20 20:22:35 1079

原创 MySQL数据库--MySQL数据库语句、坑点总结

MySQL实用语句操作1.清空数据库表的同时将id的增长顺序重新设为从0开始:TRUNCATE TABLE 数据库表名2.在知道数据库原密码的时候进行修改密码:mysqladmin -u root -p password "new password"3.将选定数据库导出至sql脚本:(只导出表结构)mysqldump -u root -p -d "数据库名" > "sq

2017-04-14 18:04:23 1584 6

原创 Java--final关键字

final数据在Java中,编译器可以将final常量代入任何可能用到它的计算式中,也就是说,可以在编译时进行计算,这减轻了一些运行时的负担。final常量必须是基本类型。对于对象引用,final使引用恒定不变。一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象。然而,对象其自身却是可以被修改的,既是final又是static的域,将用大写表示,并使用下划线分割各个单词。...

2017-04-09 00:14:55 507

原创 Java网络爬虫(六)--JSON数据的解析

有时候,我们抓取下来一个html页面,发现浏览器页面可以显示的东西在html源码中却没有,这时候我们就要考虑服务器是以JSON格式将这部分数据发送到客户端的,对于这种情况的处理方式我们一般是在chrome的开发者工具中找到对应的JSON包,然后构建其URL,对JSON数据所在的源地址进行访问,然后使用一些工具对JSON数据进行解析,从而得到我们想要的东西。阿里巴巴FastJson是一个Json处理工

2017-04-02 20:42:45 7349

原创 Java--this关键字

this调用所操作对象的引用问题1:假如统一类型的两个对象,分别是a和b,其中还有一个方法peel(),那么我们怎么才能分辨这个方法到底是被a调用还是被b调用呢?其实,在这期间编译器做了一些事后工作,它暗自把“所操作对象的引用”作为地一个参数传递给了peel()。假设你希望在方法的内部获得对当前对象的引用,就可以使用this关键字。代码如下:class Banana { ...

2017-03-31 19:04:41 721

原创 Java网络爬虫(五)--使用Jsoup的select语法进行元素查找

使用Jsoup进行元素的查找有两种方法。有使用DOM方法来遍历一个文档,也有使用选择器语法来查找元素,而后者类似于CSS或jQuery的语法来查找和操作元素。对于这两个方法到底使用哪个感觉好上手我觉得因人而异,在我尝试了两种方法之后我还是选择select,所以我就只总结select的语法使用了,对于DOM方法感兴趣的,可以看一下这一篇博客:【使用JSOUP实现网络爬虫】使用DOM方法来遍历一个文档,

2017-03-30 20:33:34 25587 7

原创 Java网络爬虫(四)--使用Jsoup解析html

在前面几章,我已经对HttpClient的基本使用进行了总结,而且对于一般性的需要登录的网站大家怎么进行模拟登录也有了一定的了解,也就是说,通过前几篇的学习,你已经学会了通过HttpClient进行网站的访问,并且知道怎么返回网页的html,可是爬虫的需求一般都是在html中提取我们想要的信息,我们得到了网页的html,现在该怎么办呢?使用Jsoup,对html进行解析,可以说html的结构在Jso

2017-03-30 18:26:41 3466 3

原创 Java--一些小问题

赋值将一个对象赋值给另一个对象,实际是将“引用”从一个地方复制到另一个地方,也就是倘若c=d,那么c和d都将指向原本只有d指向的那个对象。方法参数传递将对象作为实参传递至方法中,实际上传递的是一个引用,而并不是在作用域内复制参数的一个副本,所以说如果我们在方法内通过引用改变其中的值,实际改变的是方法之外的对象。==与equals“==”和“!=”比较的都是对象的...

2017-03-28 22:41:58 707 1

转载 Java网络爬虫(三)--如何判断自己的模拟登录是否成功

“怎么判断模拟登陆是否成功”我最开始的时候也问过这个问题,当时对所有流程都还不熟悉,而且写的代码没一个能成功的,就给自己提了一大堆的问题,也在论坛上发表提问,在这个过程中,我遇到了很多的情况,好多都能作为判断的依据,这里跟大家分享一下:1.代码不报错但是完全没有输出的,这是没得怀疑的了,有可能是你代码中的逻辑错误或者网址输错或者根本不能访问网站等等,这些是隐式的错误,而像语法错误,关键词拼写错误等等

2017-03-28 17:48:33 4774

原创 Java网络爬虫(二)--HttpClient设置头部信息与模拟登录策略

在网络爬虫中我们经常需要设置一些头部信息,使我们进行网页抓取的行为更加像浏览器的行为,并且我们有时需要将头部信息设置正确,才能得到正确的数据,要不然有可能得到和浏览器所展示的页面有出入的信息。设置头部还可以进行模拟登录,我们可以设置cookie,来得到登录后的页面,有些时候一些网站需要进行登录才能进行一些操作,并且有可能登录后的网站和没有进行登录的所产生的数据有所不同,这个时候我们就有必要添加头部c

2017-03-26 23:44:56 17229 21

原创 Java网络爬虫(一)--使用HttpClient请求资源并抓取响应

觉得自己是时候该沉淀了。。。说起来,自学Java网络爬虫也有两个月了,期间走了很多弯路,我也不仅对Java和Python这两们同样都能搞爬虫的语言但与之相关的文档与书籍的差别感到惊讶,对于Java来说,目前我知道的有关介绍Java网络爬虫这方面的书籍只有《自己动手写网络爬虫》,对于其中的内容,我觉得是晦涩难懂,不适合入门,并且内容相对来说感觉有点过时,我觉得我必须开个博客专栏,对于之后想要入门Jav

2017-03-26 21:55:26 8749 14

原创 Java网络爬虫--HTML DOM(HTML 基础)

最近一直在学习Java方面的网络爬虫,然后要使用Jsoup解析html页面(htmlparse已经不建议使用了),但是对于Jsoup中的很多类和方法都很疑惑,查阅相关资料后发现使用Jsoup之前首先要了解一些HTML DOM方面的知识,就决定将网上的HTML DOM相关知识进行汇总,方便和我有相同兴趣爱好的伙伴学习。不管是学习网络爬虫还是HTML DOM,都需要有一定的HTML基础,我推荐大家看看H

2017-02-27 23:16:24 5717

原创 Java--运用反射

Java在需要使用某个类的时候才会将.class文档进行载入,在JVM产生java.lang.Class实例代表该文档,从Class实例开始,就可以获得类的许多类型。.class文档反应了类的基本信息,因而从Class等API取得类信息的方式就称为反射。Class与.class文档Java真正需要某个类时才会加载对应的.class文档,而非程序启动的时候加载所有的类,因为大多数用户只会...

2017-02-22 14:19:09 641

原创 Java--NIO2文件系统

JDK7提出了NIO2文件系统API,存取了默认文件系统进行各种输入/输出的API,既可简化现有的文档输入/输出API操作,也增加了许多过去没有提供的文件系统存取功能。NIO2架构在JDK7出现之前,常要针对特定文件系统攥写特定程序,不仅攥写方式没有标准,针对特定功能攥写程序也会增加应用程序开发者的负担。NIO2文件系统API提供一组标准接口和类,应用程序开发者只要基于这些标准...

2017-02-20 18:27:22 4105

原创 Java--初识NIO

NIO(New IO)顾名思义,即使高级的输入/输出处理API。NIO概述InputStream和OutputStream的输入/输出,基本上是以字节为单位进行处理的,而且是整块数据读入后又整块数据写出,比如:public void dump(InputStream src, OutputStream dest) throws IOException{ try(In...

2017-02-17 22:51:50 1093

转载 正则表达式--关于Java中Pattern.compile函数的相关解释

Pattern.compile函数:Pattern Pattern.compile(String regex, int flag)flag的取值范围如下:Pattern.CANON_EQ,当且仅当两个字符的”正规分解(canonical decomposition)”都完全相同的情况下,才认定匹配。比如用了这个标志之后,表达式”a\u030A”会匹配”?”。默认情况下,不考虑”规范相等性(...

2017-02-13 16:13:22 9793

原创 Java--整合数据库

前言 这部分的知识如果在了解一些数据库的基本知识与操作之后学习的话会比较有感触,所以如果你没有数据库的基础,我建议大家先阅读一下我推荐的这篇文章,对我们的学习是非常有必要的(使用MysQL数据库)。MySQL数据库使用基础(30分钟入门) 现在我们来说一下正题,在Java中,如果我们要使用数据库应该怎么办?别担心,Java给我们提供了JDBC的标准接口,而它就是专门用来执行S...

2017-01-15 23:45:57 2842

原创 Java并发--初识线程与基本使用

从我第一篇Java学习笔记系列开始,到现在所写的程序全是单线程程序,也就是程序从main()进入到结束只有一个流程,有时候我们需要设计程序拥有多个流程,也就是我要说的多线程(multi-thread)程序。线程简介 我们先来看一个龟兔赛跑的例子(单线程实现): 题目要求: 设计一个龟兔赛跑游戏,赛程长度为10歩,每经过一秒,乌龟前进一步,兔子则可能前进两歩也...

2017-01-13 16:58:01 3128 2

原创 Java--输入/输出

InputStream与OutputStreamInputStream与OutputStream初探 InputStream与OutputStream可以将一切输入来源与输出目的地进行抽象化,就算不知道具体的输入来源和输出目的地,我们也可以进行数据的读取与写入,这就是这两个API的主要功能。代码实例:import java.io.*;public class IO...

2017-01-11 18:28:58 804

原创 Java--Collection与Map

使用Collection收集对象Collection架构 在Java SE中,我们有各种各样的API可以使用,数量庞大,种类繁杂,我们要熟用这些API,就需要去了解他们的继承与接口操作,知道在何时该用哪个类,而不用死背API。为此,我们必须熟悉他们的接口继承架构设计。所以在学习前,我们来看一下Collection的继承接口架构: 从这个图片中,我们可以很清晰的看出每个...

2016-12-10 12:13:53 718

原创 Java--深入解读equals与hashCode

何时需要重写equals() 当一个类有自己特有的“逻辑相等”概念(不同于对象身份的概念)。设计equals() [1]使用instanceof操作符检查“实参是否为正确的类型”。 [2]对于类中的每一个“关键域”,检查实参中的域与当前对象中对应的域值。 [2.1]对于非float和double类型的原语类型域,使用==比较; [2.2]对于对象引用...

2016-12-06 18:05:07 7249 4

原创 Java--浅谈异常处理

我们在写程序的时候经常会出现许多意想不到的错误,在Java中,错误也是被包装成了各种子类实例。只要我们能捕捉到包装错误的对象,就能做出对应的处理方式。语法与继承架构使用try,catch Java中的所有错误都会被打包称对象。我们可以尝试(try)捕捉(catch)代表错误的对象,然后做一些处理。例如下面的代码,我们将输入几个数字并打印它的平均值,Scanner...

2016-12-02 17:25:51 831

原创 Java--接口与多态

其实,我们在Java中,提倡用的是接口而不是继承,很多书上都说“别滥用继承”,那么什么是接口呢,他和继承,多态有什么关系?何谓接口 Java是一门面向对象的语言,它尝试着把所有问题都抽象为一个实例,也就是一个对象。Java中的类就是一种”类”,可以看做是一个种类。既然是对象,我们可以把它抽象为一个人,而我们在前面说的继承就是子类继承父类,可以看做我们继承了父母的基因,而...

2016-11-30 23:54:16 1045

原创 Java--继承与多态

何谓继承 继承的基本概念就不在赘述。多态与is-a 在Java中,子类只能继承一个父类,子类与父类之间会有is-a的关系,我们称之为“是一种”的关系。我们要理解多态,必须知道我们操作的对象是“哪一种”东西。我们可以将自己当做编译程序,检查语法的逻辑是否正确,方法是从=号右边往左读,右边是不是左边的一种呢(右边的类是不是左边的一种子类呢)。 有效的理解多态有助...

2016-11-26 14:47:17 1172

原创 Java--解析JDK与IDE(Linux下Java环境变量的配置)

最近开始学习Java,觉得比之前学习的c语言有趣的多,决定用博客记录我一天天的成长。。Java的学习我都是在Linux下进行的! 本片博客配置Java环境变量的部分建议大家先学习一下Linux下的shell的相关知识,对环境变量有个认识,然后配置环境就简单许多,也不至于死记硬背,然后强调一下,我的环境变量和你们不一样,每个人的环境都有可能不同,但学习了shell之后会发现语法和怎么...

2016-10-23 14:01:58 1368

原创 线性表--队列

概述 队列是一种限定性线性表,广泛应用于计算机系统中。它只许在表的一端进行插入,在另一端进行删除。由于它的操作特性与我们平时排队一样,体现出了先进先出的特点,所以把这种数据结构称为队列。队列的数据结构#define MAXSIZE <最大元素数>typedef struct { datatype data[MAXSIZE]; //队员的存储空间 int fron

2016-10-17 20:42:50 889

原创 链表排序--冒泡法

对于排序,相信大家都不陌生,对于数组来说,我们基本能熟练应用许多排序,像冒泡,选择,快排等等。对于链表的排序,在上学期做课程设计的时候忽略了这个问题,然后在最近才进行了实际的操作,结果发现问题还挺多的,实际解决起来学到了一些东西,决定给大家分享一下。排序的代码首先,给大家先把链表排序的代码附上,随后我会说明其中运行的过程,还有我当初写的时候,碰到的问题。void buttle_sort(node

2016-10-17 17:43:55 3212 3

原创 线性表--顺序表

最近开始学习数据结构与算法,一直认为数据结构与算法是值得一个程序员用一生去研究的东西,所以决定每次所学所得记录下来,加深自己的印象。顺序表什么是顺序表 我们知道在计算机中我们可以用不同的方法来存储数据,最常用的就是顺序存储,顺序存储指的是我们在计算机内存中用一块连续的地址内存空间按顺序存储线性表的各个数据元素。这就是顺序表。那么,我们立马能想到的一个顺序表是什么呢?没错,就是我们最常使用的数组

2016-10-13 23:50:53 979

原创 Linux库的创建和使用--动态库

在LInux库的创建和使用–静态库中,我们已经知道了库的概念以及静态库的创建和使用方法。接下来,我们就来讨论一下动态库是如何实现的。动态库的创建和使用shell下创建和使用 与静态库的创建和使用比较起来,动态库的创建和使用就方便多了,直接在编译函数库源文件时加上-shared选项就可以,这样生成的可执行程序便是动态链接库,从某种意义上来说,动态链接库就是一种可执行程序。如图: 或者如下图:

2016-10-12 21:25:42 737

原创 Linux库的创建和使用--静态库

Linux库的概念 库是一种软件组件技术,库里面封装了数据和函数,提供给用户程序调用。库的使用可以使程序模块化,提高程序的编译速度,实现代码重用,使程序易于升级。 Windows本身提供并使用了大量的库,包括静态链接库(.lib文件)和动态链接库(.dll文件)。类似的,Linux操作系统也使用库。Linux系统中,通常把库文件存放在/usr/lib或/lib目录下。Linux库文件名由前

2016-10-12 19:19:55 639

转载 为什么有了互斥锁还要条件变量(二者的不同)

一。互斥量和条件变量简介 互斥量(mutex)从本质上说是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。对互斥量进行加锁以后,任何其他试图再次对互斥锁加锁的线程将会阻塞直到当前线程释放该互斥锁。如果释放互斥锁时有多个线程阻塞,所有在该互斥锁上的阻塞线程都会变成可运行状态,第一个变为运行状态的线程可以对互斥锁加锁,其他线程将会看到互斥锁依然被锁住,只能回去再次

2016-08-04 15:58:28 3840 3

原创 进程之写时拷贝技术

这几天看了一点进程的知识,也会创建一个或几个子进程了,在这里,我很想和大家分享一下,在创建子进程的时候,我们现在所说的写时拷贝技术。 我们知道,在我们fork一个进程之后,系统就会给我们创建一个子进程,此时,子进程会继承父进程几乎所有的资源,并且系统会给子进程分配一个新的物理空间,但实际上,子进程和父进程是用的同一个代码段的,在fork之后子进程只是复制了父进程的数据段,堆栈段,但即使这样,也还

2016-08-01 21:00:55 1126

空空如也

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

TA关注的人

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