摘要: 本章思维导图 一、Java和JVM 1.1 JVM是java体系的基石 JDK 包含 JRE,JRE 包含 JVM。 JVM(java virtual machine)是虚拟计算机,用于执行字节码文件。JRE(java runtime environment)是 java 运行时环境,包含了 JVM 阅读全文
posted @ 2020-11-01 11:40 CleverZiv 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 前言 本系列是笔者阅读Kafka经典书籍《Kakfa技术内幕》的笔记,对这份阅读笔记想写成什么样子有以下几个设想: 不是对书中内容的摘抄。因此想要对该书详细内容有更多了解的同学,可以自行购书翻阅。 每章或每节形成一张思维导图。目的是总结书中内容,构建自己的知识架构。 提炼问题并给出答案。答案尽量用自 阅读全文
posted @ 2020-10-15 09:43 CleverZiv 阅读(232) 评论(0) 推荐(1) 编辑
摘要: 前言 本文思维导图 一、需求描述 实现一个页面上传excel的功能,并对excel中的内容做解析,最后存储在数据库中。 二、代码实现 需求实现思路: 先对上传的文件做校验和解析,这里我们通过ExcelUtil工具类来实现; 解析得到的数据进行批量插入。 2.1 接口定义 @PostMapping(p 阅读全文
posted @ 2020-10-12 20:28 CleverZiv 阅读(1365) 评论(0) 推荐(0) 编辑
摘要: 前言 Java程序运行图: 上一篇玩命学JVM(一)—认识JVM和字节码文件我们简单认识了 JVM 和字节码文件。那JVM是如何使用字节码文件的呢?从上图清晰地可以看到,JVM 通过类加载器完成了这一过程。 以下是类加载机制的知识框架: 接下来我们对思维导图中重难点部分做补充。 1. 是什么? 类的 阅读全文
posted @ 2020-10-01 21:33 CleverZiv 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 前言 JDK动态代理要求被代理的类必须实现接口,而生成的代理类也只能代理某个类接口定义的方法,这有很强的局限性。而CGLIB动态代理没有这个要求。简单来说,两者的区别有以下几点: Java动态代理只能够对接口进行代理,不能对普通的类进行代理(因为所有生成的代理类的父类为Proxy,Java类继承机制 阅读全文
posted @ 2020-10-01 09:25 CleverZiv 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 前言 前面我们进行了代理模式、静态代理、动态代理的学习。而动态代理就是利用Java的反射技术(Java Reflection),在运行时创建一个实现某些给定接口的新类(也称“动态代理类”)及其实例(对象)。所以接下来我们有必要学习一下Java中的反射。 一、基础知识 1.1 反射是什么? 在讲反射之 阅读全文
posted @ 2020-10-01 03:34 CleverZiv 阅读(2303) 评论(1) 推荐(1) 编辑
摘要: 本篇文章的思维导图 一、JVM的简单介绍 1.1 JVM是什么? JVM (java virtual machine),java虚拟机,是一个虚构出来的计算机,但是有自己完善的硬件结构:处理器、堆栈、寄存器等。java虚拟机是用于执行字节码文件的。 1.2 JAVA为什么能跨平台? 首先我们可以问一 阅读全文
posted @ 2020-09-29 19:37 CleverZiv 阅读(1391) 评论(0) 推荐(0) 编辑
摘要: 前言 有一个Spring源码阅读环境是学习Spring的基础。笔者借鉴了网上很多搭建环境的方法,也尝试了很多,接下来总结两种个人认为比较简便实用的方法。读者可根据自己的需要自行选择。 方法一:搭建基础Spring项目 思路就是创建一个最基本的spring项目,通过下载源码,可以实现阅读源码的需求。优 阅读全文
posted @ 2020-09-23 22:54 CleverZiv 阅读(343) 评论(0) 推荐(0) 编辑
摘要: JDK动态代理 JDK动态代理核心是两个类:InvocationHandler和Proxy 举个栗子 为便于理解,首先看一个例子: 希望实现这样一个功能:使用UserService时,只需关注自己的核心业务逻辑的实现,对于日志功能的打印,由系统的公共服务完成。 首先定义一个业务类的接口:UserSe 阅读全文
posted @ 2020-09-20 22:41 CleverZiv 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 接上一篇Spring AOP系列(一)— 代理模式,本篇来聊聊动态代理。 动态代理与静态代理的区别 要想了解动态代理与静态代理的区别,需要有两个前置知识点:java程序是如何执行的以及类加载机制。 java程序执行过程 将java源码(.java文件)通过编译器(javac.exe)编译成JVM文件 阅读全文
posted @ 2020-09-20 22:30 CleverZiv 阅读(158) 评论(0) 推荐(0) 编辑