自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 第4章:再谈类的加载器

类加载器是JVM执行类加载机制的前提。ClassLoader的作用:ClassLoader是Java的核心组件,所有的Class都是由ClassLoader进行加载的,ClassLoader负责通过各种方式将Class信息的二进制数据流读入JVM内部,转换为一个与目标类对应的java.lang.Class对象实例。然后交给Java虚拟机进行链接、初始化等操作。因此,ClassLoader在整个装载阶段,只能影响到类的加载,而无法通过ClassLoader去改变类的链接和初始化行为。至于它是否可以运行,则由E

2022-07-05 20:08:25 367 1

原创 第3章:类的加载过程(类的生命周期)详解

在Java中数据类型分为基本数据类型和引用数据类型。基本数据类型由虚拟机预先定义,引用数据类型则需要进行悉类的加载。(这里的类不是狭义上的类,而是包括:接口,注解,枚举)按照Java虚拟机规范,从class文件到加载到内存中的类,到类卸载出内存为止,它的整个生命周期包括如下7个阶段:其中,验证、准备、解析3个部分统称为链接(Linking)从程序中类的使用过程来看:我们所说的加载完毕包括**:加载、链接、初始化三个阶段都完成之后类进入方法区**中我们待会所讲的是按照五个阶段来进行讲解的。蚂蚁金服:描述一下

2022-07-02 13:10:49 418

原创 Class文件结构和字节码指令集

JVM规范所有的 JVM 全部遵守 Java 虚拟机规范,也就是说所有的 JVM 环境都是一样的, 这样一来字节码文件可以在各种 JVM 上进行。想要让一个 Java 程序正确地运行在 JVM 中,Java 源码就是必须要被编译为符合 JVM 规范的字节码。前端编译器的主要任务就是负责将符合 Java 语法规范的 Java 代码转换为符合 JVM 规范的字节码文件。javac 是一种能够将 Java 源码编译为字节码的前端编译器。javac 编译器在将 Java 源码编译为一个有效的字节码文件过程中经历了4

2022-06-26 18:46:47 571

原创 String 的基本操作&StringTable的相关问题

String 的基本操作&StringTable的相关问题Java语言规范里要求完全相同的字符串字面量,应该包含同样的Unicode字符序列(包含同一份码点序列的常量),并且必须是指向同一个String类实例。package com.journaldev.test;public class Memory { public static void main(String[] args) { // Line 1 int i=1; // Line 2 Object obj = new

2022-05-28 21:22:32 304

原创 对象的访问定位

对象的访问定位对象的两种访问方式:句柄访问和直接指针句柄访问缺点:在堆空间中开辟了一块空间作为句柄池,句柄池本身也会占用空间;通过两次指针访问才能访问到堆中的对象,效率低优点:reference中存储稳定句柄地址,对象被移动(垃圾收集时移动对象很普遍)时只会改变句柄中实例数据指针即可,reference本身不需要被修改图示直接指针(HotSpot采用)优点:直接指针是局部变量表中的引用,直接指向堆中的实例,在对象实例中有类型指针,指向的是方法区中的对象类型数据缺点:对象被移

2022-05-25 18:54:33 251

原创 对象实例化过程

判断对象对应的类是否是加载、链接、初始化虚拟机遇到一条new指令,首先去检查这个指令的参数能否在Metaspace的常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化。(即判断类元信息是否存在)。如果没有,那么在双亲委派模式下,使用当前类加载器以ClassLoader+包名+类名为Key进行查找对应的.class文件。如果没有找到文件,则抛出ClassNotFoundException异常,如果找到,则进行类加载,并生成对应的Class类对象指针碰撞:如...

2022-05-25 18:28:03 177

原创 双亲委派机制

双亲委派机制原理Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成Class对象。而且加载某个类的class文件时,Java虚拟机采用的是双亲委派模式,即把请求交由父类处理,它是一种任务委派模式工作原理:如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行;如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归请求,最终将到达顶层的启动类加载器;如果父类加载器可以完成类加载任务,就

2022-05-17 09:10:28 127

原创 二叉树的前序、中序和后序遍历

二叉树的前序、中序和后序遍历前序遍历:先输出父节点,再遍历左子树(递归)和右子树(递归)中序遍历:先遍历左子树(递归),再输出父节点,再遍历右子树(递归)后序遍历:先遍历左子树(递归),再遍历右子树(递归),最后输出父节点先创建一颗二叉树,前序、中序和后续的步骤前序遍历:先输出当前节点(初始节点是 root 节点)如果左子节点不为空,则递归继续前序遍历如果右子节点不为空,则递归继续前序遍历上图的输出顺序为:1、2、3、4中序遍历:如果当前节点的左子节点不为空,则

2022-04-25 10:11:49 623

原创 MySQL数据库备份与恢复

第19章_数据库备份与恢复在任何数据库环境中,总会有不确定的意外情况发生,比如例外的停电、计算机系统中的各种软硬件故障、人为破坏、管理员误操作等是不可避免的,这些情况可能会导致数据的丢失、服务器瘫痪等严重的后果。存在多个服务器时,会出现主从服务器之间的数据同步问题。为了有效防止数据丢失,并将损失降到最低,应定期对MySQL数据库服务器做备份。如果数据库中的数据丢失或者出现错误,可以使用备份的数据进行恢复。主从服务器之间的数据同步问题可以通过复制功能实现.物理备份与逻辑备份**物理备份:**备份数据文

2022-04-18 20:52:43 3186

原创 MySQL主从复制

第18章_主从复制主从复制概述( 1 )首先, MySQL主库在事务提交时会把数据变更作为事件 Events 记录在二进制日志文件Binlog中; MySQL主库上的 sync_binlog参数控制 Binlog日志刷新到磁盘。( 2 )主库推送二进制日志文件 Binlog中的事件到从库的中继日志 Relay Log, 之后从库根据中继日志 Relay Log重做数据变更操作, 通过逻辑复制以此来达到主库和从库的数据一致。如何提升数据库并发能力此外,一般应用对数据库而言都是"读多写少",也就说对

2022-04-18 20:48:53 3583 2

原创 MySQL其它数据库日志

第17章_其它数据库日志我们在讲解数据库事务时,讲过两种日志:重做曰志、回滚日志对于线上数据库应用系统,突然遭遇数据库宕机怎么办?在这种情况下,定位宕机的原因就非常关键。我们可以查看数据库的错误日志。因为日志中记录了数据库运行中的诊断信息,包括了错误、警告和注释等信息。比如:从日志中发现某个连接中的SQL操作发生了死循环,导致内存不足,被系统强行终止了。明确了原因,处理起来也就轻松了,系统很快就恢复了运行。除了发现错误,日志在数据复制、数据恢复、操作审计,以及确保数据的永久性和一致性等方面,都有着不可

2022-04-18 20:42:52 807

原创 MySQL之MVCC

第16章_多版本并发控制什么是MVCCMVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读(快照读)操作有了保证。换言之,就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值,这样在做查询的时候就不用等待另一个事务释放锁。 (个人感觉有点像CopyOnWrite写时复制技术)MVCC没有正式的标准,在不同的D

2022-04-10 21:45:50 165

原创 MySQL中的锁

第15章_锁事务的隔离性由这章讲述的锁来实现。概述锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感的数据(比如订单、金额等),我们就需要保证这个数据在任何时刻最多只有一个线程在访问,保证数据的完整性和一致性。在开发过程中加锁是为了保证数据的一致性,这个思想在数据库领域中同样很重要。在数据库中,除传统的计算资源〈如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。为保证数据的一致性,需要对

2022-04-10 09:38:08 1548 2

原创 第14章_MySQL事务日志(redo log 和 undo log)

第14章_MySQL事务日志事务有4种特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢?事务的隔离性由锁机制实现。而事务的原子性、一致性和持久性由事务的 redo 日志和undo 日志来保证。REDO LOG 称为重做日志,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性。UNDO LOG 称为回滚日志,回滚行记录到某个特定版本,用来保证事务的原子性、一致性。有的DBA或许会认为 UNDO 是 REDO 的逆过程,其实不然。REDO和UND

2022-04-05 21:30:54 1572

原创 数据库设计规范小节

数据库设计规范小节为什么需要数据库设计**我们在设计数据表的时候,要考虑很多问题。**比如:用户都需要什么数据?需要在数据表中保存哪些数据?如何保证数据表中数据的正确性,当插入、删除、更新的时候该进行怎样的约束检查?如何降低数据表的数据冗余度,保证数据表不会因为用户量的增长而迅速扩张?如何让负责数据库维护的人员更方便地使用数据库?使用数据库的应用场景也各木相同,可以说针对不同的情况,设计出来的数据表可能千差万别。现实情况中,面临的场景:当数据库运行了一段时间之后,我们才发现数据表设计的

2022-04-01 09:06:03 1195

原创 关联查询优化&子查询优化&排序优化

关联查询的优化(都可以自己去实验一下)数据准备#分类CREATE TABLE IF NOT EXISTS `type` (`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,`card` INT(10) UNSIGNED NOT NULL,PRIMARY KEY (`id`));#图书CREATE TABLE IF NOT EXISTS `book` (`bookid` INT(10) UNSIGNED NOT NULL AUTO_INCREMEN

2022-03-28 08:27:57 1015

原创 JOIN语句原理

JOIN语句原理join方式连接多个表,本质就是各个表之间数据的循环匹配。MySQL5.5版本之前,MySQL只支持一种表间关联方式,就是嵌套循环(Nested Loop Join)。如果关联表的数据量很大,则join关联的执行时间会非常长。在MySQL5.5以后的版本中,MySQL通过引入BNLJ算法来优化嵌套执行。驱动表和被驱动表驱动表就是主表,被驱动表就是从表、非驱动表SELECT * FROM A JOIN B ON ...A一定是驱动表吗?不一定,优化器会根据你查询语句做优化,决定先查

2022-03-28 08:21:18 1496

原创 索引优化与查询优化

都有哪些维度可以进行数据库调优?简言之:索引失效、没有充分利用到索引——索引建立关联查询太多JOIN(设计缺陷或不得已的需求)——SQL优化服务器调优及各个参数设置(缓冲、线程数等)——调整my.cnf。数据过多——分库分表关于数据库调优的知识点非常分散。不同的DBMS,不同的公司,不同的职位,不同的项目遇到的问题都不尽相同。这里我们分为三个章节进行细致讲解。虽然SQL查询优化的技术有很多,但是大方向上完全可以分成物理查询优化和逻辑查询优化两大块。物理查询优化是通过索引和表连接方式等技术

2022-03-27 13:10:32 1215

原创 EXPLAIN四种输出格式&MySQL监控分析视图——sys schema

EXPLAIN四种输出格式这里谈谈EXPLAIN的输出格式。EXPLAIN可以输出四种格式:传统格式,JSON格式,TREE格式以及可视化输出。用户可以根据需要选择适用于自己的格式。EXPLAIN四种输出格式传统格式传统格式简单明了,输出是一个表格形式,概要说明查询计划。EXPLAIN SELECT s1.key1, s2.key1 FROM s1 LEFT JOIN s2 ON s1.key1 = s2.key1 WHEREs2.common_field IS NOT NULL;JSON格

2022-03-25 17:18:35 1756

原创 MySQL性能分析工具的使用

性能分析工具的使用在数据库调优中,我们的目标就是响应时间更快,吞吐量更大。利用宏观的监控工具和微观的日志分析可以帮我们快速找到调优的思路和方式。数据库服务器的优化步骤当我们遇到数据库调优问题的时候,该如何思考呢?这里把思考的流程整理成下面这张图。整个流程划分成了观察(Show status) 和 行动(Action) 两个部分。字母 S 的部分代表观察(会使用相应的分析工具),字母 A 代表的部分是行动(对应分析可以采取的行动)。如果A2和A3都不能解决问题,我们需要考虑数据库自身的SQL查询

2022-03-24 20:56:40 1213

原创 不相关子查询和相关子查询

不相关子查询和相关子查询子查询不相关子查询:子查询的查询条件不依赖于父查询,称为不相关子查询。例:查询与"刘晨"在同一个系学习的学生。SELECT Sno,Sname,SdeptFROM StudentwHERE Sdept IN(SELECT Sdept FROM StudentWhERE Sname='刘晨');相关子查询:如果子查询的查询条件依赖于父查询,这类子查询称为相关子查询。例:找出每个学生超过他自己选修课程的平均成绩的课程号。SELECT Sno,CnoFR

2022-03-23 22:21:01 2288

原创 索引的设计原则

索引的设计原则为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引。**索引设计不合理或者缺少索引都会对数据库和应用程序的性能造成障碍。**高效的索引对于获得良好的性能非常重要。设计索引时,应该考虑相应准则。数据准备第一步:创建数据库、创建表CREATE DATABASE atguigudb1;USE atguigudb1;#1.创建学生表和课程表CREATE TABLE `student_info` (`id` INT(11) NOT NULL AUTO

2022-03-21 21:42:27 1108

原创 MySQL8.0索引新特性

MySQL8.0索引新特性支持降序索引降序索引以降序存储键值。虽然在语法上,从MySQL 4版本开始就已经支持降序索引的语法了,但实际上该DESC定义是被忽略的,直到MySQL 8.x版本才开始真正支持降序索引(仅限于InnoDB存储引擎)。MySQL在**8.0版本之前创建的仍然是升序索引,使用时进行反向扫描,这大大降低了数据库的效率。**在某些场景下,降序索引意义重大。例如,如果一个查询,需要对多个列进行排序,且顺序要求不一致,那么使用降序索引将会避免数据库使用额外的文件排序操作,从而提高性能。

2022-03-21 21:38:10 595

原创 索引的分类与使用

索引的分类与使用索引的分类MySQL的索引包括普通索引、唯一索引、全文索引、单列索引、多列索引和空间索引等。从功能逻辑上说,索引主要有 4 种,分别是普通索引、唯一索引、主键索引、全文索引。按照 物理实现方式,索引可以分为 2 种:聚簇索引和非聚簇索引。按照 作用字段个数进行划分,分成单列索引和联合索引。普通索引在创建普通索引时,不附加任何限制条件,只是用于提高查询效率。这类索引可以创建在任何数据类型中,其值是否唯一和非空,要由字段本身的完整性约束条件决定。建立索引以后,可以通过索引进

2022-03-19 20:55:20 2697

原创 redis集群

问题容量不够,redis如何进行扩容?并发写操作,redis如何分摊?另外,主从模式,薪火相传模式,主机宕机,导致ip地址发生变化,应用程序中配置需要修改对应的主机地址、端口等信息。之前通过代理主机来解决,但是redis3.0中提供了解决方案。就是无中心化集群配置。什么是集群Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。Redis 集群通过分区(partition)来提供一定程度的可用性(availabi

2022-03-18 20:52:49 119

原创 MySQL数据结构选择的合理性

MySQL数据结构选择的合理性从MySQL的角度讲,不得不考虑一个现实的问题的就是磁盘IO。如果我们能够让索引的数据结构尽量减少磁盘I/O操作,所消耗的时间也就越小。可以说,磁盘的I/O操作次数对索引的使用效率至关重要。查找都是索引操作,一般来说索引非常大,尤其是关系型数据库,当数据量比较大时,索引的大小可能几个G甚至更多,为了减少索引在内存的占用,**数据库索引是存储在外部磁盘上的。**我们利用索引查询的时候,不可能把整个索引加载到内存,只能逐一加载,那么MySQL衡量查询效率的标准就是磁盘的I/O次

2022-03-16 21:01:41 287

原创 常见的索引的概念

常见的索引的概念索引按照物理实现方式,索引可以分为2种:聚簇(聚集)和非聚簇(非聚集)索引。我们也把非聚集索引称为二级索引或者辅助索引。聚簇索引聚簇索引并不是一种单独的索引类型,而是一种数据存储方式(所有的用户记录都存储在了叶子节点),也就是所谓的索引即数据,数据即索引。(.idb格式进行存储)术语"聚簇"表示数据行和相邻的键值聚簇的存储在一起。特点:术语"聚簇"表示数据行和相邻的键值聚簇的存储在一起。页内的记录是按照主键的大小顺序排成一个单向链表。各个存放用户记录的页也是根据页中用

2022-03-16 08:13:33 666

原创 MySQL索引的数据结构

MySQL索引的数据结构为什么使用索引索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教课书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。MysQL中也是一样的道理,进行数据查找时,首先查看查询条件是否命中某条索引,符合则通过索引查找相关数据,如果不符合则需要全表扫描,即需要一条一条地查找记录,直到找到与条件符合的记录。如上图所示,数据库没有索引的情况下,数据分布在硬盘不同的位置上面,读取数据时,摆臂需要前后摆动查找数据,这样操作非常消耗时间。如果数据顺序摆放,那么

2022-03-13 22:11:51 1718

原创 MySQL存储引擎

MySQL存储引擎为了管理方便,人们把连接管理、查询缓存、语法解析、查询优化这些并不涉及真实数据存储的功能划分为MySQL server的功能,把真实存取数据的功能划分为存储引擎的功能。所以在MySQL server完成了查询优化后,只需按照生成的执行计划调用底层存储引擎提供的API,获取到数据后返回给客户端就好了。MySQL中提到了存储引擎的概念。简而言之,存储引擎就是指表的类型。其实存储引擎以前叫做表处理器,后来改名为存储引擎,它的功能就是接收上层传下来的指令,然后对表中的数据进行提取或写入操作。

2022-03-12 19:48:21 204

原创 MySQL中的SQL执行流程

SQL执行流程MySQL的配置文件的位置/etc/my.cnfMySQL中的SQL执行流程MySQL的查询流程查询缓存:Server如果在查询缓存中发现了这条SQL语句,就会直接将结果返回给客户端;如果没有,如果进入到解析器阶段。需要说明的是,因为查询混窜往往效率不高,所以在MySQL8.0之后就抛弃了这个功能MySQL拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句。之前执行过的语句及其结果可能会以key-value对的形式,被直接缓存在内存中。key是查询的语句,va

2022-03-12 13:28:12 2162

原创 存储过程与存储函数

存储过程与存储函数MysQL从5.0版本开始支持存储过程和函数。存储过程和函数能够将复杂的SQL逻辑封装在一起,应用程序无须关注存储过程和函数内部复杂的SQL逻辑,而只需要简单地调用存储过程和函数即可。存储过程概述理解含义:存储过程的英文是Stored Procedure。它的思想很简单,就是一组经过预先编译的SQL语句的封装。执行过程:存储过程预先存储在MySQL服务器上,需要执行的时候,客户端只需要向服务器端发出调用存储过程的命令,服务器端就可以把预先存储好的这一系列SQL语句全部执行。好处:

2022-03-11 13:44:38 1614

原创 MySQL数据库视图

视图为什么使用视图**视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。**比如,针对一个公司的销售人员,我们只想给他看部分数据,而某些特殊的数据,比如采购的价格,则不会提供给他。再比如,人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他人的查询视图中则不提供这个字段。刚才讲的只是视图的一个使用场景,实际上视图还有很多作用。最后,我们总结视图的优点。基本概念视图(VIEW):一个或者多个数据表里的数据的逻辑显示,视图并不存储数据(一般用来

2022-03-10 20:00:14 193

原创 事务隔离级别(图文详解)

事务隔离级别(图文详解)什么是事务?事务是逻辑上的一组操作,要么都执行,要么都不执行。事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个关键操作要么都成功,要么都要失败。常用的事务控制语法- 事务开始begin;- 事务提交,提交后就会写入物理磁盘中去commi

2022-03-09 16:56:32 2231

原创 java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to XXX

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to XXX今天在用feign进行远程调用的时候报错java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to XXX 类型转换异常这里是consumer调用方 logger.info("添加评论方法被调用前端传来的参数是comment-->{},req

2022-03-03 09:43:00 2860

原创 谷粒学苑上传视频踩坑

谷粒学苑前端上传视频到后端为null一开始我以为是前端的问题,因为用swagger测试接口的时候没有毛病,能得到视频的id值,然后一直找前端的问题,我就纳闷了,都是复制老师的前端代码,咋还出现问题了,总是上传是null这是我之前的后端接口代码本来想这试一试把参数名称改成file,但是multipartFile也感觉没啥问题,后面试了一下,果然改成file就可以了,我也不知道是怎么回事。就感觉挺神奇的。改完之后见证奇迹的时候到了!!!特此记录!!!...

2022-02-10 19:42:29 1940

原创 Forbidden.RAM : You are not authorized to operate this resource, or this API

Forbidden.RAM : You are not authorized to operate this resource, or this API这是我在做阿里云视频点播功能时候的报错,一开始还以为是jar包太旧了,更新了一下,还是报错。后面查了翻译了一下是没有给RAM授权。步骤:打开阿里云的RAM 访问控制选中你操作sdk的用户,进行授权,同理,如果进行oss操作也同样需要授权3. 再请求就好了...

2022-02-09 17:45:31 2476

原创 JavaWeb

什么是Servelt从广义上来讲,Servlet规范是sun公司制定的一套技术标准,包含与web应用相关的一系列接口,是 web应用实现方式的宏观解决方案。而具体的servlet容器负责提供标准的实现。从狭义上来讲,Servlet指的是javax.servlet.Servlet接口及其子接口,也可以指实现了servlet接口的实现类。servlet作为服务器端的一个组件,它的本意是“服务器端的小程序”。servlet的实例对象由Servlet容器负责创建;servlet的方法由容器在特定情况下调用;

2022-01-30 20:48:03 1524

原创 EasyExcel的简单读取操作

EasyExcel的简单读取操作Java领域解析、生成Excel比较有名的框架有Apache poi、 jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc。EasyExcel是阿里巴巴开源的一个excel处理框架, 以使用简单、节省内存著称。 EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。EasyE

2022-01-30 20:21:28 11583

原创 配置阿里云OSS对象存储服务

配置阿里云OSS对象存储服务导入阿里云OSS依赖 <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>2.8.3</version> </

2022-01-30 11:14:10 2665

原创 日志系统&logback的简单使用

日志系统重要意义系统在运行过程中出了问题就需要通过日志来进行排查,所以我们在上手任何新技术的时候,都要习惯性的关注一下它是如何打印日志的。技术选型总体介绍门面:名称说明JCL(Jakarta Commons Logging)陈旧SLF4J(Simple Logging Facade for Java)适合(同一作者)jboss-logging特殊专业领域使用实现:名称说明log4j最初版(同一作者)JUL(j

2022-01-25 20:52:56 250

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除