03 2020 档案
摘要:在此之前,我们已经了解了 Spring 相关的基础知识,今天将为给位带来,有关 Spring 事务代理的相关知识。关注我的公众号「Java面典」,每天 10:24 和你一起了解更多 Java 相关知识点。 事务管理方式 在 Spring 项目中,我们可以用通过四种方式实现事务管理,分别是 编程式事务
阅读全文
摘要:前文分别介绍了 Spring IOC 与 Spring AOP 的相关知识,本文将为各位大概带来 Spring MVC 的知识点。关注我的公众号「Java面典」,每天 10:24 和你一起了解更多 Java 相关知识点。 处理流程 1. 用户发送请求至前端控制器 DispatcherServlet;
阅读全文
摘要:本文将为各位带来 Spring 的另一个重点知识点 —— Spring AOP。关注我的公众号「Java面典」,每天 10:24 和你一起了解更多 Java 相关知识点。 什么是 AOP 面向切面编程(aspect oriented programming),是一种将横切关注点与业务逻辑分离的编程方
阅读全文
摘要:在前一篇文章中,我们已经介绍了 Spring IOC 的相关知识,今天将为个位介绍 Spring 中 Bean 的相关知识。关注我的公众号「Java面典」,每天 10:24 和你一起了解更多 Java 相关知识点。 Bean 的生命周期 Spring 生命周期有四个阶段,分别是: 1. 实例化 In
阅读全文
摘要:从本文开始,将开始介绍关于 Spring 的一些常见知识点。关注我的公众号「Java面典」,每天 10:24 和你一起了解更多 Java 相关知识点。 在如今的 Java Web 开发中,Spring 生态圈占据着巨大的市场份额。几乎是每个互联网公司都在用 Spring 生态圈的东西。所以掌握Spr
阅读全文
摘要:本文将为各位带来有关 Java 线程内数据共享的方法。关注我的公众号「Java面典」了解更多 Java 相关知识点。 线程间数据共享 Java 里面进行多线程通信的主要方式就是共享内存的方式,共享内存主要的关注点有两个:可见性和有序性原子性。Java 内存模型(JMM)解决了可见性和有序性的问题,而
阅读全文
摘要:前两篇文章中,为各位带来了,锁的类型及锁在Java中的实现。接下来本文将为各位带来锁在Java中的应用相关知识。关注我的公众号「Java面典」了解更多 Java 相关知识点。 锁在Java中主要应用还是在JUC(java.util.concurrent)包下的相关类,常用的主要有原子类、原子集合以及
阅读全文
摘要:上一篇文章中,我们已经介绍过了各种锁,让各位对锁有了一定的了解。接下来将为各位介绍锁在Java中的实现。关注我的公众号「Java面典」了解更多 Java 相关知识点。 在 Java 中主要通过使用synchronized 、 volatile关键字,及 Lock 接口的子类 ReentrantLoc
阅读全文
摘要:在进行更近一步的了解Java锁的知识之前,我们需要先了解与锁有关的两个概念 CAS 与 AQS。关注我的公众号「Java面典」了解更多 Java 相关知识点。 CAS(Compare And Swap/Set) 概念 CAS函数,是比较并交换函数,它是原子操作函数。 原理 CAS 是基于乐观锁的原理
阅读全文
摘要:在多线程或高并发情境中,经常会为了保证数据一致性,而引入锁机制,本文将为各位带来有关锁的基本概念讲解。关注我的公众号「Java面典」了解更多 Java 相关知识点。 根据锁的各种特性,可将锁分为以下几类: 乐观锁/悲观锁 独享锁(互斥锁)/共享锁(读写锁) 可重入锁 公平锁/非公平锁 分段锁 偏向锁
阅读全文
摘要:在此之前,我们已经了解了关于线程的基本知识,今天将为各位带来,线程池这一技术。关注我的公众号「Java面典」了解更多 Java 相关知识点。 为什么使用线程池?线程池做的工作主要是控制运行的线程的数量。 线程池的种类 Java 中常用的线程池主要有四种: newCachedThreadPool 、
阅读全文
摘要:在前两篇文章中,我们已经了解了关于线程的创建与常用方法等相关知识。接下来就来了解下,当你运行线程时,线程是如何调度的。关注我的公众号「Java面典」了解更多 Java 相关知识点。 多任务系统往往需要同时执行多道作业。作业数往往大于机器的 CPU 数,然而一颗 CPU 同时只能执行一项任务,如何让用
阅读全文
摘要:在上一章,为大家介绍了线程的一些基础知识,线程的创建与终止。本期将为各位带来线程的生命周期与常用方法。关注我的公众号「Java面典」了解更多 Java 相关知识点。 线程生命周期 一个线程不是被创建了马上就开始执行,也不是一直处于执行状态。在线程的整个生命周期中会经历 新建 (New)、 就绪 (R
阅读全文
摘要:本文开始将开始介绍 Java 多线程与并发相关的知识,多谢各位一直以来的关注与支持。关注我的公众号「Java面典」了解更多 Java 相关知识点。 线程的创建方式 在 Java 中,用户常用的主动创建线程的方式有三种,分别是 继承 Thread 类 、 实现 Runnable 接口 、 通过Call
阅读全文
摘要:我们已经讲过 JVM 相关的很多常见知识点,感兴趣的朋友可以在我的往期文章中查看。接下来将继续为各位带来 JVM 类加载机制。关注我的公众号「Java面典」了解更多 Java 相关知识点。 类生命周期 一个 Java 类在 JVM 中的整个生命周期包括: 加载 (Loading)、 验证 (Veri
阅读全文
摘要:最近在筹划做一个监控系统。其中就要获取主机信息,其中遇到一些问题。在此做个记录,以便以后查阅。 在该监控系统中,想要做到主机的CPU、内存、磁盘、网络、线程、JVM内存、JVM GC 等维度的监控,JVM方面的监控还好说,直接用JMX做就行了,关键是主机信息不好做监控,JDK没有直接的方案获取系统主
阅读全文
摘要:简介 普通 Java 程序猿。Java 为主,Vue.js 为辅,会写点移动端的「伪全栈」一枚。 公众号 关注公众号「Java面典」 每天 10:24 推送更多 Java 相关知识点 社交账号 GitHub 简书 OSCHINA 开源项目 moreco moreco admin 联系方式 zhang
阅读全文
posted @ 2020-03-14 19:41
xwayway
摘要:了解了JVM内存区域与垃圾回收算法,今天将为各位带来关于垃圾收集器的知识。关注我的公众号「Java面典」了解更多 Java 相关知识点。 Java 堆内存被划分为新生代和老年代两部分,因此 JVM 通常采用分代回收算法。新生代主要使用复制和标记 清除垃圾回收算法 ,老年代主要使用标记 整理垃圾回收算
阅读全文
摘要:在之前的文章中,已经为各位带来了JVM的内存结构与堆内存的相关介绍,今天将为为各位详解JVM垃圾回收与算法。关注我的公众号「Java面典」了解更多 Java 相关知识点。 如何确定垃圾 想要回收垃圾,必须得先知道,哪些对象可以被认定为垃圾。关于垃圾确定方式,主要有两种,分别是 引用计数法 与 可访问
阅读全文
摘要:在上一篇文章中,我们介绍了 JVM 的内存区域,本文我们将继续围绕 JVM 展开话题,介绍 JVM 运行时内存。关注我的公众号「Java面典」了解更多 Java 相关知识点。 Java 堆从 GC 的角度还可以细分为: 新生代(Eden 区、Survivor From 区和 Survivor To
阅读全文
摘要:从本文开始将为各位带来JVM方面的知识点,关注我的公众号「Java面典」了解更多Java相关知识点。 JVM内存主要分为三部分 线程私有 (Thread Local)、 线程共享 (Thread Shared)、 直接内存 (Direct Memory)。 线程私有 线程私有区域从字面意思可以看出,
阅读全文
摘要:在前几个回合中,我们已经详细了解过了 Java 集合中的List、Set 和 Map,对这部分内容感兴趣的朋友可以关注我的公众号「Java面典」了解。今天我们将为各位介绍集合的失败机制——fail fast与fail safe。 fail fast(快速失败) 现象 在用迭代器遍历集合对象的时候,如
阅读全文
摘要:Map 在面试中永远是一个绕不开的点,本文将详细讲解Map的相关内容。关注公众号「Java面典」了解更多 Java 知识点。 Map Map 是一个键值对(key value)映射接口; 映射中不能包含重复的键,每个键最多只能映射到一个值; Map 允许以 键集 (keySet())、 值集 (va
阅读全文
摘要:上一篇文章我们说到了 List ,本章开始,我们将继续讲解Set相关的知识。关注公众号「Java面典」了解更多 Java 知识点。 Set 是一个无重复对象的集合类。值的重复与否是根据对象的 hashCode 来判断的,如果想要让两个不同的对象视为相等的,就必须覆盖 Object 的 hashCod
阅读全文
摘要:从本文起,我们将开始分享 Java 集合方面的知识,关注公众号「Java面典」了解更多 Java 知识点。 List 是继承于 Collection 的接口,其实现类有 ArrayList,LinkedList,Vector 和 Stack。 ArrayList 特点 ArrayList 内部是通过
阅读全文
摘要:在前一篇文章中,我们已经介绍过Redis的一些实际应用。如KV缓存、分布式锁、消息队列,由于篇幅原因,并未介绍完全。接下来将继续为各位带来Redis的更多应用。 bitmat(位图) 实现 位图的基本思想是使用一个bit来表示一个映射关系,这样就能大大减小内存的使用。如一个用户一周的签到情况可以用以
阅读全文
摘要:之前我们介绍了一些列关于Redis的数据结构、持久化、过期&淘汰策略、集群化等知识点,感兴趣的小伙伴可以在文章的末尾查看往期内容。今天将为大家带来Redis的应用。由于本篇文章较长,所以将拆分为两章来讲解。 除了最基本的KV缓存外,Redis还能用到以下方面。 分布式锁 在分布式应用中,经常会遇到并
阅读全文
摘要:前面一片文章,我们已经说了Redis的主从集群及其哨兵模式。本文将继续介绍Redis的分布式集群。 在高并发场景下,单个Redis实例往往不能满足业务需求。单个Redis数据量过大会导致RDB文件过大,RDB文件过大会导致主从全量同步时间过长,同时重启恢复也会消耗过长的时间。同时Redis是单线程的
阅读全文
摘要:和所有的数据库一样,Redis也支持集群化,Redis的集群分为分布式集群和主从集群。大部分公司采取的都是主从集群。所以在本篇文章内,我们将着重介绍Redis的主从集群及哨兵机制。 由于Redis的主从同步是异步进行的,所以Redis主从集群不满足事务的 一致性 ,同时Redis在主从网络不可用的情
阅读全文
摘要:众所周知Redis针对每一个key都能单独设置过期时间,那么Redis是怎么处理这些key的过期时间的呢?当同一时间有大量Key同时到期时,Redis又是怎么处理的呢?会不会影响到我的线上业务呢?如果Redis存储数据超出物理限制了,又是怎么处理的呢?本文将详细为你介绍Redis的过期&淘汰策略。
阅读全文
摘要:在前一篇文章中,已经介绍了Redis的基础数据结构,这篇文章将继续介绍Redis的持久化原理。 简介 众所周知Redis的所有数据都存在于内存之中,这就会存在因内存问题而导致的数据丢失,为了避免这一问题,可采取Redis的持久化机制来解决这一问题。 详解 Redis持久化有两种方式,分别是 RDB
阅读全文
摘要:Redis已经越来越多地应用到互联网技术中,而关于Redis的相关问题,也成为面试中必不可少的一部分,本文开始将会逐渐把我了解到的关于Redis的一些面试问题整理出来,供各位参考,如有不对之处,烦请指正。 简介 Redis共支持五种数据结构,分别是 string (字符串)、 hash (字典)、
阅读全文

浙公网安备 33010602011771号