09 2012 档案
摘要:如果想要接收任意长度的数据,而且避免乱码产生,就可以使用BufferedReader类public class BufferedReader extends Reader因为输入的数据有可能出现中文,所以,此处使用字符流完成。BufferedReader是从缓冲区之中读取内容,所有的输入的字节数据都将放在缓冲区之中。System.in本身表示的是InputStream(字节流),现在要求接收的是一个字符流,需要将字节流变成字符流才可以,所以要用InputStreamReader 1 import java.io.BufferedReader; 2 import java.io.IOExcept
阅读全文
摘要:System类的常量System表示系统类,此类也对IO给予了一定的支持。public static final PrintStream out 对应系统标准输出,一般是显示器public static final PrintStream err 错误信息输出public static final InputStream in 对应着标准输入,一般是键盘又是由于历史遗留问题 全局变量没有大写~System.out使用System.out输出的时候就是将输出的位置定义在了显示器之中。FileOutputStream是定位在文件里,而System.out是定位在屏幕上。使用OutputStre..
阅读全文
摘要:管道流(线程通信流)管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream)、管道输入流(PipedInputStream),如果想要进行管道输出,则必须要把输出流连在输入流之上,在PipedOutputStream类上有如下的一个方法用于连接管道:public void connect(PipedInputStream snk)throws IOException例子:线程之间用管道流进行通讯 1 import java.io.IOException; 2 import java.io.PipedInputStream; 3 import java.i
阅读全文
摘要:在整个IO包中,打印流是输出信息最方便的类,主要包含字节打印流(PrintStream)和字符打印流(PrintWrite)。打印流提供了非常方便的打印功能,可以打印任何的数据类型,例如:小数、整数、字符串等等。看一下PrintStream的构造方法:public PrintStream(OutputStream out)在PrintStream中定义的构造方法中可以清楚的发现有一个构造方法可以直接接收OutputStream类的实例,这是因为与 OutputStream相比起来,PrintStream可以更加方便的输出数据,这就好比将OutputStream类重新包装了一下,使之输出更加 方
阅读全文
摘要:ByteArrayInputStream和ByteArrayOutputStream之前所讲解的程序中,输出和输入都是从文件中来得,当然,也可以将输出的位置设置在内存之上,此时就要使用ByteArrayInputStream、ByteArrayOutputStream来完成输入输出功能了ByteArrayInputStream的主要功能将内容输入到内存之中ByteArrayOutputStream的主要功能是将内存中的数据输出此时应该把内存作为操作点ByteArrayInputStream类的定义:public classByteArrayInputStream extends InputSt
阅读全文
摘要:OutputStreamWriter和InputStreamReader在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类。OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即:将一个字符流的输出对象变成字节流的输出对象。InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变成字符流的输入对象。一般在操作输入输出内容就需要使用字节或字符流,但是有些时候需要将字符流变成字节流的形式,或者将字节流变为字符流的形式,所以,就需要另外一组转换流的操作类。看一
阅读全文
摘要:在整个IO包了,唯一表示与文件本身有关的类就是File类。使用File类可以进行1创建或删除文件等常用操作。要想使用File类。则首先要观察File类的构造方法,此类的常用构造方法如下所示:public File(String pathname) 实例化File类的时候,必须设置好路径No.方法或常量类型描述1public static final String pathSeparator常量表示路径的分隔符(windows是“;”)2public static final String separator常量表示路径的分隔符(windows是“\”)3public File(String p
阅读全文
摘要:先来看一下流的概念:在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。字节流与字符流在java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都分为输入 和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream,在字符流中输出主要是使用Writer类完 成,输入流主要使用Reader类完成。(这四个都是抽象类)操作流程在Java中IO操作也是有相应步骤的,以文件操作为例,主
阅读全文
摘要:排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。 我不喜欢死记硬背,我更偏向于弄清来龙去脉,理解性地记忆。比如下面这张图,我们将围绕这张图来思考几个问题。 上面的这张图来自一个PPT。它概括了数据结构中的所有常见的排序算法。现在有以下几个问题: 1、每个算法的思想是什么? 2、每个算法的稳定性怎样?时间复杂度是多少? 3、在什么情况下,算法出现最好情况 or 最坏情况? 4、每种算法的具体实现又是怎样的? 这个是排序...
阅读全文
摘要:思考为什么要引入容器这个概念?Java有多种方式保存对象(应该是对象的引用),例如使用数组,数组时保存一组对象中的最有效的方式,如果你想保存一组基本类型的数据,也推荐使用这种方式,但大家知道数组是具有固定尺寸的,你必须视线知道你要需要多少个对象。但是在一般的情况中,你在写程序中并不知道将需要多少个对象,或者是否需要更加复杂的方式来存储对象,因此数组尺寸固定很不爽!为了解决上述问题,引入了容器的概念。容器提供了完善的方法来保存对象,你可以使用这些工具来解决数量惊人的问题。Java日容器类可以自动调整自己的尺寸,因此与数组不同,你可以将任意数量的对象放到容器中,并不担心容器设置为多大。基本概念ja
阅读全文
摘要:探究java的垃圾回收机制:Java的垃圾回收机制使得java程序员不用手动去释放“通过new关键字在heap上申请的空间”,但是任何事情都是有利有弊的。 有几个问题应该考虑下: 1、什么是垃圾?它是如何形成的? 2、java的垃圾收集器是什么?它是什么时候执行的?执行过程是怎样的? 3、sun为什...
阅读全文
摘要:九月腾讯,创新工场,淘宝等公司最新面试三十题引言曾记否,去年的10月份也同此刻一样,是找工作的高峰期,本博客便是最初由整理微软等公司面试题而发展而来的。如今,又即将迈入求职高峰期--10月份,而本人也正在找工作中,所以,也不免关注了网上和我个人建的算法群Algorithms1-12群内朋友发布和讨论的最新面试题。特此整理,以飨诸位。至于答案,望诸位共同讨论与思考。最新面试十三题好久没有好好享受思考了。ok,任何人有任何意见或问题,欢迎不吝指导:1五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆;第二只猴子起来一看,只有四堆桃。于是把四堆合在
阅读全文
摘要:海量数据处理:十道面试题与十个海量数据处理方法总结作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日说明:本文分为俩部分,第一部分为10道海量数据处理的面试题,第二部分为10个海量数据处理的方法总结。有任何问题,欢迎交流、指正。出处:http://blog.csdn.net/v_JULY_v。------------------------------------------第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有
阅读全文
摘要:所谓海量数据处理,无非就是基于海量数据上的存储、处理、操作。何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。那解决办法呢?针对时间,我们可以采用巧妙的算法搭配合适的数据结构,如Bloomfilter/Hash/bit-map/堆/数据库或倒排索引/trie树,针对空间,无非就一个办法:大而化小:分而治之/hash映射,你不是说规模太大嘛,那简单啊,就把规模大化为规模小的,各个击破不就完了嘛。至于所谓的单机及集群问题,通俗点来讲,单机就是处理装载数据的机器有限(只要考虑cpu,内存,硬盘的数据交互),而集群,机器有多辆,适合分布式处理,并
阅读全文
摘要:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字7,则返回true;如果查找数字5,由于数组不含有该数字,则返回false。我的解题思路是这样的矩阵行列都是从小到大排好序的,要查找的话自然用二分效率比较高,而且这样的矩阵有个性质,最左上角的元素必定是最小值,最右下角的是最大值,在一个n*n的矩阵中,对角线的元素也是排好序的,找到对角线上的一个元素,使得这个元素小于待查找的key,并且下一元素大于待查找的key,
阅读全文
摘要:SSH 框架的搭建Structs1+spring+HibernateStructs相当于mvc设计模式中V.C,即jsp页面和Servlet;spring 管理业务逻辑,即Service;Hibernate 管理DAO,持久层;首先讲一下Hibernate和spring的整合: 1.加入相关的jar:mysql的 mysql-connector-java-5.1.13-bin.jar; Hibernate的就不一一列出的(上一篇文章有提到);特别注意的是要导slf4j相关的底层实现包 slf4j-nop-1.5.8.jar spring的相关jar(s...
阅读全文
摘要:首先在语法上:静态变量需要加关键字static,而实例变量不需要加。其次,在程序运行时的区别上:实例变量属于某个对象的属性,必须创建了对象,其中的实例变量才会被分配内存空间,才能使用这个实例变量。而静态变量不属于某个实例对象,而是属于类,也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配内存空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量可以通过直接使用类名来引用。
阅读全文
摘要:SVNThe goal of the Subversion project is to build a version control system that is a compelling replacement for CVS in the open source community. The software is released under an Apache/BSD-style open source license.SVN是一个版本控制软件,类似CVS,但是SVN的的有点是开源的,而且SVN的版本控制能力给CVS还要强多。SVN可以用于项目管理,还可以用于版本同步,功能可是十分强
阅读全文
摘要:1. 使用Spring注解来注入属性 1.1. 使用注解以前我们是怎样注入属性的 类的实现: Java代码 publicclassUserManagerImplimplementsUserManager{ privateUserDaouserDao; publicvoidsetUserDao(UserDaouserDao){ this.userDao=userDao; } ... }配置文件: Java代码 <beanid="userManagerImpl"class="com.kedacom.spring.annotation.service.UserMa
阅读全文
摘要:良好的开端是成功的一半,项目启动会议是一个项目的开始,因此其对于项目的顺利开展非常重要。我们知道,项目启动会议一般由项目经理负责组织和召开。然而,有不少项目经理对项目启动会议不重视、走过场,或虽然知道其重要但不知道如何才能将其开好。 (一) 项目内部启动会议 项目内部启动会议指在项目承建方内部召开的会议。 1、目的 会议的目的是让项目团队成员对该项目的整体情况(包括项目的建设背景、项目总体规划及项目团队成员等信息)和各自的工作职责有一个清晰的认识和了解,为日后协同开展工作作准备;同时获得领导对项目资源的承诺和保障。 2、需要参加会议的人员 根据会议的性质和会议的目的,我们可以知道,需要参加..
阅读全文