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点?四个数字分别 ...
随机推荐
- HackerRank "No Prefix Set"
Typical Trie usage. But please note that it could be any order of input strings. #include <algori ...
- [内核同步]自旋锁spin_lock、spin_lock_irq 和 spin_lock_irqsave 分析
转自:http://blog.csdn.net/wh_19910525/article/details/11536279 自旋锁的初衷:在短期间内进行轻量级的锁定.一个被争用的自旋锁使得请求它的线程在 ...
- HDMI EDID解读
现在的显示设备比如显示器,电视等都HDMI接口,那通常每个HDMI接口都保留有一份EDID数据,这个数据可以存在程序里面由系统启动过程中来初始化,更常见的做法是每个HDMI口会有一个EEPROM来保存 ...
- 347. Top K Frequent Elements
Given a non-empty array of integers, return the k most frequent elements. For example,Given [1,1,1,2 ...
- mongoVUE对mongodb常用的基础操作
一. 连接mongodb服务端: 1. 双击mongoVUE,进入如下图所示界面: 2. 点击上图中的“+”,出现如下图,输入要连接的mongodb服务器的ip. ...
- final specifier (since C++11)
Specifies that a virtual function cannot be overridden in a derived class or that a class cannot be ...
- (C#) 判断相等?
值类型直接用 == 号判断就好. 但是对于引用类型,需要实现IComparable 接口,或者重写 Equal 方法,来实现自己的比较目的. 因为对于引用类型,==号比较的是入口地址,对于同一个cla ...
- 单元测试(junit使用)
1.测试的对象是一个类中的方法. 2.导入jar包. 3.单元测试方法时候,测试方法命名规则为 public void 方法名(){},注意:测试类不能命名为public class Test{},T ...
- 3.函数Function
所谓函数,本质上是一种代码的分组形式.我们可以通过这种形式赋予某组代码一个名字,便于日后重用是调用. function sum(a,b){ var c = a+b; return c; } 1.一个函 ...
- 辩护技巧总结——律师在刑事辩护中应注意的几个问题 z
律师在刑事辩护中的角色就像医院中的医生对病人一样,对嫌疑人至关重要.律师的百分之一的失误,对嫌疑人来讲就是百分之百的不幸.因此我在刑事辩护中更加谨慎认真,并归纳了一些注意点供朋友参考. 一.仔细 ...