- 今天给大家分享SpringBoot集成FreeMarker模板引擎生成word文件的用法,感兴趣的可以学一下,完整源码地址在文章末尾处,欢迎互相沟通交流! 一、什么是FreeMarker?FreeMarker 是一款开源的模板引擎:是一种基于模板和要动态填充的数据,可以用来动态渲染生成输出文本(HTML网页,Word文档,电子邮件,配置文件,源代码等)的通用技术。模板编写为FreeMark... 今天给大家分享SpringBoot集成FreeMarker模板引擎生成word文件的用法,感兴趣的可以学一下,完整源码地址在文章末尾处,欢迎互相沟通交流! 一、什么是FreeMarker?FreeMarker 是一款开源的模板引擎:是一种基于模板和要动态填充的数据,可以用来动态渲染生成输出文本(HTML网页,Word文档,电子邮件,配置文件,源代码等)的通用技术。模板编写为FreeMark...
- 当我们在调用Java对象的wait()方法或者线程的sleep()方法时,需要捕获并处理InterruptedException异常。如果我们对InterruptedException异常处理不当,则会发生我们意想不到的后果! 当我们在调用Java对象的wait()方法或者线程的sleep()方法时,需要捕获并处理InterruptedException异常。如果我们对InterruptedException异常处理不当,则会发生我们意想不到的后果!
- Java并发编程学习之02Java并发编程入门指南@TOC 1. Java天生多线程import java.lang.management.ManagementFactory;import java.lang.management.ThreadInfo;import java.lang.management.ThreadMXBean;public class JavaThread { ... Java并发编程学习之02Java并发编程入门指南@TOC 1. Java天生多线程import java.lang.management.ManagementFactory;import java.lang.management.ThreadInfo;import java.lang.management.ThreadMXBean;public class JavaThread { ...
- 文章目录前言一、认识synchronized二、Synchronized原理分析2.1、对象在内存中的布局介绍对象的三部分Java对象头(四种状态,重要)2.2、JDK1.6之后锁升级(过程)总结三、同步方法、代码块反编译参考文章 前言 本章节讲述了synchronized的相关原理分析,包含锁升级的过程。 博主文章汇总:博客目录索引(持续更新) 一、认识synchronized 多线程并发编程 文章目录前言一、认识synchronized二、Synchronized原理分析2.1、对象在内存中的布局介绍对象的三部分Java对象头(四种状态,重要)2.2、JDK1.6之后锁升级(过程)总结三、同步方法、代码块反编译参考文章 前言 本章节讲述了synchronized的相关原理分析,包含锁升级的过程。 博主文章汇总:博客目录索引(持续更新) 一、认识synchronized 多线程并发编程
- 文章目录前言各类锁汇总相关锁知识点可重入锁与不可重入锁乐观锁与悲观锁自旋锁(含自定义自旋锁)知识补充上下文切换CPU多层缓存架构介绍CPU的三级缓存缓存一致性协议导致的问题一、初识JUC1.1、JUC是什么?1.2、JUC三个包介绍java.util.concurrent包java.util.concurrent.locks包(含两个模板)java.util.concurrent.atomic包1 文章目录前言各类锁汇总相关锁知识点可重入锁与不可重入锁乐观锁与悲观锁自旋锁(含自定义自旋锁)知识补充上下文切换CPU多层缓存架构介绍CPU的三级缓存缓存一致性协议导致的问题一、初识JUC1.1、JUC是什么?1.2、JUC三个包介绍java.util.concurrent包java.util.concurrent.locks包(含两个模板)java.util.concurrent.atomic包1
- 文章目录前言各类锁汇总相关锁知识点可重入锁与不可重入锁乐观锁与悲观锁自旋锁(含自定义自旋锁)知识补充上下文切换CPU多层缓存架构介绍CPU的三级缓存缓存一致性协议导致的问题一、初识JUC1.1、JUC是什么?1.2、JUC三个包介绍java.util.concurrent包java.util.concurrent.locks包(含两个模板)java.util.concurrent.atomic包1 文章目录前言各类锁汇总相关锁知识点可重入锁与不可重入锁乐观锁与悲观锁自旋锁(含自定义自旋锁)知识补充上下文切换CPU多层缓存架构介绍CPU的三级缓存缓存一致性协议导致的问题一、初识JUC1.1、JUC是什么?1.2、JUC三个包介绍java.util.concurrent包java.util.concurrent.locks包(含两个模板)java.util.concurrent.atomic包1
- 前段时间为了在面试中能够应对一些算法题走上了刷题之路,大多数都是在力扣平台刷,目前是300+,再加上到了新学校之后,了解到学校也有组织蓝桥杯相关的程序竞赛,打算再次尝试一下,就想系统学习一下算法(再此之前是主后端工程为主,算法了解不多刷过一小段时间),前段时间也是第一次访问acwing这个平台,感觉上面课程也是比较系统,平台上题量也很多,就打算跟着acwing的课程来走一段路,大家一起共勉加油!所 前段时间为了在面试中能够应对一些算法题走上了刷题之路,大多数都是在力扣平台刷,目前是300+,再加上到了新学校之后,了解到学校也有组织蓝桥杯相关的程序竞赛,打算再次尝试一下,就想系统学习一下算法(再此之前是主后端工程为主,算法了解不多刷过一小段时间),前段时间也是第一次访问acwing这个平台,感觉上面课程也是比较系统,平台上题量也很多,就打算跟着acwing的课程来走一段路,大家一起共勉加油!所
- 有些使用输出不仅仅让我们输出结果,可能会让我们输出相应的结果式子,一般使用的System.out.printf()以及System.out.println(),前者就是只需要实现对应的功能函数关注函数传入的参数值以及我们需要返回的结果集即可,后者则需要我们从main方法开始完整的从读入开始截至最后的输出。给出题目以及相应的输入、输出案例,然后不会给你任何代码,让你从头文件开始去写输入、功能函数以及 有些使用输出不仅仅让我们输出结果,可能会让我们输出相应的结果式子,一般使用的System.out.printf()以及System.out.println(),前者就是只需要实现对应的功能函数关注函数传入的参数值以及我们需要返回的结果集即可,后者则需要我们从main方法开始完整的从读入开始截至最后的输出。给出题目以及相应的输入、输出案例,然后不会给你任何代码,让你从头文件开始去写输入、功能函数以及
- 除了去年11月份以及今年近几月的算法刷题之外,只有在当时20年蓝桥杯准备的时候才刷过一些题,在当时就有接触到一些动归、递归回溯、贪心等等,不过那会也还是一知半解,做的题目也特别少,因为考虑到之后面试有算法题以及数据结构算法对于一个程序员十分重要,我也开始了刷题之路。我目前的学习数据结构与算法及刷题路径:1、学习数据结构的原理以及一些常见算法。2、代码随想录:跟着这个github算法刷题项目进行分类 除了去年11月份以及今年近几月的算法刷题之外,只有在当时20年蓝桥杯准备的时候才刷过一些题,在当时就有接触到一些动归、递归回溯、贪心等等,不过那会也还是一知半解,做的题目也特别少,因为考虑到之后面试有算法题以及数据结构算法对于一个程序员十分重要,我也开始了刷题之路。我目前的学习数据结构与算法及刷题路径:1、学习数据结构的原理以及一些常见算法。2、代码随想录:跟着这个github算法刷题项目进行分类
- 除了去年11月份以及今年近几月的算法刷题之外,只有在当时20年蓝桥杯准备的时候才刷过一些题,在当时就有接触到一些动归、递归回溯、贪心等等,不过那会也还是一知半解,做的题目也特别少,因为考虑到之后面试有算法题以及数据结构算法对于一个程序员十分重要,我也开始了刷题之路。我目前的学习数据结构与算法及刷题路径:1、学习数据结构的原理以及一些常见算法。2、代码随想录:跟着这个github算法刷题项目进行分类 除了去年11月份以及今年近几月的算法刷题之外,只有在当时20年蓝桥杯准备的时候才刷过一些题,在当时就有接触到一些动归、递归回溯、贪心等等,不过那会也还是一知半解,做的题目也特别少,因为考虑到之后面试有算法题以及数据结构算法对于一个程序员十分重要,我也开始了刷题之路。我目前的学习数据结构与算法及刷题路径:1、学习数据结构的原理以及一些常见算法。2、代码随想录:跟着这个github算法刷题项目进行分类
- 本节配套案例代码:Java-Learn—Github地址所有博客文件目录索引:博客目录索引(持续更新)kryo-Gihub仓库地址Kryo 是一个高性能的序列化/反序列化工具,由于其变长存储特性并使用了字节码生成机制,拥有较高的运行速度和较小的字节码体积,并且Kryo 已经是一种非常成熟的序列化实现了,已经在 Twitter、Groupon、Yahoo 以及多个著名开源项目(如 Hive、Stor 本节配套案例代码:Java-Learn—Github地址所有博客文件目录索引:博客目录索引(持续更新)kryo-Gihub仓库地址Kryo 是一个高性能的序列化/反序列化工具,由于其变长存储特性并使用了字节码生成机制,拥有较高的运行速度和较小的字节码体积,并且Kryo 已经是一种非常成熟的序列化实现了,已经在 Twitter、Groupon、Yahoo 以及多个著名开源项目(如 Hive、Stor
- 若是拷贝的类中仅仅是一些基本类型,那么直接使用clone()方法。若是有多个自定义类或其他没有实现Cloneable接口的jdk核心类,那么建议使用反序列化的方式。使用默认的clone()方法速度最快。 若是拷贝的类中仅仅是一些基本类型,那么直接使用clone()方法。若是有多个自定义类或其他没有实现Cloneable接口的jdk核心类,那么建议使用反序列化的方式。使用默认的clone()方法速度最快。
- 文章目录一、String字符串1.1、认识String类1.2、String两种赋值方式(=、new)1.3、字符串赋值的各类情况1.4、认识intern()方法1.5、常用方法相关面试题二、StringBuffer类2.1、认识StringBuffer类2.3、常用方法2.2、源码分析三、StringBuilder四、String、StringBuffer、StringBuilder对比参考文章 文章目录一、String字符串1.1、认识String类1.2、String两种赋值方式(=、new)1.3、字符串赋值的各类情况1.4、认识intern()方法1.5、常用方法相关面试题二、StringBuffer类2.1、认识StringBuffer类2.3、常用方法2.2、源码分析三、StringBuilder四、String、StringBuffer、StringBuilder对比参考文章
- 文章目录前言一、Lambda表达式1.1、认识与使用Lambda表达式1.2、函数式接口介绍函数式接口四大核心函数式接口1.3、方法引用与构造器引用二、Stream流2.1、Stream的概述2.2、获取Stream方式(四种)2.3、Stream的中间操作2.4、Stream的终止操作三、Optional类3.1、介绍Optional类3.2、Optional的方式介绍3.3、Optional类 文章目录前言一、Lambda表达式1.1、认识与使用Lambda表达式1.2、函数式接口介绍函数式接口四大核心函数式接口1.3、方法引用与构造器引用二、Stream流2.1、Stream的概述2.2、获取Stream方式(四种)2.3、Stream的中间操作2.4、Stream的终止操作三、Optional类3.1、介绍Optional类3.2、Optional的方式介绍3.3、Optional类
- 文章目录前言一、认识注解1.1、介绍注解1.2、开发中常见注解使用二、自定义注解2.1、自定义注解说明2.2、JDK1.5提供的四个元注解三、利用反射获取注解信息四、JDK8中注解的新特性4.1、可重复注解(两种方式)两种方式实现获取可重复注解的值(两种方式)4.2、新增类型注解(2个)参考文章 前言 本篇文章是对之前学习j 文章目录前言一、认识注解1.1、介绍注解1.2、开发中常见注解使用二、自定义注解2.1、自定义注解说明2.2、JDK1.5提供的四个元注解三、利用反射获取注解信息四、JDK8中注解的新特性4.1、可重复注解(两种方式)两种方式实现获取可重复注解的值(两种方式)4.2、新增类型注解(2个)参考文章 前言 本篇文章是对之前学习j
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中 -
一个AI团队帮你写代码:华为云码道Agent Space实战2026/06/25 周四 19:00-21:00
张翰文-华为云码道工程师/郭英旭-青软创新科技集团股份有限公司 软件架构师
本场直播聚焦华为云码道Agent Space两大模式:研发办公、代码开发,亲身体验从需求到代码的AI自动化能力。实操演示基于华为 CodeArts CLI,依托 OpenSpec 规格体系从零搭建业务项目。
回顾中
热门标签