前言

一份月薪30K的java开发岗位工作要求是怎样的呢?面试都会问到哪些呢?

任职要求:
1、计算机或相关专业本科(或以上)学历,具备3年以上Java服务端开发经验,熟悉常用的Java开源框架,如熟悉Spring、SpringMVC、SpringBoot、Hibernate、MyBatis等,了解其原理和实现机制;
2、擅长Java Web服务开发,熟悉掌握各种Web应用开发模式,具有丰富的高并发、大数据系统的设计、研发、调试经验者优先;
3、精通Java及面向对象设计开发,熟悉常见设计模式,有系统设计经验,研究过优秀开源软件源码并有心得者优先;
4、熟悉常用数据库(MySQL、Redis等)的原理和使用,具有良好的数据库设计能力,对SQL编写和优化有丰富的经验;
5、熟悉Linux操作系统,掌握常用的Shell命令;

基于这些要求我们身为程序员必须要掌握:

1、数据结构与算法。简单的算法与数据结构你还是该掌握的吧?这个要求过分吗?作为程序员的你,如果连数组,链表,这两个基本的结构都搞不懂,还拿什么指望你去理解,平衡二叉树,红黑树,哈希表,堆,桶,图,这些更为复杂的数据结构?简单的冒泡和选择排序手写下都面有难色的主,还指望他听过快排、插入、希尔、堆排序、二路归并、多路归并、桶排、计数、基数这些本该掌握的很基础的东西?有些时候遇到点知道时间复杂度和空间复杂度的人都阿弥陀佛了……

2、操作系统。基本的linux命令你还是要会几个撒?内存分配、进程、线程调度这些简单基础的概念你还是应该有一点撒?别说这些东西没用,很多时候在实现的时候,很多软件参考了不少操作系统的设计思想。

3、数据库层面。几大范式定义概念搞懂。数据库事务的ACID总能扯明白吧?隔离层级分别保障的力度,和依然存在的问题你得知晓吧?有些都工作几年的人了,不过分吧?SQL优化搞没搞过?主流的MYSQL的存储引擎之间的区别,几种索引的区别和应用场景,应该如数家珍撒?作为一只技术狗,数据库事务的实现方式你应该知道一些吧?二阶段提交、三阶段提交你知道不?这些知道几分,就看你个人深浅了。

以上算通用层面的东西,只要你说你是个程序员,你就应该知道。下面我们就来掰扯下和java有关的东西了。

30K的面试必将会问到:性能优化、微服务架构、并发编程、开源框架、分布式等。下面将会针对这些点展开分析。

性能优化

  1. tomcat性能优化
  2. JVM性能优化
  3. Mysql性能优化

1、Tomcat性能优化

  • 你怎么给Tomcat调优?
  • 如何加大Tomcat链接数?
  • 怎么加大Tomcat的内存?
  • Tomcat中如何禁用列目录下的文件?
  • Tomcat有几种部署方式?
  • Tomcat的优化经验分享?

2、JVM性能优化

  • JVM类加载过程?
  • JVM内存分配?
  • 描述下JVM加载Class文件的原理机制?
  • GC是什么?为什么要有GC?
  • 简述Java垃圾回收机制?
  • 如何判断一个对象是否存活?(GC对象的判定方法)
  • 垃圾回收的优点和原理。并考虑2种回收机制?
  • 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
  • Java中会存在内存泄漏吗,请简单描述。
  • 深拷贝和浅拷贝
  • System.gc()和Runtime.gc)会做什么事情?
  • finalize(方法什么时候被调用?析构函数(finalization)的目的是什么?
  • 如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?
  • 什么是分布式垃圾回收(DGC)?它是如何工作的?
  • 串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?
  • 在Java中,对象什么时候可以被垃圾回收?
  • 简述Java内存分配与回收策略以及 Minor GC和Major GC。
  • JVM的永久代中会发生垃圾回收么?
  • Java中垃圾收集的方法有哪些?
  • 什么是类加载器,类加载器有哪些?
  • 类加载器双亲委派模型机制?

微服务架构

  1. SpringCloud
  2. SpringBoot
  3. Dubbo

1、SpringCloud面试整理

  • 什么是Spring Cloud?
  • 使用Spring Cloud有什么优势?
  • 服务注册和发现是什么意思?Spring Cloud如何实现?
  • 负载平衡的意义什么?
  • 什么是Hystrix?它如何实现容错?
  • 什么是Hystrix断路器?我们需要它吗?
  • 什么是Netflix Feign?它的优点是什么?
  • 什么是Spring Cloud Bus?我们需要它吗?

2、SpringBoot面试整理

  • 什么是Spring Boot?
  • Spring Boot有哪些优点?
  • 什么是JavaConfig?
  • 如何重新加载Spring Boot上的更改,而无需重新启动服务器?
  • Spring Boot中的监视器是什么?
  • 如何在Spring Boot中禁用Actuator端点安全性?
  • 如何在自定义端口上运行Spring Boot应用程序?
  • 什么是YAML?
  • 如何实现Spring Boot应用程序的安全性?
  • 如何集成Spring Boot和ActiveMQ?
  • 如何使用Spring Boot实现分页和排序?
  • 什么是Swagger?你用Spring Boot实现了它吗?
  • 什么是Spring Profiles?
  • 什么是Spring Batch?
  • 什么是FreeMarker模板?
  • 如何使用Spring Boot实现异常处理?
  • 您使用了哪些starter maven依赖项?
  • 什么是CSRF攻击?
  • 什么是WebSockets?
  • 什么是AOP?
  • 什么是Apache Kafka?
  • 我们如何监视所有Spring Boot微服务?

3、Dubbo面试整理

  • Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?
  • dubbo服务负载均衡策略?
  • Dubbo在安全机制方面是如何解决的
  • dubbo连接注册中心和直连的区别

并发编程高级面试

  • Synchronized用过吗,其原理是什么?
  • 你刚才提到获取对象的锁,这个“锁”到底是什么?如何确定对象的锁?
  • 什么是可重入性,为什么说Synchronized是可重入锁?
  • JVM对Java的原生锁做了哪些优化?
  • 为什么说Synchronized是非公平锁?
  • 什么是锁消除和锁粗化?
  • 为什么说Synchronized是一个悲观锁?乐观锁的实现原理又是什么?什么是CAS,它有什么特性?
  • 乐观锁一定就是好的吗?
  • 跟Synchronized相比,可重入锁ReentrantLock其实现原理有什么不同?
  • 那么请谈谈AQS框架是怎么回事儿?
  • 请尽可能详尽地对比下Synchronized和ReentrantL ock的异同。
  • ReentrantLock 是如何实现可重入性的?
  • 除了ReetrantL ock,你还接触过JUC中的哪些并发工具?
  • 请谈谈ReadWriteLock和StampedLock。
  • 如何让Java的线程彼此同步?你了解过哪些同步器?请分别介绍下。
  • CyclicBarrier 和CountDownl _atch看起来很相似,请对比下呢?
  • Java中的线程池是如何实现的?
  • 创建线程池的几个核心构造参数?
  • 线程池中的线程是怎么创建的?是一开始就随着线程池的启动创建好的吗?
  • 既然提到可以通过配置不同参数创建出不同的线程池,那么Java中默认实现好的线程池又有哪些呢?请比较它们的异同。
  • 如何在Java线程池中提交线程?
  • 什么是Java的内存模型,Java 中各个线程是怎么彼此看到对方的变量的?
  • 请谈谈volatile 有什么特点,为什么它能保证变量对所有线程的可见性?
  • 既然volatile能够保证线程间的变量可见性,是不是就意味着基于volatile变量的运算就是并发安全的?
  • 请对比下volatile对比Synchronized的异同。
  • 请谈谈ThreadLocal是怎么解决并发安全的?
  • 很多人都说要慎用ThreadLocal,谈谈你的理解,使用ThreadLocal需要注意些什么?

开源框架面试

  1. Spring面试整理
  2. SpringMVC面试整理
  3. MyBatis面试整理

1、Spring面试整理

  • 什么是Spring框架?Spring框架有哪些主要模块?
  • 使用Spring框架能带来哪些好处?
  • 什么是控制反转(IOC)?什么是依赖注入?
  • 请解释下Spring框架中的LOC?
  • BeanFactory 和ApplicationContext有什么区别?
  • Spring 有几种配置方式?
  • 如何用基于XML配置的方式配置Spring?
  • 如何用基于Java配置的方式配置Spring?
  • 怎样用注解的方式配置Spring?
  • 请解释Spring Bean的生命周期?
  • Spring Bean的作用域之间有什么区别?
  • 什么是Spring inner beans?
  • Spring框架中的单例Beans是线程安全的么?
  • 请举例说明如何在Spring中注入-个Java Collection?
  • 如何向Spring Bean中注入-一个Java.util.Properties?
  • 请解释Spring Bean的自动装配?
  • 请解释自动装配模式的区别?

2、SpringMVC面试整理

  • 什么是SpringMVC?
  • Spring MVC的优点:
  • SpringMVC工作原理?
  • SpringMVC流程?
  • SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决?
  • 如果你也用过struts2.简单介绍下springMVC和struts2的区别有哪些?
  • SpingMvc中的控制器的注解一般用那个,有没有 别的注解可以替代?
  • @RequestMapping 注解用在类上面有什么作用?
  • 怎么样把某个请求映射到特定的方法上面?
  • 如果在拦截请求中,我想拦截get方式提交的方法,怎么配置?
  • 怎么样在方法里面得到Request,或者Session?
  • 我想在拦截的方法里面得到从前台传入的参数,怎么得到?
  • 如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
  • SpringMvc中函数的返回值是什么?
  • SpringMVC怎么样设定重定向和转发的?
  • SpringMvc 用什么对象从后台向前台传递数据的?
  • SpringMvc 中有个类把视图和数据都合并的一起的,叫什么?
  • 怎么样把ModelMap里面的数据放入Session里面?
  • SpringMvc怎么和AJAX相互调用的?
  • SpringMvc 里面拦截器是怎么写的

3、MyBatis面试整理

  • 什么是MyBatis?

  • 讲下MyBatis的缓存

  • Mybatis 是如何进行分页的?分页插件的原理是什么?

  • 简述Mybatis的插件运行原理,以及如何编写-一个插件?

  • Mybatis 动态SQL是做什么的?都有哪些动态SQL?能简述一下动态SQL的执行原理吗?

  • {}和${}的区别是什么?

  • 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?

  • Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?

  • MyBatis 与Hibernate 有哪些不同?

  • MyBatis的好处是什么?

  • 简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?

  • 什么是MyBatis的接口绑定,有什么好处?

  • 接口绑定有几种实现方式,分别是怎么实现的?

  • 什么情况下用注解绑定,什么情况下用xml绑定?

  • MyBatis 实现-对一-有几种方式?具体怎么操作的?

  • Mybatis 能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别?

  • MyBatis 里面的动态Sql是怎么设定的?用什么语法?

  • Mybatis 是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?

  • Xml映射文件中,除了常见的selectlinsertlupdae|delete 标签之外,还有哪些标签?

  • 当实体类中的属性名和表中的字段名不-样,如果将查询的结果封装到指定pojo?

  • Mybatis 映射文件中,如果A标签通过include引用了B标签的内

  • 映射文件中,如果映射文件中,如果A标签通过包括引用了B标签的内容,请问,B标签能否定义在A标签的后面,还是说必须定义在A标签的前面?

  • IBatis 和MyBatis在核心处理类分别叫什么?

分布式面试

  1. 分布式限流面试整理
  2. 分布式通讯面试整理
  3. 分布式数据库面试整理

1.1、ZooKeeper面试专题

1.2、Nginx面试专题

2.1、RabbitMQ消息中间件面试专题

2.2、kafka面试专题

3.1、Redis面试专题

3.2、MongoDB面试专题

3.3、memcached面试专题

【Java进阶营】年薪30WJava岗需要什么水平?《2022年面试总纲笔录》相关推荐

  1. 【Java进阶营】Java是什么?Java的特点有哪些?

    IT程序员现在几乎是薪资高,前景好的行业象征,无论是国内还是国外,IT行业的程序员.工程师,甚至连码农都要比其他行业的从业者的收入高很多!尤其是作为IT界的"常青树"Java,起薪 ...

  2. 【Java进阶营】今天面了一个大学生:这82道SpringBoot面试题都答不上来?还想进大厂?

    Spring Boot面试题 1.什么是Spring Boot? 多年来,随着新功能的增加,spring变得越来越复杂.只需访问页面,我们就会看到可以在我们的应用程序中使用的所有Spring项目的不同 ...

  3. 【Java进阶营】JAVA多线程基础学习二:synchronized

    本篇主要介绍Java多线程中的同步,也就是如何在Java语言中写出线程安全的程序,如何在Java语言中解决非线程安全的相关问题,没错就是使用synchronized. 一.如何解决线程安全问题? 一般 ...

  4. 【Java进阶营】Java多线程基础学习(一)

    **1. 创建线程   ** 1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable ta ...

  5. java 90 训练营 二期下载_90天java进阶营二期 主流java技术与热门开源项目视频教程...

    训练营介绍.avi 课程一.学会梳理Java知识,网站架构演变知识体系.mp4 课程四.springboot的综合讲解.mp4 课程五.springboot框架集成.lombok简介.mp4 课程八. ...

  6. 【Java进阶营】Java面试题收集

    1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Client/Server),客户端/服务端,桌面应用程序 2.你所知道网络协议有那些? H ...

  7. 【Java进阶营】2022全栈Java开发工程师要掌握哪些技能?

    如果你希望加快自己的职业生涯,成为一名全栈Java程序员,那么你可以学习以下这些技能,以便将自己与其他程序员区分开来. 1.软件设计与体系结构 软件设计和体系结构可以说是软件开发过程中最重要的阶段.对 ...

  8. 【Java进阶营】什么是真正的架构设计?某厂十年Java经验让我总结出了这些,不愧是我

    一. 什么是架构和架构本质 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解. 此君说的架构和彼君理解的架构未必是一回事.因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识 ...

  9. 【Java进阶营】阿里架构师手把手教你如何简单快捷地构建Spring应用

    一.Spring介绍 1.1 SpringBoot简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些 ...

最新文章

  1. html画三个重叠的矩形,html5 实现两个矩形的叠加
  2. Javascript字符串的格式化
  3. python导入openpyxl报错问题,终于解决啦
  4. linux导入函数包失败,使用qsub运行shellscript时出现apos;文件意外结束apos;和apos;错误导入函数定义apos;错误 中国服务器网...
  5. 高级工程师必须精通的七种武器(摘录)
  6. javaGUI猜生日游戏
  7. VTK:图片之ImageNonMaximumSuppression
  8. 2018第九届蓝桥杯省赛真题 C语言B组 第一题
  9. android 运行jquery,Android端JQueryMobile使用教程(一)
  10. 位、字,字节与KB的关系
  11. 6月份Github上最热门的Java开源项目!
  12. 一步步学习NHibernate(8)——HQL查询(2)
  13. Transformer、BERT等模型学习笔记
  14. linux nslookup 解析不到dns_网络工程师之nslookup命令
  15. 多目标决策---多目标线性规划的解法
  16. python差分进化算法_差分进化算法(differential evolution)的Python实现
  17. Intel i5-7200U (3100MHZ),1*8GB(DDR4 2666) 在 Aida64 V5.97.4600 的测试结果
  18. 用计算机求值根号12345,手算开根号
  19. css鼠标变成小手(css中鼠标悬停是为小手)
  20. 复杂性研究面临的难题

热门文章

  1. 微众银行测试工程师校招面经
  2. 黑马Luence小结
  3. c语言中extern变量,C语言中的Extern用法
  4. 讲师加油站 | 001 | 成为培训界的C罗,这篇干货你必须get!
  5. 柳锦峰:6.13黄金继续走高,黄金能剑指1352?
  6. 蓝桥杯——ALGO998——娜神平衡
  7. 时钟服务器之晶振类型
  8. 从sigmoid到GELU——神经网络中的激活函数
  9. MPI(OpenMPI和MPICH(IntelMPI、MVAPICH))和OpenMP
  10. 强化学习(RLAI)读书笔记第十六章Applications and Case Studies(alphago)