- 博客(12)
- 资源 (2)
- 收藏
- 关注
转载 Java垃圾回收机制
说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾名思义,垃圾回收就是释放垃圾占用的空间,那么在Java中,什么样的对象会被认定为“垃圾”?那么当一些对象被确定为垃圾之后,采用什么样的策略来进行回收(释放空间)?在目前的商业虚拟机中,有哪些典型的垃圾收集
2016-07-13 17:01:05
316
原创 多线程实现百度图片爬虫
由于百度图片采用异步加载的方式,因此不能通过静态标签匹配找到图片的url,可考虑通过向服务器发送ajax请求的方式下载图片。 打开360浏览器或Chrom,按F12,切换到Network标签,然后将网页向下拉,观察发现地址栏的网址并没有发生变化,而图片在增加。 可以发现在下拉过程中会不断出现avatarjson请求,点开请求头信息,分析两个请求URL:http:
2016-07-07 15:43:57
5191
2
原创 对接口、继承、组合、多态的理解
面向对象设计的原则1、针对接口编程,而不是针对实现编程2、优先使用对象组合,而不是类继承继承 当子类继承父类时,子类包含了父类定义的所有数据和操作,子类的实例包含了所有子类和父类定义的数据,并且能完成子类和父类定义的所有操作。 类继承是通过复用父类功能而扩展应用功能的基本机制。 父类的访问权限问题:(Java编程思想P116) 1、子类不能访问父类的priv
2016-02-28 19:12:36
1859
原创 经典算法设计:动态规划(2)字符串匹配
1字符串匹配问题 在一篇英文文章中查找指定人名,人名使用26个字母(可以是大写也可是小写),空格及两个通配符(*或?),通配符*表示零个或多个任意字母,通配符?表示一个任意字母,如J*Smi??可以匹配John Smith.分析:从开始到结尾,到第n+1个字符是否匹配成功取决于到第n个字符是否匹配成功和第n+1个字符能否匹配,也就是收益只取决于当前的状态和下一个决策量,满足无后效
2015-12-30 22:04:41
4561
原创 XML基础:用途及语法规范
一、概述 XML(Extensible Markup Language)一种扩展性标识语言,用户能够自己创造标识,可以储存、共享数据。 XML不是可执行的程序,只是一种数据的载体,其最大的特点就是可扩展性,当使用XML表示某个数据时用户可以根据需要组织任意符合XML规范的形式,且标记的名称可由用户根据需要任意指定。二、用途 1存储数据 XML最根本的用途,对于一
2015-12-28 20:45:20
611
原创 经典算法设计:动态规划(1)
1引言动态规划是解决多阶段决策问题的一种数学方法。多阶段决策问题就是对系统运行过程中若干相关阶段的每一阶段都要作出决策并使整个过程过到最优。阶段既可按时间来划分,也可以按空间或其他特征来划分,且各阶段是相互联系影响的,某一阶段即为一下阶段的初始状态。解决动态规划问题的方法就是按照最优性原理把问题归结为一组递推关系式,依次递推从而找到问题的最优解。2 动态规划的基本原理 1)最优性原理
2015-12-18 20:01:04
972
原创 Java多线程—原子性与可视性
一、定义 1 原子性 原子是发生化学反应的最小单位,顾名思义即为不可再拆分。原子操作是不能被线程中断机制中断的操作,一旦操作开始,则它一定在可能的切换到其他线程之前执行完毕。简而言之就是不能被中断的操作,如赋值或return。 (1)对于读写除long和double之外的基本类型变量的简单操作,可以保证它们的原子性来操作内存,但JVM可将long和double这样的6
2015-12-15 16:20:35
2145
原创 字符串左右移动(java实现)
给定一个字符串,这个字符串为*号和26个字母的任意组合。现在需要把字符串的*号都移动到最左侧,而把字符串中的字母移动到最右侧并保持相对顺序不变,要求时间复杂度和空间复杂度最小。分析:用point表示尾部的第一个*的位置, let表示point之前的第一个字母的位置,依次交换point和let指向的元素,再找下一组*和字母的序列,直到point和let有一个指向字符串的首地址。
2015-11-19 20:44:12
3616
原创 Java 文件操作
文件(File)是最常见的数据源之一,在程序中经常需要将数据存储到文件中,也经常需要根据需要从指定的文件中进行数据的读取。 1 文件的路径 每个文件以一个文件路径和文件名称进行表示,在需要访问该文件的时,只需要知道该文件的路径以及文件的全名即可。在不同的操作系统环境下,文件路径的表示形式是不一样的,例如在Windows操作系统中一般的表示形式为C:\windows\system,
2015-04-10 15:32:52
503
转载 Java数据结构------ArrayList和LinkedList的区别
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因
2015-04-07 12:52:43
473
原创 数据结构Map—java描述(1)
Map是一种按照键值对(key-value)的形式进行数据存储的数据结构,描述的是一种映射关系。键(key)即所存放数据的编号,值(value)即键所对应的值对象。键值具有唯一性,每个键只能映射一个值对象,同时键不允许重复。 常用的方法: (1) size() :获取Map尺寸,即Map所包含的key-value对总数; (2) pu
2014-12-19 15:26:26
876
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人