今天聊聊,java面试时会了解哪些技能呢?~~-~~
一般可分为初级、中级、高级、技术经理、研发总监等岗位,面试不同岗位,有所不一样。。
先来说说初级,一般会有笔试,如果没有笔试,说明这个公司选人不太正规。。
初级程序员,一般1-2年,笔试会有哪些内容?基础要扎实,常见的题目有面向对象、继承、多态、线程、修饰符、类型、类型转换、堆和栈、嵌套循环、集合、jvm原理、静态类、内部类、回收机制、string、StringBuffer、final、简单算法(冒泡等)、数据库操作、sql编写、web、j2ee、服务器相关命令、部署相关、UML建模等。
另外有一些加分项,了解主流技术和使用方法。
中级程序员,一般3-5年,要求就会高一些了,有些公司有笔试,有些公司没有笔试。一般会涉及哪些呢?常见的有:性能调优、需求分析、详细设计、数据库设计、UML建模、技术难点分析、核心代码编写、框架的理解、懂得相关技术原理,如spring、mvc、maven、restful、服务器配置、容器配置、懂得nosql等。另外还得懂得性能调优,数据库索引,代码规范、指导新人。
另外还有一些加分项,熟悉主流技术、原理及配置等。除非你特别优秀,千万不要吹自己带领过团队,做过什么大项目,中级程序员,如果换工作的话,还是要以学习为主,想想就知道了,谦虚点没坏事。
高级程序员,一般5-10年,这个时候要求独立带领团队,或主导项目,产品沟通、需求调研、技术交流、技术评审、指导新人、架构设计、概要设计、UML建模、懂得源码分析能力、对性能、安全、可扩展、可靠性、易用性等非功能性需要要非常了解、文档功底能力要强。涉及的技术有前端相关技术、网关、安全(jwt、防火墙等)、登录认证、调度、监控、消息mq、restful、存储相关(es、mysql、fastfds、redis、mongodb、efk等)、微服务相关(spring cloud和dubbo)、容器(docker、k8s)、jenkins、git、svn、nginx、网络知识、服务器知识、故障排查、部署等。还要学会计划安排,进度跟踪,技术选型、codereview等。
技术经理,一般5-10年,跟高级程序员不同的是,技术经理除了高级程序员要做的事,还要对外对内沟通、管理、解决方案、人才培养、培训、监督、考核、指导、流程、进度、质量、成本 、效率、团队建设、开发规范等。要了解行业发展趋势、业内同行业发展状态等。