摘要: JVM是java知识体系的基石之一,任何一个java程序的运行,都要借助于他。或许对于我这种初级程序员而言,工作中很少有必要刻意去关注JVM,然而如果能对这块知识有所了解,就能够更清晰的明白程序的运行机制,从而写出更为健壮的代码,也能更好的理解java中很多处理方式的原因。以下是个人读书后整理的知识点,同时参考并引用了以下博客:JVM学习笔记JVM性能优化JVM调优总结Java虚拟机学习 一、JVM内存模型 JVM典型的内存模型如下图: 程序计数器线程私有 学过组成原理的对这个一定很亲切,这里相当于JVM版的,作用是当前线程所执行的字节码的行号指示器,通俗讲就是记录当前正在执行字节码的... 阅读全文
posted @ 2014-03-02 01:27 oO脾气不坏Oo 阅读(1410) 评论(2) 推荐(2) 编辑
摘要: 一、问题 java中String的split()是我们经常使用的方法,用来按照特定字符分割字符串,那么我们看以下一段代码: public void splitTest() { String str = "aaa|bbb|ccc"; String[] array = str.split("|"); System.out.println(Arrays.toString(array)); } 是不是感觉很简单,就是吧str按照"|"分割,结果就是[aaa,bbb,ccc]嘛。如果你这么想,那么以后在用这个方法时你可能会犯下大错,把程序跑起来 阅读全文
posted @ 2014-02-25 23:58 oO脾气不坏Oo 阅读(4976) 评论(1) 推荐(3) 编辑
摘要: 今天要在百度文库下一个文档,由于之前测试,清掉了cookies,所以下载文档时突然提示登陆(之前一直都是自动登陆,记不住密码啊……),试了半天才想起来密码,就打算在分析下。 要说自己对百度文库也算缘分不浅,当年大二的时候我们工作室接到一个项目,就是采集互联网的各类电子文档,以供某公司建立文库。当时百度虽说还上线不到一年,但是却已经很有名气,因此也是我们的重点关注对象。下边开始分析(只看下载分析直接看(二)就行了): 一、文档在线展示的实现方式和采集策略 在线文库普遍采用的技术有两大类:一是将文档转为swf文件,然后页面用flash展示;二是按照文档原有结构,生成html结构展示。就我们... 阅读全文
posted @ 2014-02-23 22:04 oO脾气不坏Oo 阅读(3037) 评论(6) 推荐(1) 编辑
摘要: 毕设大部分功能已经完成,目前还在完善一些辅助功能,其中数据库管理就是一个重点,这一主要介绍通过Ext显示数据库的表。一、服务器端的实现 由于之前已经有过实现的经验,因此服务器端的实现已经轻车熟路,下边先介绍这一块。 其实从面向对象的角度来说,特别是采用了SSH框架之后,我们可以直接通过hibernate获取对应表对象的集合,然后将集合发送至前台交给Ext处理。这样看起来挺不错,而且实际实现也不难,但是你仔细查看就会发现个很不爽的事情,每次发送的集合包含了大量的无用数据(甚至绝大多数的数据),为什么会这样呢?表关联的原因。hibernate生成的model会引入关联表的对象(或对象集合)... 阅读全文
posted @ 2013-05-03 01:23 oO脾气不坏Oo 阅读(3213) 评论(4) 推荐(1) 编辑
摘要: 时隔这么久,继续开写。本文系上一篇的补充:爬虫部分技术要点浅析。 本次将主要讨论上次提出的后两个问题:如何处理抽取出来的Url。3、如何处理抽取出来的Url(爬取策略)? 所谓爬取策略,就是网络爬虫从种子网址开始,应该按照怎样的顺序向下爬取。以下是几种典型的爬取策略(既然是浅析,这里只做介绍,想要深入了解请自行查阅资料): (1)深度优先策略 看到这个名词估计多数人立马都会明白,该策略的实现思路采用的是图的深度遍历。事实上当我们通常把网络看做一个图,网络中每个页面看做图中节点,这样在考虑遍历的问题时,很自然的就会使用图的遍历方法(其实也就是树的深度优先遍历)。看下图: ... 阅读全文
posted @ 2013-05-02 00:24 oO脾气不坏Oo 阅读(2525) 评论(6) 推荐(3) 编辑
摘要: 为了实现在用户误操作后能够对数据进行修正,打算添加一个数据库管理功能,主要实现对数据表的查询和执行sql语句。费了半天功夫完成以后查询有的表数据正常显示,但是个别表出现如下错误:No Dialect mapping for JDBC type: -1 意思显而易见:没有方言能够与JDBC类型-1映射。难道我数据库字段用了特殊类型,而hibernate不支持?百度之后找到很多同样错误,有的分析发现对于长度过大的varchar(LONGVARCHAR )映射时会报这个错误,检查数据库发现这些表中都是用了text类型,应该就是这个原因。修改方法一般有两种:一是修改字段类型,二是扩展自定义方言。... 阅读全文
posted @ 2013-05-01 12:31 oO脾气不坏Oo 阅读(3223) 评论(0) 推荐(0) 编辑
摘要: 在毕设过程出,多次遇到需要处理日期格式的地方,而今天需要根据周次编号、该周起始日期、周数生成之后每一周的起止时间,以用来判断当前系统所处阶段,因此打算花点时间写个简单的日期操作类。其中主要完成String、Date、Timestamp(默认情况下hibernate对于Mssql的date字段生成的Timestamp类型,对于mysql却生成的Date)相互转换,获取当前日期,计算当前日期相差某个天数后的日期(使用GregorianCalendar很容易实现)。代码如下:package com.sxpt.util;import java.sql.Timestamp;import java.t.. 阅读全文
posted @ 2013-04-16 00:19 oO脾气不坏Oo 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 这几天状态不佳,杂事太多有些烦心,这一次就少讲点吧。 本次将主要讲Extjs树形菜单的实现。在很多系统里边,树形菜单被广泛应用,主要因为其有清晰的层次结构。记得最早见到的树形菜单是通过<ul><li>实现的,非常简单。之后用C#的现成控件拖拽了一个,当时还沾沾自喜。再后来在学习师兄的一个通用后台代码时,看到了梅花雪,当时感觉太强大了,每个节点都可以存在数据库,并且能够进行自定义。之后接触到一些UI库之后,更是见到了更强大的树形菜单。 或许实现一个简单的树形菜单对于不少人并非难事,但是想要实现一个功能比较完善的确要花不少功夫。好在目前有很多现成的供我们使用,而Extjs也 阅读全文
posted @ 2013-04-16 00:04 oO脾气不坏Oo 阅读(2192) 评论(1) 推荐(3) 编辑
摘要: 本来打算昨晚发的,结果园子又迁移...... 网络爬虫(Spider或Crawler),顾名思义,就是在互联网上爬行的虫子,那么这只虫子为什么要在网上爬行呢?很简单:收集信息。在互联网时代,谁掌握了信息谁就把握了主动权。曾经我一直觉得做搜索的公司都是慈善家,他们自己花钱为大众服务,真是太高尚了,直到我知道谷歌每年大半的盈利来自广告,我才明白那句名言——互联网上最昂贵的东西就是免费,因为它能让你轻易的接受,却无法舍弃。(我想多数人离开了搜索引擎,将在网络上寸步难行) 好吧,扯多了,我们先看下下图。我们可以很容易的看出,网络爬虫的根本任务就是从互联网抓取数据,存入数据库或本地文件系统以供使... 阅读全文
posted @ 2013-04-13 09:17 oO脾气不坏Oo 阅读(3381) 评论(5) 推荐(1) 编辑
摘要: 晕啊,今天不顺啊,白天毕设因为一个小问题耽误了很长时间,刚写了一半了突然浏览器又卡死,打开后又待重新写。。。。。。1 创建项目 这个不多说,新建个Web project都会吧。2 导入Extjs文件 在WebRoot下新建ext文件夹,将下载的ext包中如下文件拷入:3 创建所需文件夹及文件 按照如下结构创建文件夹及文件: 绿色框住的为本次必须文件。4 编写代码 首先编写index.jsp,这是Extjs的入口页面(其实准确地说Extjs在运行过程中只存在这一个页面,其他的都是其用js生成的组件而已,其本质是div+css),在其内部引入Extjs库文件和样式文件:<!DOCTY... 阅读全文
posted @ 2013-04-12 00:56 oO脾气不坏Oo 阅读(3696) 评论(8) 推荐(3) 编辑