最近去了几家公司面试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中高级软件工程师面试总结的更多相关文章

  1. [面试] Java高级软件工程师面试考纲(转)

    如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对 ...

  2. Java高级软件工程师面试考纲(转)

    如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对 ...

  3. Java高级软件工程师面试考纲

    如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对 ...

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

    如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对 ...

  5. Java高级开发工程师面试笔记

    最近在复习面试相关的知识点,然后做笔记,后期(大概在2018.02.01)会分享给大家,尽自己最大的努力做到最好,还希望到时候大家能给予建议和补充 ----------------2018.03.05 ...

  6. Java 初级软件工程师 认证考试试卷1

    Java 初级软件工程师 认证考试试卷   笔试(A卷)   考试时间150分钟 总分 100分     姓    名_______________________ 身份证号_____________ ...

  7. Java软件工程师面试常见问题集锦之一

    1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象 ...

  8. .NET软件工程师面试总结

    1.手写画出系统架构图,系统代码架构,有什么技术难点?  2.手写画出系统部署图 CDN(一般购买别人的服务器会自动CDN,他们自己配置就OK啦) 3.asp.net 的session怎么实现会话共享 ...

  9. Java高级软件工程师面试题

    Java 软件高级工程师笔试题 [智力部分](30分) 1. 烧一根不均匀的绳要用一个小时,如何用它来判断半个小时?(5分) 两头同时烧 2. 4,4,10,10,加减乘除,怎么出24点?四个数字分别 ...

随机推荐

  1. 【转】java int与integer的区别

    java int与integer的区别 int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1 ...

  2. 关于ORALCE一个表空间的数据导入到另一个表空间的方法(原创)

    用户:   whnaproject     所属表空间: whnaproject 新用户   : wniec            所属新表空间: wniec 要求:将用户whnaproject中的数 ...

  3. Linux下查看和添加环境变量

    转自:http://blog.sina.com.cn/s/blog_688077cf01013qrk.html $PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您 ...

  4. u-boot启动流程分析(1)_平台相关部分

    转自:http://www.wowotech.net/u-boot/boot_flow_1.html 1. 前言 本文将结合u-boot的“board—>machine—>arch—> ...

  5. PLSQL_性能优化工具系列09_SQL Plan Management

    2014-09-24 Created By BaoXinjian

  6. Android系统onKeyDown监控/拦截/监听/屏蔽返回键、菜单键和Home键

    在Android系统中用来显示界面的组件(Component)为Activity,也就是说只有重写Activity的onKeyDown方法来监控/拦截/屏蔽系统的返回键(back).菜单键(Menu) ...

  7. 转载__Android-屏幕适配需要注意的地方

    1.尽量使用线性布局(LinearLayout)和相对布局(RelativeLayout),不要使用绝对布局. 2.尽量使用dip和sp,不要使用px. 3.为不同的分辨率提供不同的布局文件和图片. ...

  8. Document root element "configuration", must match DOCTYPE root "mapper".

    最近剛剛鼓搗mybatis , 第一個demo就出了問題.其實原因是因為將mapper中的頭copy到了configuration里去了 <?xml version="1.0" ...

  9. java虚拟机参数设置

    -Xms8000M  初始化的堆大小   -Xmx8000M  堆的最大值 -XX:+HeapDumpOnOutOfMemoryError 堆溢出时Dump出当前内存堆转储快照以便事后分析 -XX:P ...

  10. java网络编程之TCP实例

    Dgram类 package Socket; import java.net.DatagramPacket; import java.net.InetAddress; public class Dgr ...