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、 项目经理的风险识别和管理能力。项目经理能不能及时地发现项目中存在的问题,和发现问题后如何解决问题的经验

时间: 2024-10-10 01:46:40

java中高级软件工程师面试总结的相关文章

问题集录--Java高级软件工程师面试考纲(转)

如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对Java高级开发工程师职位的考核纲要,希望可以帮助到需要的人. 当前,市面上有<Java XX宝典>类似的图书,而且图书中的内容都着重在讲解Java最为基础的部分,最严重的是,里面有着大量错误的内容,极具误导性.另外,网上也有各种各样的Java面试题,很多也是着重在Java语言基础上.实际上,如果

Java高级开发工程师面试考纲

如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对Java高级开发工程师职位的考核纲要,希望可以帮助到需要的人. 当前,市面上有<Java XX宝典>类似的图书,而且图书中的内容都着重在讲解Java最为基础的部分,最严重的是,里面有着大量错误的内容,极具误导性.另外,网上也有各种各样的Java面试题,很多也是着重在Java语言基础上.实际上,如果

(转)Java高级开发工程师面试考纲

当前,市面上有<Java XX宝典>类似的图书,而且图书中的内容都着重在讲解Java最为基础的部分,最严重的是,里面有着大量错误的内容,极具误导性.另外,网上也有各种各样的Java面试题,很多也是着重在Java语言基础上.实际上,如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对Java高级开发工程师职位的考核纲要,希望可以帮助到需要的人. 1

最新Java高级开发工程师面试考纲

当前,市面上有<Java XX宝典>类似的图书,而且图书中的内容都着重在讲解Java最为基础的部分,最严重的是,里面有着大量错误的内容,极具误导性.另外,网上也有各种各样的Java面试题,很多也是着重在Java语言基础上.实际上,如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对Java高级开发工程师职位的考核纲要,希望可以帮助到需要的人. 1.

透露一下Java软件工程师面试常见问题集锦之一

1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象. 2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派生类可以从它的基类

Java高级软件工程师面试题

Java 软件高级工程师笔试题 [智力部分](30分) 1. 烧一根不均匀的绳要用一个小时,如何用它来判断半个小时?(5分) 两头同时烧 2. 4,4,10,10,加减乘除,怎么出24点?四个数字分别只能用一次(5分) (10*10-4)/4 3. 如果你有无穷多的水,一个容积为3L的和5L的提桶,你如何准确称出 4L的水?(5分) 第一步:向5L的通中放两次3L水,这时3L水桶剩1L水. 第二步:将3L水桶中的1L水倒入5L的水桶中,这时5L的水桶中有1L水. 第三步:再用3L水桶盛满水全部倒

京东、tp-link软件工程师面试复盘

京东二面: 一面和二面之间隔了十一小长假,没有特别认真地准备,面试心态就有问题.原因有很多,私人原因占大部分.去北京面试的那一天整个人都非常沉重,也没指望会过,也不知道为什么要去.但这场面试让我更清楚自己的边界在哪里,要学的东西真的还有很多. 1.hashMap的底层实现原理 Entry数组 Entry对象的属性:key.value.next.hash 冲突解决的方式:开放定址法.链地址法 2.jvm内存模型 3.数据库的ER图 4.手写二分排序 5.进程和线程的区别和联系 6.Java自带的线

Java高级开发工程师面试考纲 转

转 http://www.sanesee.com/article/java-engineer-interview-of-content-tree 1 Java基础 1.1 Collection和Map (1)掌握Collection和Map的继承体系. (2)掌握ArrayList.LinkedList.Vector.Stack.PriorityQueue.HashSet.LinkedHashSet.TreeSet.HashMap.LinkedHashMap.TreeMap.WeakHashMa

.net软件工程师面试总结(1)

其实对于应届生面试,如果你的实战经验不足的话,面试官一般会问一些基础的问题.(本博客内容答案是总结了一些原作者的知识,) 1.接口和抽象类的区别(from: http://www.cnblogs.com/huihui-gohay/archive/2009/12/13/1623070.html#undefined)     抽象类和接口的区别在于使用动机.使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性.    延伸: 接口,在表面上有几个没有主体代码的方法定义组成的集合体,有唯一的名