Fork me on GitHub
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 35 下一页
摘要: 我们通常所说的 Java 虚拟机(JVM)的内存布局,一般是指 Java 虚拟机的运行时数据区(Runtime Data Area),也就是当字节码被类加载器加载之后的执行区域划分。当然它通常是 JVM 模块的第一个面试问题,所以,接下来我们一起来看它里面包含了哪些内容。 官方定义 《Java虚拟机 阅读全文
posted @ 2023-02-06 20:19 磊哥|www.javacn.site 阅读(657) 评论(1) 推荐(1)
摘要: 双亲委派模型是 Java 类加载器的一种工作模式,通过这种工作模式,Java 虚拟机将类文件加载到内存中,这样就保证了 Java 程序能够正常的运行起来。那么双亲委派模型究竟说的是啥呢?接下来我们一起来看。 1.类加载器 双亲委派模型针对的是 Java 虚拟机中三个类加载器的,这三个类加载器分别是: 阅读全文
posted @ 2023-02-03 08:13 磊哥|www.javacn.site 阅读(981) 评论(1) 推荐(1)
摘要: 在 Java 中,类加载的流程有一个专门的机制叫做“类加载机制”。类加载机制是指一个类在 Java 虚拟机(JVM)中的执行流程,它也是 Java 程序能够正常执行的关键所在,那它的具体执行流程是啥?接下来我们一起来看。 流程概述 在 JVM 中,类加载会经历以下 5 个阶段: 加载阶段(Loadi 阅读全文
posted @ 2023-01-28 10:46 磊哥|www.javacn.site 阅读(570) 评论(0) 推荐(0)
摘要: 我们工作中写SQL处理数据是家常便饭,不管是应用内数据处理还是临时查询分析都可以用SQL完成,相对其他技术(如Java等高级语言)也更简单。不过,SQL的简单只限于简单需求,有些复杂计算场景SQL写起来却很难,嵌套N层以至于达到几百上千行,说SQL代码长度时通常不会以行计而是以KB计。这种情况并不少 阅读全文
posted @ 2023-01-17 15:53 磊哥|www.javacn.site 阅读(307) 评论(0) 推荐(0)
摘要: 开源分析数据库ClickHouse以快著称,真的如此吗?我们通过对比测试来验证一下。 ClickHouse vs Oracle 先用ClickHouse(简称CH)、Oracle数据库(简称ORA)一起在相同的软硬件环境下做对比测试。测试基准使用国际广泛认可的TPC-H,针对8张表,完成22条SQL 阅读全文
posted @ 2022-12-15 13:30 磊哥|www.javacn.site 阅读(388) 评论(0) 推荐(0)
摘要: 很多数据仓库产品都采用了列式存储。如果数据表的总列数很多而计算涉及的列很少,采用列存就只读取需要的列即可,能够减少硬盘访问量,提高性能。特别是数据量非常大时,硬盘扫描和读取的时间占比很大,这时候列存的优势会很明显。 那么,是不是只要用了列存就一定能做到性能最佳呢?我们来看看,列式存储在哪些方面还可以 阅读全文
posted @ 2022-11-10 09:42 磊哥|www.javacn.site 阅读(180) 评论(0) 推荐(0)
摘要: 前段时间的俄乌冲突,Oracle宣布“暂停在俄罗斯的所有业务”,相信大家的心情绝不是隔岸观火,而是细思恐极。 数据库号称IT领域三大核心之一(其他两个是CPU和操作系统),一直以来都被国际巨头垄断,人家控制着核心,想什么时候锁喉就什么时候锁,你一点办法都没有。 现在解决这个问题的办法只能是自强,将数 阅读全文
posted @ 2022-10-24 22:19 磊哥|www.javacn.site 阅读(345) 评论(0) 推荐(0)
摘要: MD5 是 Message Digest Algorithm 的缩写,译为信息摘要算法,它是 Java 语言中使用很广泛的一种加密算法。MD5 可以将任意字符串,通过不可逆的字符串变换算法,生成一个唯一的 MD5 信息摘要,这个信息摘要也就是我们通常所说的 MD5 字符串。那么问题来了,MD5 加密 阅读全文
posted @ 2022-10-18 20:30 磊哥|www.javacn.site 阅读(2461) 评论(22) 推荐(3)
摘要: 过滤器(Filter)和拦截器(Interceptor)都是基于 AOP(Aspect Oriented Programming,面向切面编程)思想实现的,用来解决项目中某一类问题的两种“工具”,但二者有着明显的差距,接下来我们一起来看。 实现过滤器和拦截器 首先,我们先来看一下二者在 Spring 阅读全文
posted @ 2022-10-16 19:24 磊哥|www.javacn.site 阅读(2155) 评论(0) 推荐(3)
摘要: 事务隔离级别和事务传播机制都是对事务行为的规范,但二者描述的侧重点却不同。本文这里所说的事务隔离级别和事务传播机制指的是 Spring 框架中的机制。 1、事务隔离级别 事务隔离级别是对事务 4 大特性中隔离性的具体体现,使用事务隔离级别可以控制并发事务在同时执行时的某种行为。 比如,有两个事务同时 阅读全文
posted @ 2022-10-09 20:41 磊哥|www.javacn.site 阅读(971) 评论(0) 推荐(2)
摘要: 加入事务和嵌套事务是指在 Spring 事务传播机制中的加入事务(REQUIRED)和嵌套事务(NESTED)的区别,二者看似很像,实则截然不同,那么它们有什么区别呢?接下来我们一起来看。 Spring 事务传播机制是指,包含多个事务的方法在相互调用时,事务是如何在这些方法间传播的,Spring 事 阅读全文
posted @ 2022-10-07 17:06 磊哥|www.javacn.site 阅读(966) 评论(0) 推荐(2)
摘要: Spring 事务传播机制是指,包含多个事务的方法在相互调用时,事务是如何在这些方法间传播的。 既然是“事务传播”,所以事务的数量应该在两个或两个以上,Spring 事务传播机制的诞生是为了规定多个事务在传播过程中的行为的。比如方法 A 开启了事务,而在执行过程中又调用了开启事务的 B 方法,那么 阅读全文
posted @ 2022-09-27 20:28 磊哥|www.javacn.site 阅读(13103) 评论(1) 推荐(6)
摘要: 在 Spring Boot 中,造成事务不自动回滚的场景有很多,比如以下这些: 非 public 修饰的方法中的事务不自动回滚; 当 @Transactional 遇上 try/catch 事务不自动回滚; 调用类内部的 @Transactional 方法事务不自动回滚; 抛出检查异常时事务不自动回 阅读全文
posted @ 2022-09-25 21:00 磊哥|www.javacn.site 阅读(947) 评论(0) 推荐(0)
摘要: 导致 @Transactional 失效的常见场景有以下 5 个: 非 public 修饰的方法; timeout 超时时间设置过小; 代码中使用 try/catch 处理异常; 调用类内部的 @Transactional 方法; 数据库不支持事务。 很多人只知道答案但不知道原因,这就像只谈恋爱不结 阅读全文
posted @ 2022-09-20 20:33 磊哥|www.javacn.site 阅读(302) 评论(0) 推荐(0)
摘要: Spring 中的事务隔离级别和数据库中的事务隔离级别稍有不同,以 MySQL 为例,MySQL 的 InnoDB 引擎中的事务隔离级别有 4 种,而 Spring 中却包含了 5 种事务隔离级别。 1.什么是事务隔离级别? 事务隔离级别是对事务 4 大特性中隔离性的具体体现,使用事务隔离级别可以控 阅读全文
posted @ 2022-09-18 20:49 磊哥|www.javacn.site 阅读(2640) 评论(0) 推荐(1)
摘要: 一个程序中不可能没有事务,而 Spring 中,事务的实现方式分为两种:编程式事务和声明式事务,又因为编程式事务实现相对麻烦,而声明式事务实现极其简单,所以在日常项目中,我们都会使用声明式事务 @Transactional 来实现事务。 @Transactional 使用极其简单,只需要在类上或方法 阅读全文
posted @ 2022-09-14 19:44 磊哥|www.javacn.site 阅读(887) 评论(0) 推荐(2)
摘要: 在 Spring Boot 中操作事务有两种方式:编程式事务或声明式事务,接下来我们一起来看二者的具体实现。 1.编程式事务 在 Spring Boot 中实现编程式事务又有两种实现方法: 使用 TransactionTemplate 对象实现编程式事务; 使用更加底层的 TransactionMa 阅读全文
posted @ 2022-09-12 21:00 磊哥|www.javacn.site 阅读(816) 评论(0) 推荐(0)
摘要: 跨域问题指的是不同站点之间,使用 ajax 无法相互调用的问题。跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。 但这个保护机制也带来了新的问题,它的问题是给不同站点之间的正常调用,也带来的阻碍,那怎么解决这个问题呢?接下来我们一起来看。 1.跨域三种情况 在 阅读全文
posted @ 2022-09-07 20:52 磊哥|www.javacn.site 阅读(9727) 评论(0) 推荐(1)
摘要: Java 中的公共类称之为 Bean 或 Java Bean,而 Spring 中的 Bean 指的是将对象的生命周期,交个 Spring IoC 容器来管理的对象。所以 Spring 中的 Bean 对象在使用时,无需通过 new 来创建对象,只需要通过 DI(依赖注入),从 Spring 中取出 阅读全文
posted @ 2022-09-05 20:49 磊哥|www.javacn.site 阅读(6367) 评论(0) 推荐(4)
摘要: Spring 框架作为一个管理 Bean 的 IoC 容器,那么 Bean 自然是 Spring 中的重要资源了,那 Bean 的作用域是什么意思?又有几种类型呢?接下来我们一起来看。 PS:Java 中的公共类可称之为 Bean 或 Java Bean。 1.作用域 Bean 的作用域是指 Bea 阅读全文
posted @ 2022-08-31 09:26 磊哥|www.javacn.site 阅读(1484) 评论(1) 推荐(1)
摘要: Spring Cloud Alibaba 是阿里巴巴提供的一站式微服务开发解决方案,目前已被 Spring Cloud 官方收录。而 Nacos 作为 Spring Cloud Alibaba 的核心组件之一,提供了两个非常重要的功能:注册中心和配置中心,我们今天来了解和实现一下二者。 1.Naco 阅读全文
posted @ 2022-08-30 20:47 磊哥|www.javacn.site 阅读(1765) 评论(0) 推荐(3)
摘要: @Autowired 和 @Resource 都是 Spring/Spring Boot 项目中,用来进行依赖注入的注解。它们都提供了将依赖对象注入到当前对象的功能,但二者却有众多不同,并且这也是常见的面试题之一,所以我们今天就来盘它。 @Autowired 和 @Resource 的区别主要体现在 阅读全文
posted @ 2022-08-29 08:38 磊哥|www.javacn.site 阅读(1038) 评论(0) 推荐(2)
摘要: Spring Cloud Alibaba 是阿里巴巴提供的一站式微服务开发解决方案,目前已被 Spring Cloud 官方收录。而 Nacos 作为 Spring Cloud Alibaba 的核心组件之一,提供了两个非常重要的功能:服务注册中心(服务注册和发现)功能,和统一配置中心功能。 Nac 阅读全文
posted @ 2022-08-28 22:24 磊哥|www.javacn.site 阅读(927) 评论(1) 推荐(2)
摘要: IoC 和 DI 是 Spring 中最重要的两个概念,其中 IoC(Inversion of Control)为控制反转的思想,而 DI(Dependency Injection)依赖注入为其(IoC)具体实现。那么 DI 实现依赖注入的方式有几种?这些注入方式又有什么不同?接下来,我们一起来看。 阅读全文
posted @ 2022-08-24 08:38 磊哥|www.javacn.site 阅读(2181) 评论(0) 推荐(2)
摘要: ${} 和 #{} 都是 MyBatis 中用来替换参数的,它们都可以将用户传递过来的参数,替换到 MyBatis 最终生成的 SQL 中,但它们区别却是很大的,接下来我们一起来看。 1.功能不同 ${} 是将参数直接替换到 SQL 中,比如以下代码: <select id="getUserById 阅读全文
posted @ 2022-08-23 08:44 磊哥|www.javacn.site 阅读(1887) 评论(0) 推荐(5)
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 35 下一页