随笔分类 -  java

摘要:一、虚拟机栈概述 1.1 出现的背景 由于跨平台性的设计,Java指令都是根据栈来设计的。优点是跨平台、指令集小、变压器你容易实现;缺点是性能下降,实现同样的功能需要更多的指令。 1.2 内存中的栈与堆 栈是运行时的单位,而堆是存储的单位。 栈解决程序的运行问题,即程序如何执行或者如何处理数据。堆解 阅读全文
posted @ 2021-02-09 12:02 CleverZiv 阅读(77) 评论(0) 推荐(0)
摘要:先聊聊本地方法 简单地讲,一个 Native Method 就是一个Java调用非Java代码的接口。一个 Native Method 是这样一个Java方法:该方法的实现由非Java语言实现,比如C。在定义一个native method 时,并不提供实现体,因为其实现体是由非java语言在外面上线 阅读全文
posted @ 2021-02-04 23:17 CleverZiv 阅读(89) 评论(0) 推荐(0)
摘要:一、Map 整体结构 1.1 类继承结构 1.2 实现类简介 Map是一种把键对象和值对象映射的集合,是一个顶层接口,定义了Map的基本操作。它的每一个元素都包含一对键对象和值对象。 Map没有继承Collection接口。 AbstractMap:实现了Map接口的抽象类。Map的基本实现,其他M 阅读全文
posted @ 2021-02-03 21:48 CleverZiv 阅读(77) 评论(0) 推荐(0)
摘要:一、LinkedList简介 LinkedList和ArrayList与Vector一样,实现了Lits接口,但它执行某些操作如插入(此处指随机插入,如果是依次在末尾插入,不一定效率更高)、和删除元素操作比ArrayList与Vector更高效,而随机访问操作效率低。除此之外,LinkedList还 阅读全文
posted @ 2021-02-02 01:29 CleverZiv 阅读(63) 评论(0) 推荐(0)
摘要:一、Vector简介 1.1 类继承结构 1.2 数据结构 二、源码 2.1 注释 Vector与ArrayList是非常相似的,注释中的说明也是类似的,可参考上篇博文“ArrayList源码阅读”。注释中有这样一句话:“Vector是同步的,如果不需要线程安全的实现,推荐使用ArrayList代替 阅读全文
posted @ 2021-01-31 23:44 CleverZiv 阅读(133) 评论(0) 推荐(0)
摘要:前言 本文将通过阅读 JDK 中的 ArrayList 的源码,来全面分析 ArrayList 的一些特性。 **2021-01-30更新:**回过头来再看这片源码分析文章,觉得两年前的自己读源码,过于追求代码细节。这个方式也使得自己在后面阅读更复杂的源码过程中吃了亏。阅读源码应更多地去体会其整体设 阅读全文
posted @ 2021-01-30 15:24 CleverZiv 阅读(76) 评论(0) 推荐(0)
摘要:一、基本介绍 1.1 概念 JVM 中的程序计数寄存器(Program Counter Register)中,Register 的命名原语 CPU 的寄存器,寄存器存储指令相关的现场信息,CPU 只有把数据加载到寄存器中才能运行。 JVM 中的寄存器并非广义上所指的物理寄存器,或许将其翻译为PC计数 阅读全文
posted @ 2020-11-06 21:13 CleverZiv 阅读(481) 评论(0) 推荐(0)
摘要:垃圾回收95%在java堆中,5%在方法区中(方法区是java虚拟机中的一个概念,具体的实现是“永久代”、“元空间”,其中元空间是JDK 8以后的实现,使用的是本地内存) 一个 JVM 实例对应一个 Runtime对象 线程 Java线程与本地线程 线程是一个程序里的运行单元。JVM 允许一个应用有 阅读全文
posted @ 2020-11-06 21:11 CleverZiv 阅读(87) 评论(0) 推荐(0)
摘要:本章思维导图 一、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 阅读(266) 评论(0) 推荐(0)
摘要:前言 本系列是笔者阅读Kafka经典书籍《Kakfa技术内幕》的笔记,对这份阅读笔记想写成什么样子有以下几个设想: 不是对书中内容的摘抄。因此想要对该书详细内容有更多了解的同学,可以自行购书翻阅。 每章或每节形成一张思维导图。目的是总结书中内容,构建自己的知识架构。 提炼问题并给出答案。答案尽量用自 阅读全文
posted @ 2020-10-15 09:43 CleverZiv 阅读(250) 评论(0) 推荐(1)
摘要:前言 本文思维导图 一、需求描述 实现一个页面上传excel的功能,并对excel中的内容做解析,最后存储在数据库中。 二、代码实现 需求实现思路: 先对上传的文件做校验和解析,这里我们通过ExcelUtil工具类来实现; 解析得到的数据进行批量插入。 2.1 接口定义 @PostMapping(p 阅读全文
posted @ 2020-10-12 20:28 CleverZiv 阅读(1582) 评论(0) 推荐(0)
摘要:前言 Java程序运行图: 上一篇玩命学JVM(一)—认识JVM和字节码文件我们简单认识了 JVM 和字节码文件。那JVM是如何使用字节码文件的呢?从上图清晰地可以看到,JVM 通过类加载器完成了这一过程。 以下是类加载机制的知识框架: 接下来我们对思维导图中重难点部分做补充。 1. 是什么? 类的 阅读全文
posted @ 2020-10-01 21:33 CleverZiv 阅读(336) 评论(0) 推荐(0)
摘要:前言 前面我们进行了代理模式、静态代理、动态代理的学习。而动态代理就是利用Java的反射技术(Java Reflection),在运行时创建一个实现某些给定接口的新类(也称“动态代理类”)及其实例(对象)。所以接下来我们有必要学习一下Java中的反射。 一、基础知识 1.1 反射是什么? 在讲反射之 阅读全文
posted @ 2020-10-01 03:34 CleverZiv 阅读(2802) 评论(1) 推荐(1)
摘要:本篇文章的思维导图 一、JVM的简单介绍 1.1 JVM是什么? JVM (java virtual machine),java虚拟机,是一个虚构出来的计算机,但是有自己完善的硬件结构:处理器、堆栈、寄存器等。java虚拟机是用于执行字节码文件的。 1.2 JAVA为什么能跨平台? 首先我们可以问一 阅读全文
posted @ 2020-09-29 19:37 CleverZiv 阅读(1488) 评论(0) 推荐(0)