Java程序员福利:历时两年半整理,阿里Java练习生葵花宝典

又是一年结尾,这一年你产生过多少次跳槽走人的念头?新的一年你有“新年新开始”的跳槽计划吗?来看看同你一样有一颗蠢蠢欲动跳槽之心的人们准备怎么做。 如今,跳槽已成为职场人晋升加薪的常见方式之一,可过于频繁的跳槽却容易被面试官认为你是一个职业方向不明确、缺乏稳定性的员工。其实在今年会有一个明显的感受:今年的面试,无论一面二面还是三面,都很考验Java程序员的技术功底。但是跳槽需谨慎,一定不要从一个坑跳到另一个坑!

对于面试,能给大家的帮助不多;大道理没意思,所以我把最近花了两年半时间整理的一些面试题分享给大家吧。包含面试必问知识点:MySQL篇、Redis篇、MongoDB篇、Zookeeper篇、Nginx篇、算法篇、内存篇、CPU篇、磁盘篇、网络通信篇、安全篇、并发篇等等。原预计花几个月零碎时间整理,没想到最后花了将近两年半年的时间才完成。由于文章篇幅限制,下面分享出来的将是以面试题或图片形式展现出来,希望对各位同仁接下来的面试已经自身知识体系理解有一定的帮助。

一. Java面试专题分享

MySQL面试专题

  • 主键超键候选键外键
  • 数据库事务的四个特性及含义
  • 视图的作用,视图可以更改么?
  • drop,delete与truncate的区别
  • 索引的工作原理及其种类
  • 连接的种类
  • 数据库范式
  • 数据库优化的思路
  • 存储过程与触发器的区别
  • 解释SQL的left join和right join

Redis面试专题

  • 使用Redis有哪些好处?
  • redis相比memcached有哪些优势?
  • redis常见性能问题和解决方案
  • MySQL里有2000w数据, redis中只存20w的数据,如何保证redis中的数据都是热点数据
  • zookeeper的四种类型的znode
  • Memcache-与Redis的区别都有哪些?
  • Redis常见的性能问题都有哪些?如何解决?
  • redis最适合的场景
  • Redis的同步机制了解么?
  • 是否使用过Redis集群,集群的原理是什么?

MongoDB面试专题

  • 什么是MongoDB ?
  • MongoDB是由那种语言写的?
  • MongoDB的优势有哪些?
  • 什么是数据库?
  • 什么是集合?
  • 什么是文档?
  • MongoDB和关系型数据库术语对比图
  • 什么是"mongod" ?
  • "mongod"参数有什么?
  • 什么是"mongo" ?
  • MongoDB哪个命令可以切换数据库?
  • 什么是非关系型数据库?
  • 非关系型数据库有哪些类型?
  • 为什么用MOngoDB ?
  • 在哪些场景使用MongoDB ?
  • MongoDB中的命名空间是什么意思
  • 哪些语言支持MongoDB
  • 在MongoDB中如何创建一个 新的数据库?
  • 在MongoDB中如何查看数据库列表?
  • MongoDB中的分片是什么意思?
  • 如何查看使用MongoDB的连接?
  • 什么是复制?
  • 在MongoDB中如何在集合中插入一个文档?
  • 在MongoDB中如何除去- -个数据库 ?
  • 在MongoDB中如何创建一个集合 ?
  • 在MongoDB中如何查看一个已经创建的集合 ?

Zookeeper面试专题

  • zookeeper是什么?
  • zookeeper提供了什么?
  • zookeeper文件系统
  • zookeeper的四种类型的znode
  • zookeeper通知机制
  • zookeeper有哪些应用场景?
  • zk的命名服务
  • zk的配置管理服务
  • zk的集群管理
  • zk的分布式锁
  • zk队列管理
  • zk数据复制
  • zk中zab的工作原理
  • zk是如何保证事物的顺序一致性
  • zk集群下server工作状态
  • zk是如何选举Leader的?
  • zk同步流程
  • 分布式通知和协调
  • zk的session机制

二. Java面试题[含答案]

MySQL面试专题

1. 一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15

答:

  1. 如果表的类型是MyISAM,那么是18.因为MyISAM会把自己增主键的最大ID记录到数据文件里,重启MySQL自增主键的最大ID也不会丢失。
  2. 如果表的类型是InnoDB,那么是15.InnoDB表只是把自增主键的最大ID记录到内存中,所以重启数据库或者是对表进行OPTIMIZE操作,都会导致最大ID丢失。

2. Mysql的技术特点是什么

答:Mysql数据库软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多线程SQL服务器、不同的后端、广泛的应用程序编程接口和管理工具。

3. Mysql服务器默认端口是什么

答:Mysql服务器的默认端口是3306。

4. 如何区分FLOAT和DOUBLE

答:以下是FLOAT和DOUBLE的区别:

  • 浮点数以8位精度存储在FLOAT中,并且有四个字节。
  • 浮点数存储在DOUBLE中,精度为18位,有八个字节。

5. CHAR和VARCHAR的区别

答:以下是CHAR和VARCHAR的区别:

  • CHAR和VARCHAR类型在存储和检索方面有所不同
  • CHAR列长度固定为创建表时声明的长度,长度值范围是1到255
  • 当CHAR值被存储时,它们被用空格填充到特定长度,检索CHAR值时需删除尾随空格。

Redis面试专题

1. Redis相比memcached有哪些优势

答:

  • memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型
  • redis的速度比memcached快很多
  • redis可以持久化其数据

2. Redis支持哪几种数据类型

答:String、List、Set、Sorted Set、hashes

3. 为什么Redis需要把所有数据放到内存中

答:Redis为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。所以redis具有快速和数据持久化的特征。如果不将数据放在内存中,磁盘I/O速度为严重影响redis的性能。在内存越来越便宜的今天,redis将会越来越受欢迎。

4. Redis集群方案什么情况下会导致整个集群不可用

答:有A,B,C三个节点的集群,在没有复制模型的情况下,如果节点B失败了,那么整个集群就会以为缺少5501-11000这个范围的槽而不可用。

5. Jedis与Redisson对比有什么优缺点

答:Jedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持;Redisson实现了分布式和可扩展的Java数据结构,和Jedis相比,功能较为简单,不支持字符串操作,不支持排序、事务、管道、分区等Redis特性。Redisson的宗旨是促进使用者对Redis的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。

Spring面试专题

1. 什么是spring?

答:Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。

2. 解释AOP模块

答:AOP模块用于发给我们的Spring应用做面向切面的开发, 很多支持由AOP联盟提供,这样就确保了Spring和其他AOP框架的共通性。这个模块将元数据编程引入Spring。

3. 解释JDBC抽象和DAO模块

答:通过使用JDBC抽象和DAO模块,保证数据库代码的简洁,并能避免数据库资源错误关闭导致的问题,它在各种不同的数据库的错误信息之上,提供了一个统一的异常访问层。它还利用Spring的AOP 模块给Spring应用中的对象提供事务管理服务。

4. 为什么说Spring是一个容器

答:spring容器是整个spring框架的核心,通常我们说的spring容器就是bean工厂,bean工厂负责创建和初始化bean、装配bean并且管理应用程序中的bean.spring中提供了两个核心接口:BeanFactory和ApplicationContext,ApplicationContext是BeanFactory子接口,它提供了比BeanFactory更完善的功能

5. IOC的优点是什么

答:IOC 或 依赖注入把应用的代码量降到最低。它使应用容易测试,单元测试不再需要单例和JNDI查找机制。最小的代价和最小的侵入性使松散耦合得以实现。IOC容器支持加载服务时的饿汉式初始化和懒加载。

更多的就不贴出来了,不然这篇文章篇幅就太大了下面以图片形式展现还请谅解。本文所有资料分享地址请点击下方传送门获取地址,会有甄别审核,审核过后才能获取,资料整理花费了两年半的零碎时间,希望能对大家今后有所帮助

传送门

三. 其他面试题

spring面试专题

MySQL面试专题

Redis面试专题

MongoDB面试专题

Zookeeper面试专题

本文所涉及到的所有的学习资料、面试题请点击下方传送门获取地址;会有甄别审核,通过后方可获取学习资料,整套面试题整理花费了不少时间,希望能对大家今后在面试过程中有所帮助

传送门

  • 感谢阅读
  • 感谢点赞
  • 提前祝大家都能够拿到心仪的offer

你可能感兴趣的:(后端开发,阿里云,面试,程序人生,java)