分类: 开发

478 篇文章

025、你用过哪些垃圾回收器?它们有什么区别?
你用过哪些垃圾回收器?它们有什么区别? 上一课时我们讲了垃圾回收的理论知识,而本课时将介绍这些理论知识的具体实践。垃圾回收器也叫垃圾收集器,不同的厂商对垃圾收集器的实现也是不同的,这里主要介绍目前使用最广泛的 OracleJDK 中自带的 HotSpot 虚拟机中的几个垃圾收集器。 我们本课时的面试题是,你用过哪些垃圾回收器?它们有什么区别? 典型回答 《Java 虚拟机规范》并没有对垃圾收集器的…
024、垃圾回收算法有哪些?
垃圾回收算法有哪些? 说到 Java 虚拟机不得不提的一个词就是“垃圾回收”(GC,Garbage Collection),而垃圾回收的执行速度则影响着整个程序的执行效率,所以我们需要知道更多关于垃圾回收的具体执行细节,以便为我们选择合适的垃圾回收器提供理论持。 我们本课时的面试题是,如何判断一个对象是否“死亡”?垃圾回收的算法有哪些? 典型回答 垃圾回收器首先要做的就是,判断一个对象是存活状态还…
023、说一下 JVM 的内存布局和运行原理?
说一下 JVM 的内存布局和运行原理? JVM(Java Virtual Machine,Java 虚拟机)顾名思义就是用来执行 Java 程序的“虚拟主机”,实际的工作是将编译的 class 代码(字节码)翻译成底层操作系统可以运行的机器码并且进行调用执行,这也是 Java 程序能够“一次编写,到处运行”的原因(因为它会根据特定的操作系统生成对应的操作指令)。JVM 的功能很强大,像 Java …
022、Redis是如何实现高可用的?
Redis是如何实现高可用的? 高可用是通过设计,减少系统不能提供服务的时间,是分布式系统的基础也是保障系统可靠性的重要手段。而 Redis 作为一款普及率最高的内存型中间件,它的高可用技术也非常的成熟。 我们本课时的面试题是,Redis 是如何保证系统高可用的?它的实现方式有哪些? 典型回答 Redis 高可用的手段主要有以下四种: 数据持久化 主从数据同步(主从复制) Redis 哨兵模式(S…
021、Redis 中如何实现的消息队列?实现的方式有几种?
Redis 中如何实现的消息队列?实现的方式有几种? 细心的你可能发现了,本系列课程中竟然出现了三篇都是在说消息队列,第10篇时讲了程序级别的消息队列以及延迟消息队列的实现,而第15篇讲了常见的消息队列中间件 RabbitMQ、Kafka 等,由此可见消息队列在整个 Java 技术体系中的重要程度。本课时我们将重点来看一下 Redis 是如何实现消息队列的。 我们本课时的面试题是,在 Redis …
020、Redis 怎样实现的分布式锁?
Redis 怎样实现的分布式锁? “锁”是我们实际工作和面试中无法避开的话题之一,正确使用锁可以保证高并发环境下程序的正确执行,也就是说只有使用锁才能保证多人同时访问时程序不会出现问题。 我们本课时的面试题是,什么是分布式锁?如何实现分布式锁? 典型回答 第06篇时讲了单机锁的一些知识,包括悲观锁、乐观锁、可重入锁、共享锁和独占锁等内容,但它们都属于单机锁也就是程序级别的锁,如果在分布式环境下使用…
019、Redis 的过期策略和内存淘汰机制有什么区别?
Redis 的过期策略和内存淘汰机制有什么区别? Redis 和 MySQL 是面试绕不过的两座大山,他们一个是关系型数据库的代表(MySQL),一个是键值数据库以及缓存中间件的一哥。尤其 Redis 几乎是所有互联网公司都在用的技术,比如国内的 BATJ、新浪、360、小米等公司;国外的微软、Twitter、Stack Overflow、GitHub、暴雪等公司。有的公司用 MySQL、有的用 …
018、关系型数据和文档型数据库有什么区别?
关系型数据和文档型数据库有什么区别? 关系数据库(Relational Database)是建立在关系模型基础上的数据库,借助于几何代数等数学概念和方法来处理数据库中的数据。所谓关系模型是一对一、一对多或者多对多等关系,常见的关系型数据库有 Oracle、SQL Server、DB2、MySQL 等。 而文档型数据库是一种非关系型数据库,非关系型数据库(Not Only SQL,NoSQL)正好与…
017、MySQL 的优化方案有哪些?
MySQL 的优化方案有哪些? 性能优化(Optimize)指的是在保证系统正确性的前提下,能够更快速响应请求的一种手段。而且有些性能问题,比如慢查询等,如果积累到一定的程度或者是遇到急速上升的并发请求之后,会导致严重的后果,轻则造成服务繁忙,重则导致应用不可用。它对我们来说就像一颗即将被引爆的定时炸弹一样,时刻威胁着我们。因此在上线项目之前需要严格的把关,以确保 MySQL 能够以最优的状态进行…
016、MySQL 的运行机制是什么?它有哪些引擎?
MySQL 的运行机制是什么?它有哪些引擎? 数据库是 Java 程序员面试必问的知识点之一,它和 Java 的核心面试点共同组成了一个完整的技术面试。而数据库一般泛指的就是 MySQL,因为 MySQL 几乎占据了数据库的半壁江山,即使有些公司没有使用 MySQL 数据库,如果你对 MySQL 足够精通的话,也是会被他们录取的。因为数据库的核心与原理基本是相通的,所以有了 MySQL 的基础之后…