java 使用正则表达式从网页上提取网站标题

如何从网页上抓取有价值的东西?看懂了下面的程序(非常简单),想从网页上抓取什么信息(标题、内容、Email、价格等)就能抓取什么信息。packagecatchhtml;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.net.MalformedURLException;importjava.net.URL;importjava.util.ArrayList;importjava.util.List;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassGetHtmlTitle{publicGetHtmlTitle(StringhtmlUrl){System.out.println("/n------------开始读取网页("+htmlUrl+")-----------");StringhtmlSource="";htmlSource=getHtmlSou...

***JAVA多线程的应用场景和应用目的举例

多线程使用的主要目的在于:1、吞吐量:你做WEB,容器帮你做了多线程,但是他只能帮你做请求层面的。简单的说,可能就是一个请求一个线程。或多个请求一个线程。如果是单线程,那同时只能处理一个用户的请求。2、伸缩性:也就是说,你可以通过增加CPU核数来提升性能。如果是单线程,那程序执行到死也就利用了单核,肯定没办法通过增加CPU核数来提升性能。鉴于你是做WEB的,第1点可能你几乎不涉及。那这里我就讲第二点吧。--举个简单的例子:假设有个请求,这个请求服务端的处理需要执行3个很缓慢的IO操作(比如数据库查询或文件查询),那么正常的顺序可能是(括号里面代表执行时间):a、读取文件1  (10ms)b、处理1的数据(1ms)c、读取文件2  (10ms)d、处理2的数据(1ms)e、读取文件3  (10ms)f、处理3的数据(1ms)g、整合1、2、3的数据结果 (1ms)单线程总共就需要34ms。那如果你在这个请求内,把ab、cd、ef分别分给3个线程去做,就只需要12ms了。所以多线程不是没怎么用,而是,你平常要善于发现一些...

***Java多线程发展简史

http://blog.jobbole.com/28297/本文来自四火的博客(@RayChase),由@_Zhijun 推荐这篇文章,大部分内容,是周五我做的一个关于如何进行Java多线程编程的KnowledgeSharing的一个整理,我希望能对Java从第一个版本开始,在多线程编程方面的大事件和发展脉络有一个描述,并且提及一些在多线程编程方面常见的问题。对于Java程序员来说,如果从历史的角度去了解一门语言一个特性的演进,或许能有不同收获。引言首先问这样一个问题,如果提到Java多线程编程,你会想到什么?●volatile、synchronized关键字?● 竞争和同步?● 锁机制?● 线程安全问题?● 线程池和队列?好吧,请原谅我在这里卖的关子,其实这些都对,但是又不足够全面,如果我们这样来谈论Java多线程会不会全面一些:1.模型:JMM(Java内存模型)和JCM(Java并发模型)2.使用:JDK中的并发包3.实践:怎样写线程安全的代码4.除错:使用工具来分析并发问题5.……可是,这未免太死板了...

***JAVA多线程和并发基础面试问答

线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)1.进程和线程之间有什么不同?一个进程是一个独立(selfcontained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源。2.多线程编程的好处是什么?在多线程程序中,多个线程被并发的执行以提高程序的效率,CPU不会因为某个线程需要等待资源而进入空闲状态。多个线程共享堆内存(heapmemory),因此创建多个线程去执行一些任务会比创建多个进程更好。举个例子,Servlets比CGI更好,是因为Servlets支持多线程而CGI不支持。3.用户线程和守护线程有什么区别?当我们在Java程序中创建一个线程,它就被称为用户线程。一个守护线程是在后台执行并且不会阻止JVM终止的线程。当没有用户线程在运行的时候,JVM...

***Java 多线程 并发编程

一、多线程1、操作系统有两个容易混淆的概念,进程和线程。进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进程中的线程共用相同的地址空间,同时共享进进程锁拥有的内存和其他资源。2、Java标准库提供了进程和线程相关的API,进程主要包括表示进程的java.lang.Process类和创建进程的java.lang.ProcessBuilder类;表示线程的是java.lang.Thread类,在虚拟机启动之后,通常只有Java类的main方法这个普通线程运行,运行时可以创建和启动新的线程;还有一类守护线程(damonthread),守护线程在后台运行,提供程序运行时所需的服务。当虚拟机中运行的所有线程都是守护线程时,虚拟机终止运行。3、线程间的可见性:一个线程对进程中共享的数据的修改,是否对另一个线程可见可见性问题:a、CPU采用时间片轮转等不同算法来...

PHP面试题集

1、用PHP打印出前一天的时间格式是2006-5-1022:21:21(2分) $a=date("Y-m-dH:i:s",strtotime("-1day"));print_r($a);    2、echo(),print(),print_r()的区别(3分) echo和print不是一个函数,是一个语言结构intprint(string$arg),只有一个参数echo arg1,arg2;可以输出多个参数,返回voidecho和print只能打印出string,不能打印出结构print_r能打印出结构比如 $arr=array("key"=>"value");print_r($arr);    3、能够使HTML和PHP分离开使用的模板(1分)smarty,phplib    4、使用哪些工具进行版本控制?(1分)svn,git,cvs    5、如何实现字符串翻转?(3分)英文:strrev($a) 中文或其他文字: 中文:GB2312,...
IT猿 IT猿·2020-03-26

******IT公司面试题汇总+优秀技术博客汇总

 滴滴面试题:滴滴打车数据库如何拆分前端时间去滴滴面试,有一道题目是这样的,滴滴每天有100万的订单,如果让你去设计数据库,你会怎么去设计?当时我的想法是根据用户id的最后一位对某个特殊的值取%操作,然后根据余数定义表的名字为order_0,order_1,orerder_2......等等,但是这样设计有个问题,滴滴的用户是分成司机和乘客的,现在司机和乘客都有app,,他们在自己的app上看自己的订单的时候那怎么查询呢?这样设计数据只有一方可以便捷的取到数据,对于另一方来说取数据会很麻烦,因此这个方案肯定是不行的。昨天和在滴滴的一个同事聊这个问题,他和我大致的聊了下他们现在的解决方案,答案就是:搜索引擎,他们目前的解决方案是这样的:订单表按照城市拆分,每个城市的订单只保留最近一个月的订单,一个月之前的订单切换到备库,然后后台通过建立任务将订单的信息都通过索引的方式创建到ElasticSearch中,后台的订单列表及app的订单列表展示都是通过搜索引擎来获取的,直接通过接口来获取数据,这样就不需要读表了,大大提高了读取的速度,听完他讲之后,我有种醍醐灌顶的感觉,这样设计不失为...

Java中常用的加密方法(JDK)

加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些资料将加密直接分为对称加密和非对称加密)。 双向加密大体意思就是明文加密后形成密文,可以通过算法还原成明文。而单向加密只是对信息进行了摘要计算,不能通过算法生成明文,单向加密从严格意思上说不能算是加密的一种,应该算是摘要算法吧。具体区分可以参考: (本人解释不清呢……) http://security.group.iteye.com/group/wiki/1710-one-way-encryption-algorithm 一、双向加密 (一)、对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。 需要对加密和解密使用相同密钥的加密算法。由于其速度,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。&...

JAVA实现AES加密

       上次介绍了《JAVA实现DES加密》,中间提到近些年DES使用越来越少,原因就在于其使用56位密钥,比较容易被破解,近些年来逐渐被AES替代,AES已经变成目前对称加密中最流行算法之一;AES可以使用128、192、和256位密钥,并且用128位分组加密和解密数据。本文就简单介绍如何通过JAVA实现AES加密。闲话少许,掠过AES加密原理及算法,关于这些直接搜索专业网站吧,我们直接看JAVA的具体实现。2.1加密代码有详细解释,不多废话。/**  * 加密  *   * @param content 需要加密的内容  * @param password  加密密码  * @return  */  public static byte[] ...

前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍

前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍前端自动化,这样的一个名词听起来非常的有吸引力,向往力。当今时代,前端工程师需要维护的代码变得及为庞大和复杂,代码维护、打包、发布等流程也变得极为繁琐,同时浪费的时间和精力也越来越多,当然人为的错误也随着流程的增加而增加了更多的出错率。致使每一个团队都希望有一种工具,能帮助整个团队在开发中能精简流程、提高效率、减少错误率。随之讨论自动化部署也越来越多,并且国内很多大型团队也都有自己成熟的自动化部署工具。据我所知,百度有FIS,腾讯有Modjs,360有燕尾服,还有很多团队在使用Ant,Shell等,而现在讨论较多的是Grunt。在平常的工作之中,我们都不断的在重复着做相同的事情,比如说将Sass编译成CSS,检测JavaScript语法,压缩CSS、JavaScript。特别在团队合作开发中,常常会为了各自的习惯而不断的发生麻烦,给开发带来极大的不便。而且前端开发人员在周而复始的做这些相同的,乏味的事情。很多时候我们想工作变得更有意义,更能专注于开发,就希望有一种工具能让我们不去做这些重...

hadoop概述测试题和基础模版代码

hadoop概述测试题和基础模版代码1、Hadoop的创始人是DougCutting?()A、正确B、错误答对了!正确答案:A解析:参考课程里的文档,这个就不解释了2、下列有关Hadoop的说法正确的是()A、Hadoop最早起源于NutchB、Hadoop中HDFS的理念来源于谷歌发表的分布式文件系统(GFS)的论文C、Hadoop中MapReduce的思想来源于谷歌分布式计算框架MapReduce的论文D、Hadoop是在分布式服务器集群上存储海量数据并运行分布式分析应用的一个开源的软件框架答对了!出题老师哭晕在厕所!正确答案:A,B,C,D解析:参考课程里的文档,这个就不解释了3、为什么要使用Hadoop()A、方便:Hadoop运行在由一般商用机器构成的大型集群上,或者云计算服务上B、健壮:Hadoop致力于在一般商用硬件上运行,其架构假设硬件会频繁失效,Hadoop可以从容地处理大多数此类故障。C、可扩展:Hadoop通过增加集群节点,可以线性地扩展以处理更大的数据集。D、简单:Hadoop允许用户快速编写高效的并行代码。答对了!棒极了!正确答案:A,B,C,D解析:参考课程...

30个深度学习库:按Python、C++、Java、JavaScript、R等10种语言分类

30个深度学习库:按Python、C++、Java、JavaScript、R等10种语言分类包括Python、C++、Java、JavaScript、R、Haskell等在内的一系列编程语言的深度学习库。一、Python1、Theano是一种用于使用数列来定义和评估数学表达的Python库。它可以让Python中深度学习算法的编写更为简单。很多其他的库是以Theano为基础开发的:Keras是类似Torch的一个精简的,高度模块化的神经网络库。Theano在底层帮助其优化CPU和GPU运行中的张量操作。Pylearn2是一个引用大量如随机梯度(StochasticGradient)这样的模型和训练算法的库。它在深度学习中被广泛采用,这个库也是以Theano为基础的。Lasagne是一个轻量级的库,它可以在Theano中建立和训练神经网络。它简单、透明、模块化、实用、专一而克制。Blocks是一种帮助你在Theano之上建立神经网络模型的框架。2、Caffe是一种以表达清晰、高速和模块化为理念建立起来的深度学习框架。它是由伯克利视觉和学习中心(BVLC)和网上社区贡献者共同开发的。谷歌的...

python实现文章或博客的自动摘要(附java版开源项目)

python实现文章或博客的自动摘要(附java版开源项目)写博客的时候,都习惯给文章加入一个简介。现在可以自动完成了!TF-IDF与余弦相似性的应用(三):自动摘要-阮一峰的网络日志http://www.ruanyifeng.com/blog/2013/03/automatic_summarization.htmlidf.txt来自https://github.com/jannson/yaha/blob/master/yaha/analyse/idf.txtpython分词库中:https://github.com/jannson/yaha使用summarize3需要安装numpy库。GitHub-jannson/yaha:yahahttps://github.com/jannson/yaha基本功能:精确模式,将句子切成最合理的词。全模式,所有的可能词都被切成词,不消除歧义。搜索引擎模式,在精确的基础上再次驿长词进行切分,提高召回率,适合搜索引擎创建索引。备选路径,可生成最好的多条切词路径,可在此基础上根据其它信息得到更精确的分词模式。可用插件:正则表达式插件人名前缀插件地名后缀插...

JavaScript调试技巧之console.log()详解

JavaScript调试技巧之console.log()详解对于JavaScript程序的调试,相比于alert(),使用console.log()是一种更好的方式,原因在于:alert()函数会阻断JavaScript程序的执行,从而造成副作用;alert弹出框需要点击确认比较麻烦,而console.log()仅在控制台中打印相关信息,因此不会造成类似的顾虑。最重要的是alert只能输出字符串,不能输出对象里面的结构,console.log()console.log()可以接受任何字符串、数字和JavaScript对象,可以看到清楚的对象属性结构,在ajax返回json数组对象时调试很方便。//兼容Firefox/IE/Opera使用console.logif(!window.console){window.console={log:function(){}};}window.console=window.console||{};console.log||(console.log=opera.postError); 下面分享两张打印出来的信息图片:php上传多文件conso...

javascript闭包(Module模式)的用途和高级使用方式

javascript闭包(Module模式)的用途和高级使用方式javascript闭包的用途:1.匿名自执行函数:或者可以理解为,避免污染全局变量2.缓存:源于闭包的核心特性便是保存状态,应用此特性便可对需要的变量进行缓存3.实现封装:同样可以使用闭包保存状态的特性,充当一个作用域块,将块里面的属性变量至于内存之中来实现封装4.闭包的另一个重要用途是实现面向对象中的对象,传统的对象语言都提供类的模板机制:原理同上。对于闭包的定义很多书籍都很模糊,个人认为比较准确的定义——闭包是函数的代码在运行过程中的一个动态环境函数和闭包要有非常清晰的对比——一个函数只是一段静态的代码、脚本文本,因此它是一个代码书写时,以及编译期的、静态的概念;而闭包则是函数的代码在运行过程中的一个动态环境,是一个运行期的、动态的概念。闭包作为与函数成对的数据,在函数执行过程中处于激活(即可访问)状态(通俗来讲,就是当执行到函数的某一条语句的时候,哪些对象能够被使用)。还有一点,就是闭包的实现方式——JavaScript使用作用域链来实现闭包,...
首页上一页...592593594595596...下一页尾页