java中高级工程师的学习和工作经历总结

描述

最近去了几家公司面试java中高级工程师,打击挺大的,感觉自己一直以来没有很好的深入学习,对各种知识都是一知半解,但心又太高,想找更高薪的职位,结果面试屡屡碰壁,哎,心情好低落,也是时候静下心来,好好总结一下了,准备开个博客,记录一下以前用过的技术、开发经验等,也用来总结一下将来的学习和工作经历。

一、为什么要用线程池,为什么不直接使用thread.start的方法,线程池用的是哪个类

线程池的优点:

第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。

第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。

第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。

线程池的类为:ThreadPoolExecutor

二、项目为什么要用spring,而不是使用new的方式创建实例

容器:Spring是个容器,因为它包含并且管理应用对象的生命周期和配置。如对象的创建、销毁、回调等。同时对象之间的依赖关系交给Spring,降低组件之间的耦合性。

框架:Spring作为一个框架,提供了一些基础功能,(如事务管理,持久层集成等),使开发人员更专注于开发应用逻辑。

三、Redis的数据类型有什么

字符串(Strings),字符串是Redis值的最基础的类型。

列表(Lists),List列表是简单的字符串列表,按照插入顺序排序

集合(Sets),集合(Set)是一个无序的字符串集合

哈希(Hashes),Hashes是字符串字段和字符串值之间的映射,因此他们是展现对象的完美数据类型。

有序集合(Sorted Sets),有序集合与普通集合非常相似,是一个没有重复元素的字符串集合。

四、redis服务挂掉之后怎么办

这个应该涉及到集群、主从数据库复制方面的,具体怎么样不是太懂。

五、单表大数据量如何优化查询

1、 优化索引

2、 使用oracle查询分析器,对sql语句进行分析优化(不使用in等语句 ,子查询改成连接查询等)

3、 建立分区

4、 按业务需求或按自动的枚举值进行分表

5、 使用nosql数据库,MongoDb 、Redis

六、tomcat 最多支持并发多少用户?

server.xml中配置,一般受制于服务器硬件性能和操作系统连接数,tomcat没有限制并发数,但并发数太多会丢连接,默认是150个

七、如何解决大并发访问

1、 页面静态化,动静态页面项目分离部署

2、 是数据库的调优,包括做数据库集群,使用nosql数据库/内存数据库

3、 使用集群技术,利用apache、nginx等反向代理服务器实现负载均衡。

八、如何处理需求变更

1、软件的需求阶段,就要把项目各方面的需求尽量考虑得清晰详尽,最大限度的减少将来可能存在的需求变更

2、项目实施阶段,建立正规的需求变更流程,文档化管理,有备可查,有据可依,过滤不合理的需求,减少需求的来源,

3、严重影响项目进度或成本或目标的需求变更,需重新立项审批通过才予以执行。

九、软件项目失败的原因

首先项目是项目失败的定义是什么

1、是项目严重超时,不能交付

2、是项目不符合需求

3、项目的某些指标达不到要求,例如性能

原因:

1、 没有充分地剖析项目,对每个功能进行细分和分析,估算工作量和工作难度

2、 项目范围变跟,需求变跟过多,导致项目延期

3、 项目组人员没有足够的技术水平去解决项目遇到的技术难题

4、 项目经理的风险识别和管理能力。项目经理能不能及时地发现项目中存在的问题,和发现问题后如何解决问题的经验

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分