关闭

开源项目Egg简介

Egg 简介Egg 它一个通用高效的爬虫,希望它能够替大家实现一些需求,更希望能为开源做出自己的贡献。目前,还在成长,在我的构想下,它还需要添加很多功能,我会继续完善。有任何疑问以及需求请以与作者交流:630841816@qq.comEgg是一个通用,多线程的Java爬虫框架。 Egg简单小巧,api非常简单,容易上手。 Egg性能不错,并实现多种请求方式。 能够比较快的响应使用者的需求 速度说...
阅读(607) 评论(0)

深入理解jvm之一【内存区域】

文章开始之前,首先需要申明,本系列文章讨论的是HotSpot VM,文章中多数观点基于《深入理解Java虚拟机:JVM高级特性与最佳时间   周志明》,笔者如有理解错误,欢迎指正。 在开始探索jvm虚拟机之前,不得不对jvm的内存区域进行讨论,依旧先附上图表: 程序计数器 程序计数器,也能叫做PC寄存器,从名字上来理解可能会把它想成一个计数的内存区域,但是,了解汇编的人会知道...
阅读(710) 评论(0)

常用算法之Trie【字典树,前缀树】

Trie中文名又叫做字典树,前缀树等,因为其结构独有的特点,经常被用来统计,排序,和保存大量的字符串,经常见于搜索提示,输入法文字关联等,当输入一个值,可以自动搜索出可能的选择。当没有完全匹配的结果时,可以返回前缀最为相似的可能。 其实腾讯的面试题有一个:如何匹配出拼写单词的正确拼写。其实用匹配树非常合适。 基本性质: 1.根节点不含有字符,其余各节点有且只有一个字符。 2.根节点到某一节...
阅读(1062) 评论(0)

常用算法之排序算法四【归并排序】

归并排序是将排好序的序列逐步合成一个大序列的算法,从字面上来分析,主要分为归并和排序。 算法描述: 1.申请一块空间,大小为两个排好序序列长度之和,用来存放归并后的序列。 2.设两个指针,分别指向两个已经排好序的序列的起始地址。 3.比较两个指针指向位置的值大小,根据升序降序,选择较小值或者较大值存储在合并空间内,并将相应指针后移。 4.重复3操作,直至指针移至序列尾部。 5.将另一个...
阅读(691) 评论(0)

从源码分析java集合【HashMap】

Map如我们所知,存储的是键值对,它的基本单位是实现了Map.Entry的Node,Node 的属性如下: static class Node implements Map.Entry { final int hash; final K key; V value; Node next; } 看定义就能知道它的作用了,能够看到它存储...
阅读(637) 评论(0)

从源码分析java集合【ArrayList】

ArrayList的内部实现其实就是我们熟悉的数组,它继承了AbstractList,实现了List,RandomAccess,Cloneable和Serializable接口。 RandomAccess接口是说明实现类是支持快速随机访问的,它的随机访问的性能非常好,通常它的List的实现类: for (int i=0, n=list.size(); i < n; i++)...
阅读(510) 评论(0)

从源码分析java集合【LinkedList】

LinkedList是一个双端链表,他继承了AbstractSequentaiList,实现了List,Deque,Cloneable,和Serializable接口。Deque是双端队列的接口,LinkedList有记录头的 first 和 尾的 last,所以我们可以对队列的两端进行操作。它还实现了Cloneable和Serializeble接口,它们分别是实现队列进行拷贝和序列化的接口。...
阅读(374) 评论(0)

常用算法之排序算法三【快速排序】

快速排序是东尼·霍尔在1962提出的划分交换排序,并采用一种分治的策略。在这,我们先总结一下:快速排序 = 划分交换排序 + 分治。然后我们在一一介绍他。 划分交换排序...
阅读(350) 评论(0)

常见算法之排序算法二【插入排序】

什么是插入排序!简单的介绍一下它的思想(假设为升序):在已经排好序的数组内,插入新的元素,从后往前找,当找到某个比它小的数,则停止,并将它插入这个与上一个数之间。先给大家看个图: 具体算法描述如下: 1.从第一个元素开始,因为只有一个元素,所以它有序。 2.拿它后面的一个元素和它进行比较。 3.它后面的元素比它大,把他往后移,并把它后面的元素赋给它原来的位置。 4.重复3的动作,...
阅读(452) 评论(0)

常见算法之排序一【冒泡排序】

冒泡排序是我们编程刚入门基本都会接触的一个排序算法,以来它比较简洁,也比较形象。 它的思想就是,让每一个相邻的元素进行比较,假如他们不是按照升序或降序,则交换他们位置,重复这个操作,最大或最小的元素就像泡泡一样,升到了最上面,对剩下的元素重复这个操作,所有的元素就可以排好序了。 它的运作方式: 1.从头向后比较,假如相邻的元素之间的大小不是按升序或降序则将他们进行比较,若不是指定规则,则交换...
阅读(475) 评论(0)

常见算法之全排列 全组合

全排列算法是一种比较常考的算法,他的做法也比较多样。 首先我们来看看最符合我们直观思考的,思路是这样的:假如没有重复元素时,传入一个数组A,并插入到另外一个数组B中,假如B中已经包含这个元素,则跳过,否则插入数组B。我们来看看具体代码: public static void permutation1(final String str, String buffer){ if (s...
阅读(466) 评论(0)

java 多线程再探

我们知道线程能通过继承Thread和实现Runnable接口来实现,但是,他们都有一个弊端,就是run之后不能有返回值,当然我们可以通过向线程中传入变量的方式解决,但是貌似又不总是那么可靠,还好,java给了我们另外的接口Callable和Future. 我们先来看看他们的结构: public interface Callable{ V call() throws Except...
阅读(411) 评论(0)

java 多线程初探

一直都很想写关于多线程的东西,以来可以巩固巩固自己的知识,而来可以看看自己的掌握的水平,因为一直都觉得这方面挺有意思的好了。废话不多说,入正题。 java多线程,我们首先想多的是什么。进程,Thread,Runnable,start,run... 那我们就先从他们入手了。为什么会想到进程呢。以为一直都是多线程多进程的说。那他们有什么区别。 进程:进程是程序的运行和操作系统分配资源的最基本的独...
阅读(436) 评论(0)

浅谈java集合类(三)【Set,Queue】

Set是一个有趣的集合。它看起来有点像List,实际操作却有点像Map。Set也是记录一系列值的集合,但是呢,它和Map的key相同,它不能重复,否则会插入失败。所以呢,我们经常可以看见在Map中可以调用keySet()。说到这呢,它貌似就已经能做很多事了。假如你有兴趣做网络爬虫的话,有一个过滤重复链接的问题就不得不考虑了。Set貌似就是一个非常简单的解决办法了,我们可以用它来去重。 好了,我们...
阅读(570) 评论(0)

关于java对象初始化的一点有意思的东西

这篇文章实际的内容并没有多少,或者说对实际编程影响并不大,主要是为了可能的笔试面试之类的,还有就是有点好玩而已。 有一天我在书上看到很有意思的代码: class A{ { System.out.println("----->A的初始化块"); } static { System.out.println("----->A的静态初始化...
阅读(404) 评论(0)
23条 共2页1 2 下一页 尾页
    个人资料
    • 访问:12819次
    • 积分:348
    • 等级:
    • 排名:千里之外
    • 原创:23篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    最新评论