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点?四个数字分别 ...
随机推荐
- label 与 input
<form onsubmit="return checkform()" > <div style=" width:100%; border:0px #0 ...
- 【freemaker】之循环,判断,对象取值
entity: public class Employee { private Integer id; private String name; private Integer age; privat ...
- 通过共享用户ID来实现多个应用程序使用同一个进程(一些情况的测试)
从很多方面来看,每个Android 应用程序都存在于它自己的世界之中:• 默认情况下,每个应用程序均运行于它自己的Linux 进程中.当应用程序中的任意代码开始执行时,Android 启动一个进程,而 ...
- 黄聪:C#禁止Webbrowser中的脚本错误提示,自动屏蔽弹出窗口
using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using ...
- .net关于httpModules的应用示例
这三个对象我们在开发Asp.net程序时经常会用到,似乎很熟悉,但有时 候又不太确定.本文通过一个简单的例子来直观的比较一下这三个对象的使用. HttpModule:Http模块,可以在页面处理前后. ...
- SOA_环境安装系列2_Oracle RCU安装和环境搭建(案例)
2015-01-02 Created By BaoXinjian
- CE_现金账户转账汇入汇出交易(案例)(未完成)
2014-07-15 BaoXinjian 一.摘要 二.案例 通过 Oracle Payments 结算事务处理 通过付款模板 事物处理子类型 已验证 -> 正在结算中 ->
- eclipse的shell相关插件
1.Easy Shell a. 功能 可以在Eclipse IDE里选中一个文件或目录,利用Easy Sehll直接跳转到Sehll窗口,很方便 b. 安装 Help - Install New So ...
- 转--Android实现ListView过滤功能,继承于BaseAdapter,非ArrayAdapter。
其实实现ListView过滤功能最方便的便是使用ArrayAdapter,里面自带的getFilter()方法能很方便的实现此功能,但是在实际的开发中,一般都是继承于BaseAdapter.还有一种是 ...
- [转]VGA、QVGA、CIF、QCIF 。。。的含义
转自:http://www.360doc.com/content/07/0329/15/494_419655.shtml 相信大家时常都听到手机支持 VGA 镜头.QVGA 屏幕显示.CIF 短片拍摄 ...