JAVA高级工程师面试宝典——项目优化相关(五) 柔情只为你懂 2022-03-14 16:24 158阅读 0赞 **五、项目优化相关** **1.日常项目中,如果你接手,你准备从哪些方面调优?** 答:这个呢首先是了解哪些需要优化,需要优化肯定是项目性能遭遇瓶颈或者猜测即将遭遇了,我们才会去考虑优化。那么怎么优化? a、扩容 ,扩容的理解,就是扩充服务器并行处理的能力,简单来说就是加服务器,增加处理请求的能力,例如增加nginx 、tomcat等应用服务器的个数,或者物理服务器的个数,还有加大服务器带宽等等,这里考虑的是硬件方面 b、调优 ,调优,包括系统调优和代码调优 。 系统调优就是说加快处理速度,比如我们所提到的CDN、ehcache、redis等缓存技术,消息队列等等,加快服务间的响应速度,增加系统吞吐量,避免并发,至于代码调优,这些就需要多积累了,比如重构、工厂等, 数据库调优的话这个我不是很懂,只知道索引和存储过程,具体参考:[Mysql数据库调优21个最佳实践][Mysql_21] ,其他数据库调优方面就各位自己找找吧 **2.谈谈你对分布式的理解** 答:个人理解:分布式就是把一个系统/业务 拆分成多个子系统/子业务 去协同处理,这个过程就叫分布式 **3.web如何项目优化** 答:①、浏览器端 压缩源码和图片;2、选择合适的图片格式;3、合并静态资源;4、开启服务器端的Gzip压缩;5、使用CDN;6、延长静态资源缓存时间;7、把CSS放在页面头部,把JavaScript放在页面底部 ②、服务器端优化 **4.单例模式有几种? 如何优化?** 答:5种第一种懒汉,比较懒,在类加载时,不创建实例,因此类加载速度快,但运行时获取对象的速度慢 ;第二种饿汉,在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快;第三种(静态内部类);第四种(枚举);第五种(双重校验锁),这个是第二种方式的升级版 一般的情况下,我会使用第三种方式,这种方式基于classloder机制避免了多线程的同步问题 **5.简单说说线程池的原理和实现** 答:多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 \------------------------------------------------------------------------------ 上一篇:[JAVA高级工程师面试宝典——负载均衡、集群相关(四)][JAVA] 下一篇:[JAVA高级工程师面试宝典——并发和安全方面(六)][JAVA 1] \------------------------------------------------------------------------------ [Mysql_21]: http://blog.csdn.net/ning109314/article/details/9997867 [JAVA]: https://blog.csdn.net/lch520baby/article/details/88252547 [JAVA 1]: https://blog.csdn.net/lch520baby/article/details/88252863
还没有评论,来说两句吧...