面试 [279]

Java集合常见面试题总结

本文转载来自JavaGuide ,如有侵权及时联系。 集合概述 Java 集合概览 Java 集合, 也叫作容器,主要是由两大接口派生而来:一个是 Collection接口,主要用于存放单一元素;另一个是 Map 接口,主要用于存放键值对。对于Collection 接口,下面又有三个主要的子接口:L

JMM(Java 内存模型)详解

JMM(Java 内存模型)主要定义了对于一个共享变量,当另一个线程对这个共享变量执行写操作后,这个线程对这个共享变量的可见性。 要想理解透彻 JMM(Java 内存模型),我们先要从 CPU 缓存模型和指令重排序 说起! 从 CPU 缓存模型说起 为什么要弄一个 CPU 高速缓存呢? 类比我们开发

Java并发常见面试题总结

什么是线程和进程? 何为进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主

ArrayBlockingQueue 源码分析

本文转载来自JavaGuide ,如有侵权及时联系。 阻塞队列简介 阻塞队列的历史 Java 阻塞队列的历史可以追溯到 JDK1.5 版本,当时 Java 平台增加了 java.util.concurrent,即我们常说的 JUC 包,其中包含了各种并发流程控制工具、并发容器、原子类等。这其中自然也

CopyOnWriteArrayList源码分析

本文转载来自JavaGuide ,如有侵权及时联系。 CopyOnWriteArrayList 简介 在 JDK1.5 之前,如果想要使用并发安全的 List 只能选择 Vector。而 Vector 是一种老旧的集合,已经被淘汰。Vector 对于增删改查等方法基本都加了 synchronized

LinkedList源码分析

本文转载来自JavaGuide ,如有侵权及时联系。 LinkedList 简介 LinkedList 是一个基于双向链表实现的集合类,经常被拿来和 ArrayList 做比较。关于 LinkedList 和ArrayList的详细对比,我们 Java 集合常见面试题总结(上)有详细介绍

MySQL三大日志(binlog、redo log和undo log)详解

本文来自公号程序猿阿星投稿,JavaGuide 对其做了补充完善。 前言 MySQL 日志 主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。其中,比较重要的还要属二进制日志 binlog(归档日志)和事务日志 redo log(重做日志)和 undo log(回滚日志)。 今天就

MySQL执行计划分析

本文来自公号 MySQL 技术,JavaGuide 对其做了补充完善。原文地址:https://mp.weixin.qq.com/s/d5OowNLtXBGEAbT31sSH4g 优化 SQL 的第一步应该是读懂 SQL 的执行计划。本篇文章,我们一起来学习下 MySQL EXPLAIN 执行计划相

Redis常见面试题总结

Redis 基础 什么是 Redis? Redis (REmote DIctionary Server)是一个基于 C 语言开发的开源 NoSQL 数据库(BSD 许可)。与传统数据库不同的是,Redis 的数据是保存在内存中的(内存数据库,支持持久化),因此读写速度非常快,被广泛应用于分布式缓存方

MySQL自增主键一定是连续的吗

作者:飞天小牛肉 原文:https://mp.weixin.qq.com/s/qci10h9rJx_COZbHV3aygQ 众所周知,自增主键可以让聚集索引尽量地保持递增顺序插入,避免了随机查询,从而提高了查询效率。 但实际上,MySQL 的自增主键并不能保证一定是连续递增的。 下面举个例子来看下,

Java开发工具面试题

本文转载自动力节点 ,如有侵权及时联系。 001 什么是Maven? Maven是一个项目管理工具,它包含了一个项目对象模型(POM:Project Object Model),一组标准集合,一个项目生命周期(Project LifeCycle),一个依赖管理系统(Dependency manage

MySQL常见面试题总结

MySQL 基础 什么是关系型数据库? 顾名思义,关系型数据库(RDB,Relational Database)就是一种建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系(一对一、一对多、多对多)。 关系型数据库中,我们的数据都被存放在了各种表中(比如用户表),表中的每一行

Kafka常见问题总结

Kafka 基础 Kafka 是什么?主要应用场景有哪些? Kafka 是一个分布式流式处理平台。这到底是什么意思呢? 流平台具有三个关键功能: 消息队列:发布和订阅消息流,这个功能类似于消息队列,这也是 Kafka 也被归类为消息队列的原因。 容错的持久方式存储记录消息流:Kafka 会把消息持久

ZooKeeper(进阶)

本文转载来自JavaGuide ,如有侵权及时联系。 什么是 ZooKeeper ZooKeeper 由 Yahoo 开发,后来捐赠给了 Apache ,现已成为 Apache 顶级项目。ZooKeeper 是一个开源的分布式应用程序协调服务器,其为分布式系统提供一致性服务。其一致性是通过基于 Pa

十大经典排序算法

本文转自:http://www.guoyaohua.com/sorting.html,JavaGuide 对其做了补充完善。 引言 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,

MyBatis常见面试题总结

本篇文章由 JavaGuide 收集自网络,原出处不明。 比起这些枯燥的面试题,我更建议你看看文末推荐的 MyBatis 优质好文。 #{} 和 ${} 的区别是什么? 注:这道题是面试官面试我同事的。 答: ${}是 Properties 文件中的变量占位符,它可以用于标签属性值和 sql 内部,

HTTP 常见状态码

HTTP 常见状态码 HTTP 状态码用于描述 HTTP 请求的结果,比如 2xx 就代表请求被成功处理。 1xx Informational(信息性状态码) 相比于其他类别状态码来说,1xx 你平时你大概率不会碰到,所以这里直接跳过。 2xx

HTTP vs HTTPS

HTTP 协议 HTTP 协议介绍 HTTP 协议,全称超文本传输协议(Hypertext Transfer Protocol)。顾名思义,HTTP 协议就是用来规范超文本的传输,超文本,也就是网络上的包括文本在内的各式各样的消息,具体来说,主要是来规范浏览器和服务器端的行为的。 并且,HTTP 是