Java面试专栏
文章平均质量分 95
本专栏根据开源项目JavaGuide进行改编,融合各大厂Java开发面试题。主要章节:Java基础、Java集合、Java多线程、计算机网络、数据结构、操作系统、数据库、JVM、Linux、常用框架、分布式与微服务。
Luke@
这个作者很懒,什么都没留下…
展开
-
Zookeeper
ZAB Zookeeper如何保证分布式数据一致性?(蚂蚁1)Zookeeper 设计为只有一台客户端(Leader)负责处理外部的写事务请求,然后Leader 客户端将数据同步到其他 Follower 节点。ZooKeeper 保证分布式系统数据一致性的核心算法就是** ZAB 协议**(ZooKeeper Atomic Broadcast,原子消息广播协议)。ZAB 借鉴了 Paxos 算法,ZooKeeper能够保证数据一致性主要依赖于 ZAB 协议的 消息广播、崩溃恢复和数据同步 三个过程。.原创 2022-04-27 14:30:00 · 339 阅读 · 0 评论 -
RocketMQ
各种MQ的对比?项目是如何选型的?KafkaRocketMQRabbitMQ单机吞吐量10万级10万级万级开发语言Scala/JavaJavaErlang高可用分布式架构分布式架构主从架构订阅形式基于topic,按照topic进行正则匹配的发布订阅模式基于topic/messageTag,按照消息类型、属性进行正则匹配的发布订阅模式提供了4种:direct, topic ,Headers和fanout。fanout就是广播模式性能稳.原创 2022-04-27 13:30:00 · 1126 阅读 · 0 评论 -
Spring、Spring MVC、Spring Boot、MyBatis
Spring综述什么是Spring?Spring框架的优点?轻量:Spring是轻量的,基本的版本大约2MB。控制反转(IOC): Spring 通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。**面向切面的编程(AOP):**Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。容器:Spring 包含并管理应用中对象的生命周期和配置。MVC框架:Spring的 Web框架是个精心设计的框架,是 Web框架的一个很好的替代品。事务管理:Spr.原创 2022-04-27 11:00:00 · 331 阅读 · 0 评论 -
Java虚拟机
JVM主要组成部分及其作用?类加载器(ClassLoader)运行时数据区(Runtime Data Area)执行引擎(Execution Engine)本地库接口(Native Interface)作用:首先通过类加载器(ClassLoader)会把 Java 代码转换成字节码,运行时数据区(Runtime Data Area)再把字节码加载到内存中,而字节码文件只是 JVM 的一套指令集规范,并不能直接交给底层操作系统去执行,因此需要特定的命令解析器执行引擎(Execution En..原创 2022-04-27 10:00:00 · 145 阅读 · 0 评论 -
Java集合
一、集合容器概述常见的集合类有哪些?常见容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。说一下List、Set和Map三者的区别?ListSetMap特点有序、元素可重复、可添加多个null元素无序、元素不可重复、只可添加一个nullKey-Value键值对,key无序但是唯一实现类ArrayList、LinkedList、VectorHashSet、Linked.原创 2022-04-27 09:00:00 · 66 阅读 · 0 评论 -
Java集合
一、集合容器概述常见的集合类有哪些?常见容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。说一下List、Set和Map三者的区别?ListSetMap特点有序、元素可重复、可添加多个null元素无序、元素不可重复、只可添加一个nullKey-Value键值对,key无序但是唯一实现类ArrayList、LinkedList、VectorHashSet、Linked.原创 2022-04-27 08:00:00 · 71 阅读 · 0 评论 -
Java基础
Java面向对象面向对象和面向过程的区别?面向对象是一种基于面向过程的编程思想,是向现实世界模型的自然延伸,这是一种“万物皆对象”的编程思想。由执行者变为指挥者,在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动。区别:编程思路不同:面向过程以实现功能的函数开发为主,而面向对象要首先抽象出类、属性及其方法,然后通过实例化类、执行方法来完成功能。封装性:都具有封装性,但是面向过程是封装的是功能,而面向对象封装的是数据和功能。面.原创 2022-04-26 23:10:22 · 514 阅读 · 0 评论