Java
文章平均质量分 51
专注Java技术
夏日温华
这个作者很懒,什么都没留下…
展开
-
项目点滴:前后端交互的数据加密
前后端交互数据加解密原创 2023-12-15 17:44:53 · 548 阅读 · 1 评论 -
项目点滴:强行让“策略模式“在日志编号生成中应用
强行让"策略模式"在日志编号生成中简单应用原创 2023-12-15 17:09:23 · 342 阅读 · 1 评论 -
【工具开发】通过自定义注解和反射完成无字段侵入构造树形结构列表,支持排序和层级数量统计
树形结构工具类开发,通过自定义注解和反射完成无字段侵入构造树形结构列表,支持排序和层级数量统计原创 2022-09-30 09:37:44 · 249 阅读 · 2 评论 -
Apache POI 手写ExcelUtil轻松完成配置导出
前言数据导出功能是Java开发过程中不可避免的需求,我们通常会选用Apache POI或者阿里的EasyPOI来使用。我们通过配置Workbook、Sheet、Row、Cell等能实现数据排版,完成Excel表格导出。但如果系统中存在多个导出需求,并且每个导出表格的表头都不相同的话,我们每次重新单独设计Workbook、Sheet、Row、Cell等是件很麻烦的事。于是我心想自己写一个解析引擎,通过简单的XML配置来完成导出,并且要动态解析,这样在配置文件变更的时候不用重启服务也能得到变更的结果。选原创 2020-10-29 15:24:54 · 414 阅读 · 1 评论 -
【学习】AMQP(高级消息队列协议)
1、AMQP架构及基本概念Borker:接收和分发消息的应用,RabbitMQ Server就是Message Broker。 Vritual Host:虚拟主机,出于多租户和安全因素设计的,在逻辑上把AMQP的基本组件划分到一个分组中,类似于Namespace概念。当多个不同的用户使用同一个AMQP Server时,可以划分出多个vhost,每个用户在自己的vhost创建exchange/queue等,彼此隔离不影响。 Connection:Publisher、Comsumer和Borker之原创 2020-10-27 00:06:56 · 312 阅读 · 0 评论 -
Java中二进制与十六进制的转换
Java开发过程中,我们常会需要将二进制数组转换为字符串。Spring的工具类DegistUtils提供了相关的方法,那具体的原理是啥呢?其实字符串和字节的转换,关键在于如何取出字节的高四位和低四位。先阐述具体方法:一个字节占8位,如何取出其高四位和低四位?例如:有字节11101001,高四位:1110、低四位:1001,如何取出?取高四位:与字节11110000做与运算后右移四位,字节11110000转化为十六进制为0xF0,十进制值为255-15=240 (11101001 &...原创 2020-10-23 23:30:46 · 2169 阅读 · 0 评论 -
单例对象的几种创建方式
1、饿汉式public class SingletonInstance{ private static final SingletonInstance instance = new SingletonInstance(); private SingletonInstance(){ } public static SingletonInstance getInstance(){ return instance ; } }在类加载时就.原创 2020-07-04 10:34:42 · 678 阅读 · 0 评论 -
Java 循环标签
通过使用循环标签,可以实现跳出多层循环,使程序更具灵活性。break:跳出当前循环。 break+标签:跳到指定标签的循环下。 continue:忽略后续操作,跳到当前循环重新开始。 continue+标签:忽略后续操作,跳到指定标签的循环下重新开始。1、测试 break:public static void main(String[] args) { outer: //标记循环,可以随意设置 for (int i = 0; i < 3; i++) { for (int j原创 2020-05-27 18:41:15 · 783 阅读 · 0 评论 -
Java IO 管道流
Java IO的管道流包括PipedOutputStream和PipedInputStream,即管道输出流和管道输入流,两者配合使用可以实现线程间通信。典型的一种情况:一个线程将数据写入PipedOutputStream,另一个线程从PipedInputStream中读取数据。基本模型如下:所以使用管道实现线程间通信的主要流程为:1、建立PipedOutputStream和Pip...原创 2020-04-18 21:20:04 · 364 阅读 · 0 评论 -
Java中字符串的编码转换
说明:在JVM内部,字符串在java中统一用unicode表示。无论源文件是用什么编码,都会先用相应地编码方式解析成字符串,再将字符串转换为unicode格式的字节数组,作为内部存储。因此,不论源码文件是什么格式,同样的字符串,最后得到的unicode字节数组是完全一致的。在程序未运行时,字符串以原始编码的字节数组存储在系统磁盘中;在程序运行时,字符串会被转化为unicode字符数组存储在J...原创 2019-08-06 22:18:40 · 926 阅读 · 0 评论 -
使用两个栈结构实现一个队列结构-模型
使用两个栈结构实现一个队列结构-模型基本方案一方案二基本栈结构:先进后出队列结构:先进先出准备两个栈:stack1、stack2方案一1、入队列:将stack2中元素顺序出栈并入栈stack1,将新增元素入栈stack1,然后将stack1中元素顺序出栈并入栈stack22、出队列:stack2栈顶元素出栈示意图:方案二1、入队列:将新增元素入栈stack12、出队列:将st...原创 2019-07-10 20:04:26 · 136 阅读 · 0 评论 -
位运算
【转载】原文:https://blog.csdn.net/BIGBIGPPT/article/details/88919783基本介绍位运算是在二进制中的运算方式,所有其他进制的数在进行位运算时都要先转化成二进制数再进行运算。位运算主要包括按位与(&)、按位或(|)、按位异或(^)、取反( ~ )、左移(<<)、右移(>>)这几种。其中除了取反( ~ )...转载 2019-06-26 00:10:06 · 230 阅读 · 0 评论 -
java内存区域与内存溢出异常
1.Java运行时数据区域Java虚拟机在执行java的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则依赖用户进程的启动和结束而建立和销毁。根据《Java虚拟机规范》,Java虚拟机所管理的内存包括以下几个运行时数据区域:(1)程序计数器程序计数器是一块较小的内存空间,它可以看作是当前...翻译 2019-06-18 01:45:02 · 105 阅读 · 0 评论