排序
深入理解 Java 多线程、Lambda 表达式及线程安全最佳实践
Java 线程 线程使程序能够通过同时执行多个任务而更有效地运行。 线程可用于在不中断主程序的情况下在后台执行复杂的任务。 创建线程 有两种创建线程的方式。 扩展Thread类 可以通过扩展Thread...
Java基础知识篇02——Java基本语法
一、数据类型 定义: 就是用了保存数据的一个类型,一种数据类型,只能保存该类型数据值 作用: 只有了解数据类型,才能选择合适的类型存放数据,才能更好的利用计算机硬件资源(内存和硬盘等)。...
resultMap 和 resultType 的字段映射覆盖问题
在MyBatis中,如果你使用resultType而不是resultMap,并且结果集中有同名字段,则默认情况下后出现的字段值会覆盖前面的字段值。这是因为MyBatis在将结果集映射到Java对象时,是按照字段名称一...
还在用ifelse来写业务?了解下Spring状态机
状态机之所以强大,是因为其行为在启动时就以固定的方式定义了操作规则,从而确保了一贯的连贯性和相对较高的可调试性。关键在于,应用程序处于且仅可能处于有限数量的状态中。然后,某些事件发...
数仓开发之ODS层
优秀可靠的数仓体系,需要良好的数据分层结构。合理的分层,能够使数据体系更加清晰,使复杂问题得以简化。以下是该项目的分层规划。 1 设计要点 (1)ODS层的表结构设计依托于从业务系统同步过...
JVM内存结构
我们都知道,我们写的Java程序需要先经过编译,生成了.class文件(字节码文件)。然而,计算机并不能直接解释.class文件里面的内容,这时候就需要一个能加载、解释.class文件并且能按.class文件...
netty Recycler对象池
前言 池化思想在实际开发中有很多应用,指的是针对一些创建成本高,创建频繁的对象,用完不弃,将其缓存在对象池子里,下次使用时优先从池子里获取,如果获取到则可以直接使用,以此降低创建对...
Java序列化和反序列化机制
Java的序列化和反序列化机制 问题导入: 在阅读ArrayList源码的时候,注意到,其内部的成员变量动态数组elementData被Java中的关键字transient修饰 transient关键字意味着Java在序列化时会跳过该字...
多线程系列(二十) -CompletableFuture使用详解
一、摘要 在上篇文章中,我们介绍了Future相关的用法,使用它可以获取异步任务执行的返回值。 我们再次回顾一下Future相关的用法。 public class FutureTest { public static void main(String[...
c3p0 数据池入门使用教程
dbcp 系列 从零开始手写 mybatis (三)jdbc pool 如何从零手写实现数据库连接池 dbcp? 万字长文深入浅出数据库连接池 HikariCP/Commons DBCP/Tomcat/c3p0/druid 对比 Database Connection Poo...
Dockerfile和DockerCompose的使用
前言 学习命令的正确方式,其实是先手动操作一个简单的命令,然后了解命令的基本含义,然后再看命令的相关文章。 所以,网上哪些docker的文章,基本上都不适于学习入门。 基础命令 基础命令如下...
什么叫运行时的Java程序?
Java程序的运行包含编写、编译和运行三个主要步骤。 1.在编写阶段: 开发人员在Java开发环境中输入程序代码,形成后缀名为.java的Java源文件。 2.在编译阶段: 使用Java编译器对源文件进行错误...