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、 项目经理的风险识别和管理能力。项目经理能不能及时地发现项目中存在的问题,和发现问题后如何解决问题的经验
java中高级软件工程师面试总结的更多相关文章
- [面试] Java高级软件工程师面试考纲(转)
如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对 ...
- Java高级软件工程师面试考纲(转)
如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对 ...
- Java高级软件工程师面试考纲
如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对 ...
- 问题集录--Java高级软件工程师面试考纲(转)
如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对 ...
- Java高级开发工程师面试笔记
最近在复习面试相关的知识点,然后做笔记,后期(大概在2018.02.01)会分享给大家,尽自己最大的努力做到最好,还希望到时候大家能给予建议和补充 ----------------2018.03.05 ...
- Java 初级软件工程师 认证考试试卷1
Java 初级软件工程师 认证考试试卷 笔试(A卷) 考试时间150分钟 总分 100分 姓 名_______________________ 身份证号_____________ ...
- Java软件工程师面试常见问题集锦之一
1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象 ...
- .NET软件工程师面试总结
1.手写画出系统架构图,系统代码架构,有什么技术难点? 2.手写画出系统部署图 CDN(一般购买别人的服务器会自动CDN,他们自己配置就OK啦) 3.asp.net 的session怎么实现会话共享 ...
- Java高级软件工程师面试题
Java 软件高级工程师笔试题 [智力部分](30分) 1. 烧一根不均匀的绳要用一个小时,如何用它来判断半个小时?(5分) 两头同时烧 2. 4,4,10,10,加减乘除,怎么出24点?四个数字分别 ...
随机推荐
- 根据不同的分辨率调用不同的css
var Other1600 = "css_1600.css"; var Other1440 = "css_1440.css"; var Other1366 = ...
- 【设计模式】单件模式(Singleton)--各类单件模式的比较
单件模式 确保一个类只有一个实例,并提供一个安全的访问点. 线程安全+延时初始化+高性能(使用:延时初始化占位符模式) ------测试----------- 线程安全+[非]延时初始化 线程安全+延 ...
- Puppet master/agent installation on RHEL7
==================================================================================================== ...
- 战胜忧虑<2>——忙碌可以消除忧虑
忙碌可以消除忧虑 当你的脑筋空出来时,也会有东西进去补充,是什么呢?通常都是你的感觉.为什么?因为忧虑.恐惧.憎恨.嫉妒.和羡慕等等情绪,都是由我们的思想所控制的,这种情绪都非常猛烈.会把我们思想中所 ...
- 关于mac mini组装普液晶显示器
申请了好久的mac mini,部门终于给买下来了.没想到,买回来之后的组装还是折腾了我们一把. 因为先前没用过mac mini,以为它和普通的台式机一样,买回来就能直接到显示器上用了.结果买回来ma ...
- 黄聪:Wordpress、PHP使用POST数据过大导致MySQL server has gone away报错原因分析
错误原因: 当POST的数据超过 max_allowed_packet 就会报 MySQL server has gone away 的错误. 1.查看当前Mysql的 max_allowed_pac ...
- 《黄聪:手机移动站SEO优化教程》4、如何实现手机移动网站和PC站点的自主适配
视频地址:http://www.tudou.com/programs/view/v4Hur5vjav4/ 1.自主适配 A:站点自己做好PC与手机之间的适配,以及手机站各个版式之间的适配.当手机用户通 ...
- hadoop mapred-queue-acls 配置(转)
hadoop作业提交时可以指定相应的队列,例如:-Dmapred.job.queue.name=queue2通过对mapred-queue-acls.xml和mapred-site.xml配置可以对不 ...
- web开发
教程 html教程 CSS 教程 JavaScript 教程 参考手册 HTML 4.01 / XHTML 1.0 参考手册 CSS 参考手册 JavaScript 参考手册 PHP 手册 CodeI ...
- (XAML)"XXXX" does not exist in the namespace "clr-
Error 139 Assembly 'System.Activities.Core.Presentation' was not found. Verify that you are not miss ...