Java工程师(面试)

Java工程师(面试)

​ 目前行业需求已有单体应用的开发转向微服务开发,甚至和大数据开发(java)方向融合,而传统的java开发技术正在逐渐淘汰。

java web 技术栈:java + spring + springmvc +mybatis、spring boot + mybatis-plus、html\css\javaScript、redis、mysql等

微服务部分技术栈:

  • spring cloud 以及 spring cloud Alibaba

    注册中心:Eureka 、阿里nacoa等

    服务调用:openfeign、Ribbon、RestTemplate

    服务降级:hystrix

    服务网关:gateway

    服务发现:DiscoveryClient

  • dubbo + zookeeper

大数据方向+linux相关知识

全栈学习路线

1、Java基础

基础知识很多,不过多介绍,主要是面试笔试高频考察点

  • JVM虚拟机(初级可以不精通,但必须熟悉)

    虚拟机的结构、类的加载机制、双亲委派机制

    垃圾回收机制、垃圾回收算法

  • Java的基础语法、流程控制语句 (掌握)

    基本数据类型以及包装类之间的转换

    对象创建过程中JVM中堆与栈中分别存储了什么?

  • 面向对象(掌握)

    什么是面向对象?特性?与面向过程的好处与区别?

  • 接口以及抽象(掌握)

    接口与抽象的特点以及区别?

    什么是面向接口编程?什么是面向抽象编程?有什么好处?

  • 集合框架(数据结构) (重点掌握)

    了解集合体系、底层结构,哪些是线性安全?哪些是线性不安全?

    线性不安全时在多线程并发时要注意哪些问题?

    如何避免线性不安全带来的数据安全问题?

  • 异常

    error与运行时异常的区别?

    异常的处理机制、自定义异常、常见的异常有哪些?

  • IO流、异步IO、NIO、BIO(掌握)

    熟悉各种输入输出流的用法

    从系统吞吐效率考虑,异步IO与阻塞IO的区别,以及如何实现

  • 多线程以及JUC(重点掌握)

    实现多线程的三种方法?掌握消费者与生产者问题

    锁机制、各种锁的基本概念、自旋锁、原子引用,Java的内存模型,内存可见性等等

    JUC包下的常用线性安全的类

  • 反射(掌握)

    什么是反射?反射的基本用法?(几乎所有的框架底层都使用了反射,进阶分析源码必备)

  • 常用类以及工具类的使用(面试题可能会手写代码)(掌握)

    String类、StringBuffer、StringBuilder、Date等等

  • 基础的笔试:(掌握)

    冒泡排序、选择排序、二分查找、二叉树、链表的实现、利用集合类的特性去重、排序等等

2、Java Web

该部分会考察网络有关的支持

  • Http基于Tcp\ip协议

    TCP为什么三次握手,要四次挥手?

    为什么说TCP是可靠传输?

  • request请求

    请求头、请求体、get、post请求的区别?

    HttpServletRequest的api使用?

    请求的生命周期?

  • response响应

    请求头、请求体、HttpServletResponse的api使用

  • servlet

    什么是servlet? servlet的生命周期?service方法源码?doget\dopost方法?

    web.xml中servlet的配置、中文乱码过滤的三种方法?

  • context上下文

  • session and cookie工作原理?

  • 什么是转发?什么重定向?区别是什么?

  • Tomcat的架构?工作原理?基本配置?

  • 过滤器

    什么是过滤器?如何自定义过滤器?

  • 拦截器

    什么是拦截器?如何自定义拦截器?

  • maven使用,idea使用,mysql数据库相关?

大厂面试题:

  1. 浏览器地址栏中输入地址回车,到页面渲染都发生了什么?
  2. http 1.0 与http 2.0的区别?
  3. 在本机的Tomcat上如何使用地址解析?

3、spring

  • 什么是spring?
  • 什么是控制反转?
  • 什么是依赖注入?如何实现依赖注入?
  • 什么是AOP面向切片?
  • AOP的实现方法?
  • spring的注解开发?配置版开发?
  • javaBean的自动装配?属性注入?
  • Autoword与resource的区别?
  • 注入方式有哪些?以及底层实现?
  • 静态代理以及实现?
  • 动态代理以及实现?jdk 与cglib?
  • 声明式事务
  • 集成mybatis
  • spring 涉及到的设计模式?

4、spring mvc

  • springMvc的工作原理?请求的生命周期?
  • springMvc的注解版开发?
  • MVC三层架构?
  • ssm三大框架的集成(spring\springmvc\mybatis)

5、spring boot

  • 场景启动器
  • 自动配置原理(面试高频重点)必须了解源码
  • 集成各种数据库redis、mongodb等
  • 集成中间件kafka、druid等
  • 静态资源配置等

你可能感兴趣的:(Java工程师(面试))