您的位置:首页 > 编程语言 > Java开发

比JDK高效的array equals

2015-12-15 22:07 323 查看
privatestaticbooleanarrEquals(byte[]a1,byte[]a2){
if(a1==a2)
returntrue;

if(a1==null||a2==null)
returnfalse;

intlength=a1.length;
if(a2.length!=length)
returnfalse;

intj=0,k=1;
while(j<length){
if(a1[j]!=a2[j])
returnfalse;
j+=2;
}
while(k<length){
if(a1[k]!=a2[k])
returnfalse;
k+=2;
}
returntrue;
}

/**
*忽略大小写比较
*
*@paramsrc
*@paramcmd
*@return
*/
privatebooleanignoreEquals(byte[]src,Stringcmd){
intlen2=cmd.length();
intlen1=src.length;
if(len2!=len1)
returnfalse;


intres=0;
intlen=len1>len2?len2:len1;
while((res=src[--len]-cmd.charAt(len))==0||res==32
||res==-32){
returntrue;
}
returnfalse;
}



packagecom.czp.utils;

importjava.io.File;
importjava.util.EnumSet;
importjava.util.EventListener;
importjava.util.Properties;

importjavax.servlet.DispatcherType;
importjavax.servlet.Filter;
importjavax.servlet.MultipartConfigElement;
importjavax.servlet.http.HttpServlet;

importorg.eclipse.jetty.server.Server;
importorg.eclipse.jetty.servlet.ServletHolder;
importorg.eclipse.jetty.webapp.WebAppContext;
importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;

/**
*
*Function:web容器类,负责启动web服务<br>
*文件上传流程:<br>
*1.保存到图片数据到FastDFS<br>
*2.将FastDFS返回的ID存储到ES<br>
*
*Date:2015年12月11日<br>
*Author:coder_czp@126.com<br>
*Copyright(c)2015,coder_czp@126.comAllRightsReserved.
*/
publicclassWebContainer{

privateintport;
privateServerserver;
privateStringwarPath;
privateintmaxUploadSize;
privateStringconfigPath;
privateWebAppContextcontext;
publicstaticfinalintfileSizeThreshold=262144;
publicstaticfinalStringCFG_FILE="config_file";
privatestaticLoggerlogger=LoggerFactory.getLogger(WebContainer.class);
privatestaticStringkey="org.eclipse.jetty.servlet.Default.useFileMappedBuffer";

publicWebContainer(StringconfigPath){
parseConfig(configPath);
this.configPath=configPath;
this.server=newServer(port);
this.context=newWebAppContext();

addWebGlobObject(context);
context.setInitParameter(key,"false");
context.setParentLoaderPriority(true);
context.setResourceBase(warPath);

server=newServer(port);
server.setHandler(context);
}

/**
*添加监听器
*
*@paramlistener
*/
publicvoidaddEventListener(EventListenerlistener){
context.addEventListener(listener);
}

/**
*添加filter
*
*@paramfilter
*/
publicvoidaddFilter(Class<?extendsFilter>cls,Stringmapping){
EnumSet<DispatcherType>type=EnumSet.of(DispatcherType.REQUEST);
context.addFilter(cls,mapping,type);
}

/**
*添加servlet
*
*@paramcls
*@parammapping
*/
publicvoidaddServlet(Class<?extendsHttpServlet>cls,Stringmapping){
context.addServlet(cls,mapping);
}

/**
*添加servlet
*
*@paramcls
*@parammapping
*/
publicvoidaddUploadServlet(Class<?extendsHttpServlet>cls,
Stringmapping){
FileuploadTmpPath=newFile("./webTemp");
if(!uploadTmpPath.exists())
uploadTmpPath.mkdir();

Stringpath=uploadTmpPath.getAbsolutePath();
MultipartConfigElementcfg=newMultipartConfigElement(path,
maxUploadSize,maxUploadSize,fileSizeThreshold);
ServletHolderupload=newServletHolder(cls);
upload.getRegistration().setMultipartConfig(cfg);
context.addServlet(upload,mapping);
}

publicvoidstart()throwsException{
logger.info("serverrunningat:{}",port);
server.start();
}

/**
*停止web服务
*
*@throwsException
*/
publicvoidstop()throwsException{
server.stop();
}

/**
*添加web应用的全局参数,这些参数在整个web运行期只存在一个实例
*
*@paramcontext
*/
privatevoidaddWebGlobObject(WebAppContextcontext){
context.setAttribute(CFG_FILE,configPath);
}

privatevoidparseConfig(StringconfigPath){
try{
Propertiescfg=PubTools.loadCfgFromFile(configPath);
warPath=cfg.getProperty("web_dir");
port=Integer.valueOf(cfg.getProperty("web_port"));
maxUploadSize=Integer.valueOf(cfg.getProperty("max_upload_size"));
}catch(Exceptione){
thrownewRuntimeException(e);
}
}

}

http://boendev.iteye.com/blog/882479http://blog.csdn.net/jiubugeinifo/article/details/42024915http://linuxtools-rst.readthedocs.org/zh_CN/latest/tool/iostat.htmlhttp://blog.csdn.net/hdutigerkin/article/details/7517390【epoll】
http://blog.csdn.net/ithomer/article/details/8000466
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: