自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从源码角度分析UUID的实现原理

UUID 的全称是 universally unique identifier,表示通用唯一标识符,UUID 类位于 java.util 包下,自 JDK 1.5 版本新增的,它是一个 final 类,不能被继承,在平常的开发中,通常会使用 UUID 类来生成唯一的标识符...

2022-08-15 09:00:00 967 1

原创 Java 8中 Objects 类源码实现与分析

Objects 类位于 java.util 包下,自 JDK 1.7 版本新增的,它是一个 final 类,不能被继承,且构造函数是 private 的,不能被实例化,它提供了一系列操作Object对象的静态方法,通常会被当做工具类去使用...

2022-08-14 09:00:00 173

原创 Java 8中 Optional 类源码实现与分析

在Java 8 中为什么会引入这样的一个 Optional 类呢?主要是为了对存在或缺失的变量值建模,这样一来,不管变量有没有值,都可以统一使用 Optional 来表示,它可以减少 null 值的判断逻辑,使得代码结构更加简单,同时也可以减少 NullPointerException 异常的出现...

2022-08-13 09:00:00 156

原创 Java 8 中Integer 包装类源码实现与分析

虽然基本数据类型 byte、short、int、long、float、double 经常使用,但是我们平时可能并不会过多关注其相应的包装类 Byte、Short、Int、Long、Float 、Double,这里以 Integer 类为例,分析其具体源码的实现

2022-08-12 09:00:00 216

原创 Java 8 中 Byte、Short、Integer、Long内部缓存类的对比与源码分析

对于基本数据类型的包装类 Byte、Short、Integer、Long ,其内部实现都有一个缓存类,这个缓存类主要用于缓存固定区间的数值对象,默认为 [-128, 127],其中 Integer 的缓存区间最大值可以通过属性动态配置,而 Byte、Short、Long 则不能动态配置...

2022-08-11 09:00:00 800

原创 Java 8 中 Number 类及各子类所占字节数源码分析

基本的数据类型是在开发过程中经常使用的,而且它们都有着与之对应的包装类,基本的数据类型和包装类之间会自动转换,即所谓的自动装箱和拆箱,但是在使用的时候,我们可能并不会过多的去关注这些包装类的父类,下面结合具体的源码来分析一下它们的父类 Number 类...

2022-08-10 11:20:16 291

原创 Java 8 中 GZIPOutputStream类源码介绍

GZIPOutputStream 类位于 java.util.zip 包下,继承于 DeflaterOutputStream 类,它实现了一个流式过滤器,主要用于以GZIP文件格式写入压缩数据

2022-08-03 09:00:00 1952

原创 Java 8 中 GZIPInputStream 类源码分析

GZIPInputStream 类位于 java.util.zip 包下,继承于 InflaterInputStream 类,它实现了一个流式过滤器,主要用于读取GZIP文件格式的压缩数据

2022-08-02 09:00:00 999

原创 Java 8中Collectors.groupingBy方法空指针异常源码分析

Collectors.groupingBy()方法是如何产生空指针的呢?本文通过源码的方式来分析具体的原因,同时给出常见的解决方式

2022-08-01 15:45:12 3457

原创 Java 8 中 ByteArrayInputStream 类源码分析

ByteArrayInputStream 类位于 java.io 包下,继承于 InputStream 类,表示字节数组输入流,它会在内存中创建一个字节数组缓冲区,然后把从输入流中读取的数据全部保存在缓冲区中。

2022-08-01 09:00:00 918

原创 Java 8 中 ByteArrayOutputStream 类源码分析

ByteArrayOutputStream 类位于 java.io 包下,继承于 OutputStream 类,从字面上可以看出,它表示的是一个字节数组输出流,它的实现方式是先在内存中创建一个字节数组缓冲区 `byte buf[]`,然后把所有发送到输出流的数据保存于字节数组缓冲区中...

2022-07-31 09:03:52 1596

原创 使用itextpdf将多个PDF文件合并为一个PDF文件

在开发某些业务系统的时候,可能会遇到需要**合并PDF文件**这样的需求,即将多个PDF文件合并成一个新的PDF文件,这个时候可以借助于 `itextpdf` 这个开源库进行实现

2022-07-31 09:00:00 5388 3

原创 为什么说优秀的源码就是最好的老师?

对于我来说,一直觉得优秀的源码就是最好的老师,在阅读的过程中,时常会被那些好的设计思想、代码结构、实现方式、方法变量命名等给惊艳到,心中也时常生出感叹:原来竟可以如此!

2022-07-30 22:42:14 149

原创 《水煮JDK源码》系列文章介绍

对于一个Java程序员来说,JDK就是Java语言的基石,在日常的编程中,都需要与JDK中的类打交道,既然离不开它们,那么慢慢地去了解它们,也是很有必要的,而了解它们最好的方式就是阅读其源码,分析它们的实现方式............

2022-07-30 22:39:54 178

原创 【Java面试手册-基础篇】Java中main()方法需要的参数是否必须为字符串数组?

这是一个关于Java main() 方法的基础面试题目,答案是肯定的,main()方法的参数必须是字符串数组,不能是其他的类型,否则运行会报错

2022-07-30 09:00:00 495

原创 【Java面试手册-算法篇】给定一个非空字符串,最多删除一个字符,判断是否能成为回文字符串

回文字符串是指一个字符串从左到右与从右到左遍历得到的序列是相同的,也就是说不管从左读,还是从右读,都是一样的

2022-07-29 09:00:00 211

原创 【Java面试手册-基础篇】能否声明main()方法为private或protected,或者不用访问修饰符?

这是一个常见的基础面试题目,答案是否定的,main()方法必须public,不能定义main()方法为private和protected,也不能不用访问修饰符

2022-07-28 09:00:00 502

原创 Java代码判断当前操作系统是Windows或Linux或MacOS

在Java开发过程中,有时候需要根据操作系统的类型,来选择执行不同的脚本或加载不同的动态库,比如 Window下的脚本是 .bat 文件,而 Linux 下的脚本是 .sh 文件,还有 Windows 下的动态库是 .dll 文件,而 Linux 下是 .so 文件...

2022-07-27 15:00:00 11163 1

原创 【Java面试手册-基础篇】Java中的main()方法能否被重载?

Java中的main()方法能否被重载,答案是肯定的,我们可以重载main()方法,一个Java类可以有任意数量的main()方法

2022-07-27 09:00:00 507

原创 Java判定一个数值是否在指定的开闭区间范围内

对于开闭区间,在数学中的表示方式通常为 () 和 [],小括号代表开放区间,中括号代表封闭区间,而它们的区别主要在于是否包含 = 等于号,开闭区间通常会分为以下一些情形:

2022-07-26 15:00:00 9607 2

原创 【Java面试手册-基础篇】Java中的main()方法能否被覆盖重写?

因为main方法是静态方法,静态方法是一个类方法,在使用的时候不需要实例化,是直接使用类名来调用方法的,而在Java中静态方法在编译时会结合在一起,所以不能覆盖静态方法,覆盖是针对于实例方法而言的。...

2022-07-26 09:00:00 272

原创 使用itextpdf提取PDF文件中的任意页码

使用开源的 itextpdf 库可以实现从PDF文件中拆分出任意的页面,从而生成新的PDF文件

2022-07-25 15:00:00 1189

原创 【Java面试手册-基础篇】Java类中的main() 方法可以被继承吗?

这是一个常见的面试题,答案是肯定的,也就是说,main() 方法可以被继承

2022-07-25 09:00:00 359

原创 使用itextpdf实现横板PDF文件与竖版PDF文件的相互转换

不论是横版PDF转竖版PDF,还是竖版PDF转横板PDF,其实都是旋转问题,比如将一个横版PDF顺时针或者逆时针旋转90,得到的就是一个竖版的PDF,而将一个竖版PDF顺时针或者逆时针旋转90,得到的就是一个横板的PDF...

2022-07-24 15:00:00 3689 1

原创 【Java面试手册-算法篇】给定一个数字,请判断是否为回文数字?

回文数字:设n是一任意自然数,若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。通俗地说,回文数字类似于我们在数学上学习的轴对称图形,比如111、12321是回文数,而1234不是回文数,小数没有回文数...

2022-07-24 09:00:00 549

原创 【Java面试手册-算法篇】给定一个整型数组,请判断是否为回文数组?

对于一个给定的由正整数组成的数组 A[] ,如果将 A 倒序后数字的排列与 A 完全相同,则成数组A为回文数组。比如 [1, 2, 3, 2, 1] 是回文数组,而 [1, 2, 3, 4] 不是回文数组。

2022-07-23 22:48:57 503

原创 使用Jacob实现将Word文件转换为Pdf文件

Jacob 是一个 Java 库,可让 Java 应用程序与 Microsoft Windows DLL 或 COM 库进行通信,它使用 Jacob Java 类通过 JNI 与之通信的自定义 DLL 来实现这一点,可以借助它实现将Word文件转换为PDF文件

2022-07-23 09:00:00 3841

原创 【Java面试手册-算法篇】给定一个正整数,请找出小于这个数字的所有回文数字

回文数字:设n是一任意自然数,若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。比如12321、666是回文数字,而1234不是回文数字

2022-07-22 10:19:10 381

原创 【Java面试手册-基础篇】如何实现在main()方法执行前输出“Hello World“?

在Java语言中,main()方法是程序的入口方法,在程序运行时,最先加载的就是main()方法,但这是否意味着main()方法就是程序运行时第一个被执行的模块呢?

2022-07-22 09:00:00 312

原创 【Java面试手册-算法篇】给定一个字符串,请判断是否为回文字符串?

回文字符串是指一个字符串从左到右与从右到左遍历得到的序列是相同的。也就是说不管从左读,还是从右读,都是一样的,类似数学上学习的轴对称图形,例如“abcba”、“NBAABN”是回文字符串,而“abcd”不是回文字符串...

2022-07-21 09:00:00 637

原创 Java 8中Collectors.toMap空指针异常源码分析

当需要将一个List转换为Map时,可以使用 Java 8 中的 `Collectors.toMap()` 方法,Map是由key-value组成的键值对集合,在使用`Collectors.toMap()` 方法时,如果值为空,会报空指针异常

2022-07-20 17:03:38 3665 1

空空如也

空空如也

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

TA关注的人

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