java中SimpleDateFormat解析日期格式的问题

在日常写代码的过程中,我们经常要处理各种格式的日期,常见的日期格式有:“20240601”,“2024-06-01”,“2024-6-1”。如何正确地处理日期格式,尤其是对外接口中参数的日期格式,就很重要了,一个不小心就可能出现意想不到的问题。 举一个我遇到的真实例子:我们提供的对外接口中有一个参数

面试官:说一说如何优雅的关闭线程池,我:shutdownNow,面试官:粗鲁!

写在开头 面试官:“小伙子,线程池使用过吗,来聊一聊它吧!” 我:“好的,然后巴拉巴拉一顿输出之前看过的build哥线程池十八问...” 面试官满意的点了点头,紧接着问道:“那你知道如何优雅的关闭线程池吗?” 我:“知道知道,直接调用shutdownNow()方法就好了呀!” 面试官脸色一变,微怒道

java中判断String类型为空和null的方法

1.判断一个String类型的变量是否为空(即长度为0)或者为null 在Java中,判断一个String类型的变量是否为空(即长度为0)或者为null,通常需要使用两个条件语句来进行检查。这是因为null表示变量没有引用任何对象,而空字符串("")表示变量引用了一个没有内容的字符串对象。 下面是一

一文了解JVM面试篇(上)

Java内存区域 1、如何解释 Java 堆空间及 GC? 当通过 Java 命令启动 Java 进程的时候,会为它分配内存。内存的一部分用于创建 堆空间,当程序中创建对象的时候,就从对空间中分配内存。GC 是 JVM 内部的一 个进程,回收无效对象的内存用于将来的分配。 2、JVM 的主要组成部分

(JAVA)设计模式-适配器模式

模式的定义和特点: 适配器模式(Adapter)是一种将一个类的接口转换成客户希望的另外一个接口的设计模式,可以提高代码的复用性和灵活性。 结构与实现: 定义一个适配器类来实现业务接口,再继承现有组件库中已经存在的组件。 示例: 创建业务接口类: 点击查看代码 public interface In

什么!程序员不乖乖写代码,跑去写小说了?一时兴起写了《雪中悍刀行》的番外,请品鉴!

写在开头 什么!程序员不乖乖写代码,跑去写小说了?哈哈,没错!build哥一时兴起写了篇《雪中悍刀行》的番外,是关于剑九黄的,请诸君品鉴!(第一次写,喷轻点呀) build哥除了写代码之外,日常生活中挺喜欢看小说的,尤其是烽火戏诸侯的《雪中悍刀行》,可谓大爱,几乎每晚睡觉前必看。不过,这部小说去年就

Java交换map的key和value值

在Java中,我们都知道直接交换Map的key和value是不被允许的,因为Map的接口设计是基于key-value对的,其中key是唯一的,并且是不可变的(在HashMap等常见的实现中,虽然key的引用是不可变的,但key对象本身如果是可变的,它的内容是可以变化的,但这样做可能会导致不正确的行为

关于《Java并发编程之线程池十八问》的补充内容

一、写在开头 在上一篇文章我们写《Java并发编程之线程池十八问》的时候,鉴于当时的篇幅已经过长,很多内容就没有扩展了,在这篇文章里对一些关键知识点进行对比补充。 二、Runnable vs Callable 在创建线程的时候,一般会选用 Runnable 和 Callable 两种方式。 【源码对

面试官:如果不允许线程池丢弃任务,应该选择哪个拒绝策略?

线程池的拒绝策略有哪些? 如果当前同时运行的线程数量达到最大线程数量并且队列也已经被放满了任务时,ThreadPoolExecutor 定义一些策略: ThreadPoolExecutor.AbortPolicy:抛出 RejectedExecutionException来拒绝新任务的处理。 Thr

dubbo~javax.validation和jakarta.validation的介绍与排雷

javax.validation和jakarta.validation都是用于Java中进行数据验证(validation)的相关API,它们提供了一套标准的验证框架,用于验证Java对象的属性是否符合指定的约束条件。这两个API的作用类似,只是在Java EE平台的演进过程中发生了一些变化。 ja

给师妹写的《Java并发编程之线程池十八问》被表扬啦!

写在开头 之前给一个大四正在找工作的学妹发了自己总结的关于Java并发中线程池的面试题集,总共18题,将之取名为《Java并发编程之线程池十八问》,今天聊天时受了学妹的夸赞,心里很开心,毕竟自己整理的东西对别人起到了一点帮助,记录一下! Java并发编程之线程池十八问 经过之前的学习,我们知道在Ja

爪哇,我初学乍道

>>上一篇(学校上课,是耽误我学习了。。) 2016年9月,我大二了。 自从我发现上课会耽误我学习,只要我认为不影响我期末学分的,我就逃课了。 绝大多数课都是要签到的,有的是老师突击喊名字,有的是手机打卡签到。 如果上课老师一开始就喊名字签到,签到环节结束,我就偷偷溜走了。 中途突击喊名字,要是被抓

Java遍历Map集合的方法

Java中遍历Map集合的常用方式主要有以下几种: 1.使用keySet()方法遍历 遍历Map的key集合,然后通过key获取value。 Map map = new HashMap<>(); map.put("one", 1); map.put("two", 2

Java设计模式总结

前言1 刚才整理博客的时候,发觉草稿箱里面躺了一篇文章。这篇文章来自于6年前,2018年,我还在读书的时候。当时csdn,博客园还是行业top,近些年掘金,思否,个人ip站的崛起,也预示着互联网进程的演变。 过了6年之久,这篇文章还没有发布,趁现在有空,补充并且发布一下。 前言2 面试的过程中多次提

JavaScript 中的 Range 和 Selection 对象

最近在做鼠标框选的需求,鼠标框选就需要用到 Range 和 Selection 对象。 Range 表示选择的区间范围,Selection 表示选择的文档内容。 Range 接口表示一个包含节点与文本节点的一部分的文档片段。 不仅仅可以用于鼠标框选,页面上任何元素、文本都可以创建 Range。 Se...

【JS】await异常捕获,这样做才完美

文章关注JavaScript中async/await的异常处理,指出未捕获异常的潜在风险。1)使用try-catch,虽全面但冗余;2)借助Promise的catch,减少冗余; 3) 利用await-to-js库简化异常处理

JavaScript 中 toString 的奇妙使用

JavaScript 中的toString()方法,我们通常会一些其他类型的变量,转为字符串类型。但这里还有一些其他奇妙的用法。 不同的类型调用 toString() 会得到不同的结果。我们来一一分析下。 1. 函数类型 我们开发者自定义的函数,和 JavaScript 官方内置的函数,在调用 to

Java JVM——1.JVM与Java体系结构

前言 作为Java工程师的你曾被伤害过吗?你是否也遇到过这些问题? ✘ 运行着的线上系统突然卡死,系统无法访问,甚至直接OOMM! ✘ 想解决线上JVM GC问题,但却无从下手。 ✘ 新项目上线,对各种JVM参数设置一脸茫然,直接默认吧,然后就JJ了。 ✘ 每次面试之前都要重新背一遍JVM的一些原理

研二学妹面试字节,竟倒在了ThreadLocal上,这是不要应届生还是不要女生啊?

一、写在开头 今天和一个之前研二的学妹聊天,聊及她上周面试字节的情况,着实感受到了Java后端现在找工作的压力啊,记得在18,19年的时候,研究生计算机专业的学生,背背八股文找个Java开发工作毫无问题,但现在即便你是应届生,问的考题也非常的深入和细节了,只会背八股,没有一定的代码量和项目积累,根本

Java 对象的揭秘

作为一个 Java 程序员,我们在开发者最多的操作要属创建对象了。那么你了解对象多少?它是如何创建?如何存储布局以及如何使用的?本文将对 Java 对象进行揭秘,以及讲解如何使用 JOL 查看对象内存使用情况。