美文网首页
BATJ互联网月薪38K的Java岗面试题首曝光,掌握这些大厂O

BATJ互联网月薪38K的Java岗面试题首曝光,掌握这些大厂O

作者: 老程不秃 | 来源:发表于2022-09-27 19:20 被阅读0次

    最近很多程序员朋友反映工作了好几年,眼看自己身边的伙伴都拿到了30K+的薪水,自己的薪水却迟迟没有动静。猎聘大数据表明,无论企业还是个人,都采取积极的行动应对,寻找人才,寻找路径,寻找新的可能和机遇。

    目前,一个Java编程工程师的月薪轻松过万,一个有几年工作经验的Java工程师薪酬在36万~60万元之间不等,而更顶尖的Java技术人才则是年薪轻松超百万。你的薪资没到位,是因为你搞错了方向。Java编程现在非常热门,BAT在狂招人,供不应求。

    下面给大家带来一份Java面试题总汇,掌握了这些面试题,我觉得月薪30K你可以冲一下!

    内容包括:Java基础、JVM、多线程、并发、Spring、MyBatis、SpringBoot、MySQL、Redis、SpringCloud、Nginx、MQ、数据结构与算法、Linux,最后还有简历指导!

    基础篇

    • Java语言有哪些特点

    • 面向对象和面向过程的区别

    • 八种基本数据类型的大小,以及他们的封装类

    • String、String StringBuffer 和 StringBuilder 的区别是什么?

    • HashMap和HashTable的区别

    • Java的四种引用,强弱软虚

    • 有没有可能两个不相等的对象有相同的hashcode

    • try catch finally,try里有return,finally还执行么?

    • OOM你遇到过哪些情况,SOF你遇到过哪些情况

    • Java IO与 NIO的区别

    • 说说List,Set,Map三者的区别?

    image.png

    JVM篇

    • 简述一下JVM的内存模型

    • 什么时候会触发FullGC

    • 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?

    • 对象分配规则

    • 描述一下JVM加载class文件的原理机制?

    • 如何判断对象可以被回收?

    • JVM的永久代中会发生垃圾回收么?

    • 垃圾收集算法

    • 调优命令有哪些?

    • Minor GC与Full GC分别在什么时候发生?

    • 你知道哪些JVM性能调优

    image.png

    多线程&并发篇

    • Java中实现多线程有几种方法

    • notify()和notifyAll()有什么区别?

    • 为什么wait和notify方法要在同步块中调用?

    • 有三个线程T1,T2,T3,如何保证顺序执行?

    • Thread类中的yield方法有什么作用?

    • Java线程池中submit() 和 execute()方法有什么区别?

    • 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗synchronized关键字最主要的三种使用方式:

    • 什么是线程安全?Vector是一个线程安全类吗?

    • 常用的线程池有哪些?简述一下你对线程池的理解

    image.png

    Spring篇

    • Spring的IOC和AOP机制?

    • Spring中Autowired和Resource关键字的区别?

    • 依赖注入的方式有几种,各是什么?

    • 讲一下什么是Spring

    • Spring MVC流程

    • SpringMVC怎么样设定重定向和转发的?

    • SpringMVC常用的注解有哪些?

    • Spring的AOP理解:

    • Spring的IOC理解

    • 解释一下spring bean的生命周期

    • 解释Spring支持的几种bean的作用域。

    • Spring基于xml注入bean的几种方式:

    • Spring框架中都用到了哪些设计模式?

    image.png

    Mybatis篇

    • 什么是MyBatis

    • MyBatis的优点和缺点

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

    • 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?

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

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

    • 如何执行批量插入?

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

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

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

    • Mybatis的一级、二级缓存

    image.png

    SpringBoot篇

    • Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

    • 运行Spring Boot有哪几种方式?

    • 如何理解 Spring Boot 中的 Starters?

    • 如何在Spring Boot启动的时候运行一些特定的代码?

    • Spring Boot 需要独立的容器运行吗?

    • Spring Boot中的监视器是什么?

    • 如何使用Spring Boot实现异常处理?

    • 你如何理解 Spring Boot 中的 Starters?

    • springboot常用的starter有哪些

    • SpringBoot 实现热部署有哪几种方式?

    • 如何理解 Spring Boot 配置加载顺序?

    • Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

    • 如何集成 Spring Boot 和 ActiveMQ?

    image.png

    MySQL篇

    • 数据库的三范式是什么

    • 数据库引擎有哪些

    • InnoDB与MyISAM的区别

    • 数据库的事务

    • 索引问题

    • SQL优化

    • 简单说一说drop、delete与truncate的区别

    • 什么是视图

    • 什么是内联接、左外联接、右外联接?

    • 并发事务带来哪些问题?

    • 分库分表之后,id 主键如何处理?

    image.png

    Redis篇

    • Redis持久化机制

    • 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

    • 热点数据和冷数据是什么

    • Memcache与Redis的区别都有哪些?

    • 单线程的redis为什么这么快

    • redis的数据类型,以及每种数据类型的使用场景

    • redis的过期策略以及内存淘汰机制

    • Redis 为什么是单线程的

    • Redis 常见性能问题和解决方案?

    • 为什么Redis的操作是原子性的,怎么保证原子性的?

    • Redis事务

    image.png

    SpringCloud篇

    • 什么是SpringCloud

    • 什么是微服务

    • SpringCloud有什么优势

    • 什么是服务熔断?什么是服务降级?

    • Eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?

    • SpringBoot和SpringCloud的区别?

    • 负载平衡的意义什么?

    • 什么是Hystrix?它如何实现容错?

    • 什么是Hystrix断路器?我们需要它吗?

    • 说说 RPC 的实现原理

    image.png

    Nginx篇

    • 简述一下什么是Nginx,它有什么优势和功能?

    • Nginx是如何处理一个HTTP请求的呢?

    • 列举一些Nginx的特性

    • 请列举Nginx和Apache 之间的不同点

    • 在Nginx中,如何使用未定义的服务器名称来阻止处理请求?

    • 请解释Nginx服务器上的Master和Worker进程分别是什么?

    • 请解释代理中的正向代理和反向代理

    • 解释Nginx用途

    image.png

    MQ篇

    • 为什么使用MQ

    • MQ优缺点

    • Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别?

    • 如何保证高可用的?

    • 如何保证消息的可靠传输?如果消息丢了怎么办

    • 如何保证消息的顺序性

    • 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?

    • 设计MQ的思路

    image.png

    数据结构与算法篇

    • 常用的数据结构

    • 数据里有{1,2,3,4,5,6,7,8,9},请随机打乱顺序,生成一个新的数组(请以代码实现)

    • 写出代码判断一个整数是不是2的阶次方(请代码实现,谢绝调用API方法)

    • 假设今日是2015年3月1日,星期日,请算出13个月零6天后是星期几,距离现在多少天(请用代码实现,谢绝调用API方法)

    • 有两个篮子,分别为A 和 B,篮子A里装有鸡蛋,篮子B里装有苹果,请用面向对象的思想实现两个篮子里的物品交换(请用代码实现)

    • 更多算法练习

    image.png

    Linux篇

    • 绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?

    • 怎么查看当前进程?怎么执行退出?怎么查看当前路径?

    • 查看文件有哪些命令

    • 列举几个常用的Linux命令

    • 你平时是怎么查看日志的?

    image.png

    简历篇

    • 为什么说简历很重要?

    • 先从面试来说

    • 再从面试说起

    • 必知必会的几点

    • 必须了解的两大法则

    • 项目经历怎么写

    • 专业技能怎么写

    • 排版注意事项

    • 其他一些小tips


      image.png

    重点

    由于本套笔记手册干货内容太多,就不一 一展示了,需要的小伙伴可自行领取。希望可以帮助大家在学习,和面试的路上,更加顺畅!提升技术,明年提升薪资【如需笔记原文档参考学习见鄙人的(个人简介)】

    相关文章

      网友评论

          本文标题:BATJ互联网月薪38K的Java岗面试题首曝光,掌握这些大厂O

          本文链接:https://www.haomeiwen.com/subject/hqqqartx.html