- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
/view/7bbf87eb50e2524de5187ed7.html?pn=50(面试大全)
JVM?调优总结1.设置堆内存大小2.垃圾回收器选择?串行??只适用于小数量情况并行??达到一定的吞吐量之后进行回收并发??保证系统响应时间,减少垃圾回收的时间
如何解决并发问题首先从程序本身性能问题找出瓶颈,尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能;优化数据库查询语句;优化数据库结构,多做索引,提高查询效率;统计的功能尽量做缓存,或按每天一统计或定时统计相关报表,避免需要时进行统计的功能;最后使用服务器集群来解决单台的瓶颈问题;负载均衡
集群和负载均衡集群和负载均衡还不是一样的概念,当然虽然他们的貌似有共同的目的。集群就是,增加多的服务器来分担前台的请求。但是LB(负载均衡)是有一些算法来检查你的哪些Node(节点)是空闲或者忙的,然后再分配给相对空闲的Node处理
负载均衡服务器:ngnix lvs HAProxy
Nginx安装和配置比较简单,Nginx不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的Web应用服务器nginx处理静态文件好,耗费内存少,nginx的负载能力比apache高很多。可以承担高负载压力且稳定
线程池ExecutorService?executorService?=?Executors.newCachedThreadPool();executorService.execute(new?Handler(socket));?
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口同步的实现方面有两种,分别是synchronized,wait与notifywait():使一个线程处于等待状态,并且释放所持有的对象的lock。sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
线程的生命周期新建-------准备------运行-----终止状态?在准备到运行中会出现堵塞
基础题JMS??redis??mssql??shiro??EHcache?log4j 范式??微信平台jsonrpc?反射机制??三大原理?数据库socket(套接字)??网关封包和拆包基础??接口?设计模式??工作流引擎??JBPM4.jar1。用插件设计流程??2.部署定义流程??启动流程实例html5??requere.js??data-main?前端js异步加载规范?AMD?CMD
Springmvc
SpringMVC运行原理
1. 客户端请求提交到DispatcherServlet
2. 由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller
3. DispatcherServlet将请求提交到Controller
4. Controller调用业务逻辑处理后,返回ModelAndView
5. DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图
6. 视图负责将结果显示到客户端
/xdp-gacl/p/4249939.html(di ioc)
1. IOC控制反转(spring的核心):控制权由对象本身转向容器,由容器对bean对象进行控制。(Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。对象之间松耦合,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活)
2. DI(依赖注入):由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。
3. AOP面向切面编程:把具体的类创建对应的代理类,通过代理类来对具体类进行操作,即动态代理。
AOP使用场景
AOP用来封装横切关注点,具体可以在下面的场景中使用:
Authentication 权限
Caching 缓存
Context passing 内容传递
Error handling 错误处理
Lazy loading 懒加载
Debugging 调试
logging, tracing, profiling a
文档评论(0)