当前位置: 首页>编程语言>正文

技术管理上对架构师的思考 技术架构师面试题

前言

既然要成为Java架构师,首先你要是一个高级Java攻城尸,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;

池技术,什么对象池,连接池,线程池...:;Java反射技术,写框架必备的技术,但是有严重的性能问题,替代方案Java字节码技术;nio,没什么好说的,值得注意的是"直接内存"的特点,使用场景;Java多线程同步异步;

总之一句话越基础的东西越重要,很多人认为自己会用它们写代码了,其实仅仅是知道如何调用api而已,离会用还差的远。


既然目标是Java架构师我们就来测试一下自己的硬实力?

Java基础部分

1、请列举至少3个JDK安装目录下的可执行程序(javac),并列举几个常用的命令行参数

2、Object类(或子类)的finalize()方法在什么情况下被调用?

3、线程状态,BLOCKED和WAITING有什么区别

4、请简单阐述一下Socket通讯原理,以及Socket基于TCP和UDP协议实现的优缺点

5、Collection和Collections有什么区别?

6、JVM内存模型

技术深度

1、描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理

2、Http协议中返回状态200、404、302、301、500、502各式什么含义?

3、在HTML中如何包含JavaScript?

4、Java线程池的实现原理,keepAliveTime等参数的作用。

5、一致性Hash算法

6、IO和NIO的区别,NIO优点

技术框架

1、Struts的Action是不是线程安全的?如果不是,有什么方法可以保证Action的线程安全,如果是,请说明原因。

2、Spring的工作机制以及为什么要使用?

3、MVC是什么?请简述在WEB程序中MVC如何实现?

4、什么是高内聚低耦合,请举例子如何实现

5、mybaits与Hibernate对比有哪些不同点

6、什么情况用接口,什么情况用消息

实战能力

1、有没有处理过线上问题?出现内存泄露,CPU利用率标高,应用无响应时如何处理的。

2、开发中有没有遇到什么技术问题?如何解决的

3、如何实现一个秒杀系统,保证只有几位用户能买到某件商品。

软能力

1、如何学习一项新技术,比如如何学习Java的,重点学习什么

2、有关注哪些新的技术

3、和同事的设计思路不一样怎么处理

4、职业规划是什么?短期,长期目标是什么

5、能介绍下从工作到现在自己的成长在那里

总结

架构师还要根据业务发展阶段,提前预见发展到下一个阶段系统架构的解决方案,并且设计当前架构时将架构的升级扩展考虑进去,做到易于升级;否则等系统瓶颈来了,出问题了再去出方案,或现有架构无法扩展直接扔掉重做,或扩展麻烦问题一大堆,这会对企业造成损失。

程序员应该需要都有自知之明,会就是会,不会就是不会,互联网发展迅速的时代,只能跟上时代的进步,才不会被淘汰。

获取答案

不只是答案,带详尽的功能实战,面试题其实是整理于此,不限于上面几十道。


https://www.xamrdz.com/lan/5qc1960755.html

相关文章: