版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
·23期学员以3年工作经验出去面试mysql5sql(sql语句limitMySQL的limit给分页带来了极大的方便,但数据量一大的时limit的性能就急剧下降。同样是取10条数据,下面两句就不是一个数量级别的。1select*fromtablelimit2select*fromtablelimit 4、redismysql1、Redis中的事务(transaction)Redis最小的执行单位,一个事务中令要么都执行,要么都不执行。Redis事务的实现需要用MULTIEXECRedisMULTI命令,然后依次发送需要在本次事务中处理令,最后再发送EXEC命令表示事务命令结束。首先要知道zookeeper。zookeeper是一个为分布式应用提供一致性服务的软Hadoop项目中的一个子项目!集中式的配置管理在应用集群中是非常常见的,一般商业公司都会实现一套集中的Zookeeper很容易实现这种集中式的配置管理,比如将APP1的所有配置配置到/APP1znode下,APP1所有机器一启动就对/APP1这个节点进行(zk.exist("/APP1",true)),并Watcher每个机器都会收到通知,Watcher方法将会被执行,那么应用再取下数据即可 /APP1SERVERS,那么集群中每一个机器启动的时候都去这个节点下创建一个EPHEMERALserver1创建/APP1SERVERS/SERVER1(ip,保证不重复),server2/APP1SERVERS/SERVER2,然后SERVER1和SERVER2都watch/APP1SERVERS这个父节点,那么也就是这个父节点下数据或者子节点变化都会通知对该的时候,其对应的节点就会,然后集群中所有对/APP1SERVERS进行watch的客户端另外有一个应用场景就是集群选master,一旦master挂掉能够马上能从slave中选出一型变为EPHEMERAL_SEQUENTIAL类型,这样每个节点会自动被,默认规定最小的为master,所以当对/APP1SERVERS节点做的时候,得出,而这个master宕机的时候,相应的znode会,然后新的服务器列表就被推送到客户端,然后每个节点逻辑认为最小节点为master,这样就做到动态master6publicclassSingleton1{privatestaticfinalSingleton1single=newpublicstaticSingleton1getInstance(){returnsingle;}}publicpublicclassSingleton2publicsynchronized staticSingleton2getInstance(){if(single==null){single=new}return}}importimportimport//SpringpublicclassSingleton3privatestaticMap<String,Singleton3>map=newHashMap<String,Singleton3>();Singleton3single=newSingleton3();map.put(single.getClass().getName(),single);}publicstaticSingleton3getInstance(Stringname)if(nameif(name==null)name=}if(map.get(name)==null){try{}catch(InstantiationExceptione){}catch(IllegalAccessExceptione){}catch(ClassNotFoundExceptione){}}return}publicStringabout(){return"o,Iam}publicstaticvoidmain(String[]args)Singleton3single3=Singleton3.getInstance(null);}}mavenMaven类描在生成过执行,并在pom.xml中的<build/>元素进行配在生成期间执行,在pom.xml中的<reporting/>元素进行配插描Java运行JUnitJAR从当前项目构建WARAntmaven如何处理依赖的问题maven解决maven传递依maven-project-info-reports-plugin如果用的是eclipserunas-build-Goalssite文件夹,里边有个dependency.html,进去就能看到详细的依赖的信息。或者直接在eclipse中打开pom.xml文件这个选择卡页面左半部分显示了详细的jar包依赖树右半部分则是maven将会的jar包。比如看到右半部分有2个asm的jar,版本不同。jar(xwork-corejarasm版本相对较低,不一定说是xwork-coreasm都是可以的)当然也可以在dependencyhie开头的选项卡中右半部分直接选中那个低版本的asm.jar。然后右键excludemaven...点击确定会自动生成上面的。mavenA依赖于B,BC,CA,造成一种环路,这样的话会失败。假设依赖AB,D也依赖于B,Bpom中有2个版本B1,B2(有可能是直接依赖,也有可能是间接依赖,那么maven会通过以下机制引入依赖:如果A直接依赖于B1,A-B1,D间接依赖于B2,例如D-C-B2,那么maven会有优先选B1B2B1,B2都是间接依赖,例如A-C-B1,D-C-B2Bpom文件中优先依赖了,A-C-B1pomD-C-B2B1.1静态化的页面为.html(.htm等)web服务freemarkVelocity等。2、fastDFS服务器将系统的web服务器、数据库服务器、和文件服务器分开,通过将服务器专业化分工,以提高速度。因为和文件在的时候无论是IIS、Apache等服务器3、数据缓存服务器 商和地域带来的用户速度差异,比如ChinaNet和EduNet之间的差异就促使了很多网Linuxrsync等工具。6、负载均衡7、:CDN加速技术(这个比镜像更好用CDN?CDNInternet中增加一层新的网络架构,将的内容发布到最接近用户的网络“边缘”,使用户可以nginx如果redis位节点中存入的大量数(十万条当添加新数据时,是否也要删掉十万对应的key?是否有其他解决方案保证能redis中数据是的?Redis的作用:1、Redisk/vlist,set,zset,hash等数据结构的。、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启RedisSortedsetactivemqActiveMQSessionsession=mit操作,则表明,当前事务期间内所发送的消息都取消掉。此时无论commit或rollback,会commit“thisisadog)文档一:Studentsshouldbeallowedtogooutwiththeirfriendsbutnotallowedtodrinkbeer.文档二:MyfriendJerrywenttoschooltoseehisstudentsbutfoundthemwhichisnot去除停词(stop所谓停词(Stopword)就是一种语言中没有具体含义,因而大多数情况下不会作为搜索的关theathis语言处理组件(linguisticprocessor)主要是对得到的词元(Token)做一些语言相关的处理。对于英语,语言处理组件(LinguisticProcessor)一般做以下几点:语言处理组件(linguisticprocessor)处理得到的结果称为词(Term),例子中经过语言处理drivedroveStemming和Stemminglemmatizationcars”到”cardriving”到”drivedrovedroedriingdrivese”变为”ate”变为”tiondrive”drove”到”drive”am,is,are”到”be”的 Stemminglemmatization111111112 11211221212222221212对词(Term)“allow”来讲,总共有两篇文档包含此词(Term),词(Term)后面的文档链1ive”iviroveiveivioviveiveivi doesagoodjobatsoftwareindustry…”,这就与用户的期望偏离太远了。 janpanandenglish”和” (scoring),分数高比较越相关,就越靠前。当然还可以人工影响打分,比如搜索,就不一定完全按照相关性来的。“toturial”,不同的词可能重要性不一样,比如solr就比toturial重要,如果一个文档出现了10toturial,但只出现了一次solr,而另一文档solr出现了4次,toturial次,那么后者很有可能就是想要的搜的结果。这就引申出权重SpaceModel)Fequencey(tf,ermFrequency(df物以贵,大家都有的东西,自然就不那么贵重了,只有你专有的东西表示这个东西很珍空间向量模={term1,term2,……,termN}Vector={weight1,weight2,……,weightN}Query={term1,term2,……,termQueryVector={weight1,weight2,……,weight补充:Lucene:/guochunguang/articles/3641008.html/guochunguang/articles/3641008.htmlhttp的三次握手?socket有几种状态?sockethttp 位码即tcp标志位,有6种标示:SYN(synchronous建立联机)ACK(acknowledgement确认)PSH(push传送)FIN(finish结束)RST(reset重置)URG(urgent紧急))S(ack=j+1(syn=ksocket 没有使用这个套接 ESTABLISHED连接已建立 套接字已经关闭:正在等待关闭这个套接FIN_WAIT_1套接字已关闭,正在关闭连 FIN_WAIT_2套接字已关闭,正在等待 TIME_WAIT这个套接字已经关闭,正在等 套接字的关闭传socket底层编程(这个可以不用了解httphttp是网络上层协议。底层还是socket短连接是发送数据时进行联接。发送完关闭( ip网络中,传输层主要协议是:tcpudpweb中,httpio中,目前主要有:bio(阻塞)、nio(非阻塞)、aio(jdk7中新特性)。具体不作解RMI(java原生的)javaxml-rpcBinary-RPC用二进制+httpsoapxml-rpc的一种封装COBRA,jdk中activeMQ:jms的一种实现mina:nio.ApacheMINAisanetworkapplicationframeworkwhichhelpsusersdevelophighperformanceandhighscalabilitynetworkapplicationseasily。Itprovides·event-driven·asynchronousAPIovervarioustransportssuchasTCP/IPandUDP/IPviaJavaNIO.Hessian:Hessianremotingonhttp工具.RPC协议,因为采用Burlap:Hessian差不多,xml-RPCmuleesb:spring-RemotingJboss-Remoting其他学员的面试问题汇总1、hibernatemybatis的异同之处SqlmybatisXMLsqljava对象和sql语句生成最终执行的sql,最后将sql执行的结果再生成java对象。Mybatissqlsql执行性能,灵活度高,非常适合对关系数据模型要求不高的开发,例如互联网、企业运营类软件等,因为这类需求变化频繁,一但需求变化要求成果输出迅速。但是灵活的前提是mybatis无法做到数据库无关性如果需要实现支持多种数据库的则需要自定义多套sql的缺点是学习门槛高,要精通门槛更高,而且怎么设计O/R,在性能和对象模型之间Hibernate需要具有很强的经验和能力才行。2app订阅业务,使用什么设计模式实现?应用场景是模式,让多个观察者同时某一个对象。这个对象在状态发生变化时,会通知3、springmvc如何一个controller?注如果不基于注解:该类需要继承CommandController或者其他很多参见spring帮助如果基于注解:在类名前加上 spring启动或者web服务启动spring会自动扫描所有作用:就是告诉服务器这个类是MVC中的 这个类可以接收用户请求处理用5、怎么事物?在spring配置文件spring支持编程式事务管理和式事务管理两种方式编程式事务管理使用TrsctoTempte或者直接使用底层的PtformTrctongerprg使用TrnctoTempte。式事务管理建立在AP之上的。其本质是对方法前后进行,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。式事务最大的优点就是不需要通过编程的方式管理事务,这样就不需要在业务逻辑代码中掺杂事务管理的代码,只需在配置文件中做相关的事务规则(或通过基于@Transactional注解的,显然式事务管理要优于编程式事务管理,这正是prg倡导的非侵入式的开发方式。式事务管理使业务代码不受污染一个普通的PO对象只要加上注解就可以获得完全的事务支持和编程式事务相比式事务唯一不足地方是,后者的最细粒度只能作用到方法级别,无法做到像编程式事务那样可以作用到代码块级别。但是即便有这样的需求,也存在很,多变通的方法,比如,可以将需要进行事务管理的代码块独立为方tx和op名字空间的xmlTrnctol注解。显然基于注解的方式更简单易用,更清爽。7Ik把项目打成war面试问题分类一、JavaString类为final的session JavaGCJava内存的问题定位:jmap,jstack的使用等struts1struts2Struts1Action类要扩展自一个抽象基类。Struts1的一个共有的问题是面向抽象类Struts2的Action类实现了一个Action接口,连同其他接口一起实现可选择和自定义的服务。Struts2提供一个名叫ActionSupport的基类实现一般使用的接口。虽然,Action接口不是必须的。任何使用execute方法的POJO对象可以被当作Struts2Action对象Struts1Action类是单例类,因只有一个示例控制所有的请求。单例类策略造成了一定的限制且给开发带来了额外的烦恼。Action资源必须是程安全或者同步的。Struts2Action对象每一个请求都实例化对象,所以没有程安全的问题(实践中,servlet容器生许多丢的对象对于每一个请求,多于一个的对象并不影响 Servlet依赖Struts1的Action类依赖于servletAPI以HttpServletRequestStruts2的Action不和容器有关。Servlet上下文被表现简单的Maps,允许Action被独立的测试。Struts2的Action可以 HttpServletRequest或者HttpServletResponse的需要。测试Struts1的主要 是execute方法 了ServletAPI。第 测试用例,提供Struts1的集合对象。Struts2ActionAction测试,设置属性,然后调用方法。依赖注入Struts1使用ActionForm对象捕获输入。象Action一样,所有的ActionForm必须扩JavaBeanActionForm使用,开发者经常创建多余的类捕获输入。DynaBeansActionFormStruts2Action属性作输入属性,排除第二个输入对象的需要。输入属性可能有丰富的对象类型这些类型有他们自己的属性。Action的属性可以通过库。Struts2也支持对POJO。(类可以有不同的验证上下文未相同的类,但是不能不能包括验证子对象。Struts2支持手动验证凭借validate方法和XWork验证框架。Xwork验证框架支持一连 Struts1Action必须共享 struts2springMVC是一个servlet即前端控制器,而是一个③Struts采用值栈 spring框架中需要哪些jar包,以及这些jar包的用Spring3.Xjar2.Xspring.jarosgi.springframework.asm-asmJar3.0.6.springframework.aspects-SpringAspectJSpringIoC(依赖注入)的基Spring-contextMVC方面Spring提供在基础IoC功能的扩展服务,此外还提供许Spring3.0.6的工具Spring3.0.6TomcatJMSAPI整合第的ORM框架,如springJPASpringObject/XMlJavaXMLJunit做Spring还必须依赖第包Springcommons-logging-1[1].0.4.jar(只要是做Spring都需要这个包,否则工程起不来②使用SpringAOP功能时依赖的包 )commons-dbcp.jar(: commons-pool.jar(: srMVC的原 其与业务层、持久化层的WebApplicationContext建立关联。springMVC@Controllerbeanspring上下文中,beanID 用来定 的URL,你可以为整个类定义一 把 publicclassTestController{} value:String[]设置 headers:Stringheaders一般结合methodRequestMethod.POSTparams: value的配置还可以采用模版变量的形式,例如:@RequestMap(value="/owners/{ownerIdmethod=RequestMethod.GET),这点将在介绍@PathVariable中详细说明。 params的补充说明,你可以通过设置参数条件来限制 Java publicclass Controller{ (params="method=getList")publicStringgetList(){return} (value="/spList")publicStringgetSpecialList(){return}} .do?method=getList可以 到方法getList();而访 .do/spList则会报错.@PathVariable用于方法中的参数,表示方法参数绑定到地址URLJava代码 model)Ownerowner=ownerService.findOwner(ownerId);model.addAttribute("owner",owner);return} 没有定义类似"/{ownerId}",这种变量,则使用在方法中@PathVariable会报错。int,String不起作用JavapublicList<String>populateItems(){List<String>lists=newArrayList<String>();returnlists;} (params=ModelMapmodel){ return"listBoard";}@ModelAttribute注解,populateItem()任何请求处理方法执行前调用,SpringMVC会将该方法返回值以所以在②处, 就可以通过ModelMap入参 到items属性,当执行listAllBoard()请求处理方法时,②处将在控制台打印 对象中的items属性。这个注解可以直接放在方法上,表示返回类型将会直接作为HTTP响应字节流输出(不被放置在Model,也不被 为视图页面名称)。可以用于ajax。)URLid,URL.springframework.web.util.NestedServletException异常,提示无法将null转换为基本数据类型.@RequestParam3@RequestParam(required:value:传递的参数名称,String类型,Spring允 有选择地指定ModelMap中的哪些属性需要转存sessionsessionModelMap@SessionAttributes实现的。@SessionAttributes@SessionAttributes("currUser将ModelMapcurrUser@SessionA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年人力资源担保用工协议样式版B版
- 2024年专属定制人力资源服务合作合同一
- (2024版)船舶买卖合同(含2024版规定)
- 2024年专业托管清洁服务协议样本版
- 江南大学《蛋白质纯化技术(含实验)》2022-2023学年第一学期期末试卷
- 2024年商铺合作经营标准合同书版
- 佳木斯大学《基本乐理1》2021-2022学年第一学期期末试卷
- 暨南大学《人寿与健康保险》2021-2022学年第一学期期末试卷
- 暨南大学《宏观经济学》2023-2024学年第一学期期末试卷
- 二零二四年度商务产业园委托运营协议之绩效评估标准3篇
- 大学生职业发展与就业指导(第3版)课件:制胜攻略绘制职业发展蓝图
- JBT 1472-2023 泵用机械密封 (正式版)
- 智能制造工程生涯发展报告
- 第五单元作业设计 统编版语文七年级上册
- 国家学生体质健康测试标准评分表(大学)
- 肝穿活检病理报告
- 2022版《义务教育教学新课程标准》解读课件
- 35kV线路工程技术标书
- 知识产权公共服务能力
- 给客户送礼品管理制度
- 土地抵押净值评估报告
评论
0/150
提交评论