关于java:面试半年总结了1000道2023年Java架构师岗面试题

7次阅读

共计 1947 个字符,预计需要花费 5 分钟才能阅读完成。

半年前还在迷茫该学什么,怎样才能走出当初的窘境,半年后曾经胜利上岸阿里,感激在这期间帮忙我的每一个人。

面试中总结了 1000 道经典的 Java 面试题,外面蕴含面试要答复的常识重点,并且我依据常识类型进行了分类,能够说十分全面了~

因为文章篇幅问题,以下只展现局部题目内容,须要残缺文档的敌人,点赞之后【点击此处】即可收费获取!

根底篇

  • 1、Java 语言有哪些特点

1、简略易学、有丰盛的类库
2、面向对象(Java 最重要的个性,让程序耦合度更低,内聚性更高)
3、与平台无关性(JVM 是 Java 跨平台应用的基本)
4、牢靠平安
5、反对多线程

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

面向过程:是剖析解决问题的步骤,而后用函数把这些步骤一步一步地实现,而后在应用的时候一一调用则可。性能较高,所以单片机、嵌入式开发等个别采纳面向过程开发

面向对象:是把形成问题的事务分解成各个对象,而建设对象的目标也不是为了实现一个个步骤,而是为了形容某个事物在解决整个问题的过程中所产生的行为。面向对象有封装、继承、多态的个性,所以易保护、易复用、易扩大。能够设计出低耦合的零碎。然而性能上来说,比面向过程要低。

JVM 篇

  • 说说堆和栈的区别

栈是运行时单位,代表着逻辑,内含根本数据类型和堆中对象援用,所在区域间断,没有碎片;堆是存储单位,代表着数据,可被多个栈共享(包含成员中根本数据类型、援用和援用对象),所在区域不间断,会有碎片。

1、性能不同
栈内存用来存储局部变量和办法调用,而堆内存用来存储 Java 中的对象。无论是成员变量,局部变量,还是类变量,它们指向的对象都存储在堆内存中。

2、共享性不同
栈内存是线程公有的。堆内存是所有线程共有的。

3、异样谬误不同
如果栈内存或者堆内存不足都会抛出异样。栈空间有余:java.lang.StackOverFlowError。堆空间有余:java.lang.OutOfMemoryError。

4、空间大小
栈的空间大小远远小于堆的

Spring 篇

  • 1、什么是 spring?

Spring 是个 java 企业级利用的开源开发框架。Spring 次要用来开发 Java 利用,然而有些扩大是针对构建 J2EE 平台的 web 利用。Spring 框架指标是简化 Java 企业级利用开发,并通过 POJO 为根底的编程模型促成良好的编程习惯。

  • 2、你们我的项目中为什么应用 Spring 框架?

这么问的话,就间接说 Spring 框架的益处就能够了。比如说 Spring 有以下特点:

轻量:Spring 是轻量的,根本的版本大概 2MB。

管制反转:Spring 通过管制反转实现了涣散耦合,对象们给出它们的依赖,而不是创立或查找依赖的对象们。

面向切面的编程(AOP):Spring 反对面向切面的编程,并且把利用业务逻辑和零碎服务离开。

容器:Spring 蕴含并治理利用中对象的生命周期和配置。

MVC 框架:Spring 的 WEB 框架是个精心设计的框架,是 Web 框架的一个很好的替代品。

事务管理:Spring 提供一个继续的事务管理接口,能够扩大到上至本地事务下至全局事务(JTA)

异样解决:Spring 提供方便的 API 把具体技术相干的异样(比方由 JDBC,Hibernate or JDO 抛出的)转化为统一的 unchecked 异样。

MyBatis 篇

SpringBoot 篇

MySQL 篇

  • 说说 InnoDB 与 MyISAM 的区别
  1. InnoDB 反对事务,MyISAM 不反对,对于 InnoDB 每一条 SQL 语言都默认封装成事务,主动提交,这样会影响速度,所以最好把多条 SQL 语言放在 begin 和 commit 之间,组成一个事务;
  2. InnoDB 反对外键,而 MyISAM 不反对。对一个蕴含外键的 InnoDB 表转为 MYISAM 会失败;
  3. InnoDB 是汇集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。然而辅助索引须要两次查问,先查问到主键,而后再通过主键查问到数据。因而,主键不应该过大,因为主键太大,其余索引也都会很大。而 MyISAM 是非汇集索引,数据文件是拆散的,索引保留的是数据文件的指针。主键索引和辅助索引是独立的。
  4. InnoDB 不保留表的具体行数,执行 select count(*) from table 时须要全表扫描。而 MyISAM 用一个变量保留了整个表的行数,执行上述语句时只须要读出该变量即可,速度很快;
  5. Innodb 不反对全文索引,而 MyISAM 反对全文索引,查问效率上 MyISAM 要高;

SpringCloud 篇

Redis 篇

  • 为什么 Redis 单线程模型效率也能那么高?
  1. C 语言实现,效率高
  2. 纯内存操作
  3. 基于非阻塞的 IO 复用模型机制
  4. 单线程的话就能防止多线程的频繁上下文切换问题
  5. 丰盛的数据结构(全称采纳 hash 构造,读取速度十分快,对数据存储进行了一些优化,比方亚索表,跳表等)

局部内容展现

正文完
 0