再传一点今天的开发日志上来,主要是String和StringBuffer效率问题比较

成都朗沃项目开发部

     

填报日期:2010-12-08      性质:JAVA项目  部门:T77  

项目:货款计息服务查询服务系统    个人:何伟

姓 名

 

直接主管

何伟

T77

张宁

一、   本日主要工作进度及内容:

1.建立两个响应类

2.一个负责处理并封装客户端请求信息,一个负责响应客户端请求

二、本日工作中存在的问题及解决思路:

1.第一个问题是关于GET/POST 请求的判断:

开始我很很多同学的想法一样,使用读取输入流转成字符串后查找两个关键字,可是发现当我们在构造方法中把流信息读出后,其实把流相当于这个水管中的水放出来了,后面再取这个流时,其实已经空了。当时有同学提出取出的String设成全局变量,可是这是破坏设计师的类了。所以后来采取的方法是一次只读取流中的4byte就已经把前面的GET或者POST取出了,我们只是把流水管中的水放出一点我们需要的,后面的没破坏,问题解决。

2.第二个问题是关于POST取出用户提交内容的问题:

开始有同学提出用lastIndexOf方法判断/r/n字符的位置来取出。也的确是实现了。可是自己感觉好像不是特别好,虽然说不出原因。后来想到当时老师提到POST提交内容和前面之间其实是一个空行,所以自己就按这个想法去做了。我们在正则表达式中有一个关于空行的表达:/n[/s| ]*/r。所以使用了split//n[//s| ]*//r)分割字符串,好像也能实现了,个人感觉这种方式更好理解。

3.第三个问题是关于StringStringBuffer效率问题:

首先先向张老师到个谦,昨天因为感冒的原因回来后就睡了没有及时的解决这个问题,对不起。关于二者的效率问题,其实在做这个测试之前自己并不是特别关注,自己对于这两个类的区别主要是集中在二者对内存的占用上。自己的测试方法是,同时开启两个线程,二者分别循环做在其上增加字符串的操作。当i很大时可以明显看出StringBuffer很快就结束了,而String则落后很多。而至于自己比较关心的内存占用问题,不知道是自己测试方法的问题。自己想的是建立两个方法分别测试二者在长字符串大数量相加的情况下因为String会大量生成临时字符串应该会很快消耗完内存。可是测出的结果让自己很失望,除了再一次证明二者的效率问题外并没有自己预料的内存不足。StringBuffer能很快的执行大字符串大量相加的过程,所以很容易测出StringBuffer当数据量很大时也很容易内存不足,而对于String但二者用相同量测试时,其速度完全让人崩溃,一个让StringBuffer溢出的数据,对于String自己等了10多分钟而放弃测试,速度太让人无语了。所以我们有时间考虑其内存溢出,还不如考虑其效率问题。所以对于长字符串多次相加以后自己还是多考虑其效率问题而不是内存问题吧

  

三、需要主管对本人工作提供的支持:

主管回复意见:

 

 

 

 

 

 

你可能感兴趣的:(java,工作,String,正则表达式,测试,byte)