随笔分类 -  01-Java基础入门

摘要:场景复现 现有一个场景,在处理发票信息时,我们常常会遇到将地址与电话、开户号与账号进行拼接的需求。在 Java 中,最简单的拼接方式是使用 + 运算符,但这种方式在处理 null 值时会产生一些问题。下面我们通过具体示例来详细分析并给出更好的解决方案。 import org.apache.commo 阅读全文
posted @ 2025-01-03 15:57 钟小嘿 阅读(87) 评论(0) 推荐(0) 编辑
摘要:初始化 BigDecimal amount = new BigDecimal("15"); 加减乘除 public static void main(String[] args) { BigDecimal amount = new BigDecimal("15"); BigDecimal amoun 阅读全文
posted @ 2024-11-13 19:58 钟小嘿 阅读(29) 评论(0) 推荐(0) 编辑
摘要:有时候会遇到在java中启动Python的程序,下面进行说明 package com.zxh.util; import cn.hutool.core.collection.CollectionUtil; import lombok.extern.slf4j.Slf4j; import java.io 阅读全文
posted @ 2024-08-28 14:38 钟小嘿 阅读(207) 评论(0) 推荐(0) 编辑
摘要:在日常的开发中,经常回遇到数据转换问题或数据参数效率问题,这时可以通过把数据进行压缩进行传输。以下是zip、gzip的压缩和解压方法: package com.zxh; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutp 阅读全文
posted @ 2024-06-28 10:39 钟小嘿 阅读(456) 评论(0) 推荐(0) 编辑
摘要:如果if-else的分支较多,阅读起来比较困难,维护起来也容易出错,此时需要进行优化。下面提供几种方式,仅供参考 1.提前return,去除不必要的else 如果if-else代码块包含return语句,可以考虑通过提前return,把多余else干掉,使代码更加优雅。 优化前: if(condit 阅读全文
posted @ 2023-05-09 09:10 钟小嘿 阅读(218) 评论(0) 推荐(0) 编辑
摘要:1.synchronized的作用是什么 synchronized也叫作同步锁,解决的是多个线程之间对资源的访问一致性。换句话说,就是保证在同一时刻,被synchronized修饰的方法或代码块只有一个线程在执行,其他线程必须等待,解决并发安全问题。 其可以支持原子性、可见性和有序性。三大特性的说明 阅读全文
posted @ 2023-04-03 14:08 钟小嘿 阅读(1765) 评论(0) 推荐(0) 编辑
摘要:1.概述 JVM(全称Java Virtual Machine)也叫Java虚拟机,它是一种抽象化的计算机。有句话叫 java语言是跨平台的,一次编译,多处运行。也就是说java代码只需要一次编译即可放到不同操作系统上进行运行,这完全依赖JVM,它将编译的class文件转化为对应操作系统所能运行的二 阅读全文
posted @ 2023-03-16 14:53 钟小嘿 阅读(156) 评论(0) 推荐(0) 编辑
摘要:1.概述 反射就是在运行状态,对于任意一个类,都可以直达这个类的属性和方法;对于任何一个对象,都可以调用它的任意一个方法和属性。而对于官方的解释是,反射允许对封装类的字段、方法以及构造函数进行编程访问。 2.反射的使用方式 反射的应用场景主要是先获取class对象,然后根据需求获取构造函数、成员变量 阅读全文
posted @ 2023-03-01 11:10 钟小嘿 阅读(92) 评论(0) 推荐(0) 编辑
摘要:1.概述 Orika是java Bean映射框架,可以实现从一个对象递归拷贝数据至另一个对象,它使用字节码生成器创建开销最小的快速映射,比其他基于反射方式实现更快。对于名称不相同或类型不一样,则需要单独映射。 2.实战演练 2.1环境准备 新建一个SpringBoot的项目,导入需要的依赖 <dep 阅读全文
posted @ 2022-12-26 14:46 钟小嘿 阅读(1687) 评论(0) 推荐(0) 编辑
摘要:在开发过程中,必定会遇到树形结构的数据,一般都是后端直接从库里查询出来然后自定义方法去封装成树形树形返回给前端。其实Hutool工具类也提供了这个方法,这种方式使用起来也很简单。 //1.配置树节点信息,指定key,可直接使用默认的key TreeNodeConfig config = new Tr 阅读全文
posted @ 2022-10-28 15:22 钟小嘿 阅读(5665) 评论(0) 推荐(0) 编辑
摘要:在实际的生活中,对于敏感数据,都不会轻易展示出来。如在诸多应用中,手机号中间4位是*号,身份证号中出生信息是*号,那么这些数据都是在后端经过加密后返回给前端的。 1.手机号对中间4位加密 phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"); 阅读全文
posted @ 2022-06-13 19:00 钟小嘿 阅读(2006) 评论(0) 推荐(0) 编辑
摘要:1.问题描述 在日常开发中,对于异常信息,通过会进行log打印,有时会接入到ELK,但需要注意细节问题。 用的最多的可能就是在类上加入@Slf4j注解,在可能异常的地方使用log.error("异常信息为:"+e)或log.error("异常信息为:{}", e.getMessage())打印错误信 阅读全文
posted @ 2022-05-24 20:45 钟小嘿 阅读(1044) 评论(0) 推荐(0) 编辑
摘要:在java中遇到多个字符串拼接时都会使用StingBuilder或StringBuffer,而java8提供了一个新的类StringJoiner。 StringJoiner是的StingBuilder升级版,用于构造由分隔符分隔的字符序列,并可选择性地从提供的前缀开始和以提供的后缀结尾。 下面来看两 阅读全文
posted @ 2022-05-16 19:04 钟小嘿 阅读(180) 评论(0) 推荐(0) 编辑
摘要:先看一个案例: String s = "sda,实打实,,122,2222,sdadmsa,"; String[] split = s.split(","); System.out.println(split.length); System.out.println(new ArrayList<>(A 阅读全文
posted @ 2022-05-06 19:25 钟小嘿 阅读(1835) 评论(1) 推荐(2) 编辑
摘要:1.线程的定义 1.1概述 1)进程Process:是执行程序的一次执行过程。 2)线程Thread:是CPU调度和执行的单位。main()为主线程,为系统的主入口,用于执行整个程序。在程序运行的过程中,即使没有手动创建线程,后台也会有多个线程(如主线程,gc线程)。 3)进程与线程的区别: 在一个 阅读全文
posted @ 2022-03-22 21:10 钟小嘿 阅读(144) 评论(1) 推荐(1) 编辑
摘要:1.概述 map是键值对的集合接口,根据键得到值,因此不允许键重复,但允许值重复。其键的有序和无序各有优势。 2.分类及区别 类型 key顺序 线程安全性 备注 HashMap 无序 线程不安全 最常用。根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。最多只允许一条 阅读全文
posted @ 2022-03-08 22:23 钟小嘿 阅读(276) 评论(0) 推荐(0) 编辑
摘要:java8的新特性使用起来非常的方便,详情参考Java8新特性。 1.map-获取集合中对象的某个属性值 1)需求:现有一个包含用户对象的集合,想只获取这些用户的姓名组成一个集合,如何去做? 2)演示 用户对象如下: @Data public class User { private Integer 阅读全文
posted @ 2022-03-04 23:17 钟小嘿 阅读(1580) 评论(0) 推荐(0) 编辑
摘要:虽然List集合在正常使用过程中不会添加NULL值作为元素,但为了代码的健壮性,在遍历获取元素时进行判断更佳。在编写代码时,判断NullPointerException(简称NPE)非常重要。 数据准备如下: List<Integer> list = new ArrayList<>(); list. 阅读全文
posted @ 2022-02-20 17:06 钟小嘿 阅读(8817) 评论(0) 推荐(0) 编辑
摘要:在日常写代码的过程中,通常会记录某一段程序的运行时间,使用的方式是System.currentTimeMillis()。 Spring也自带了一种方式StopWatch,使用起来也比较简单。 共分为四步:创建对象,开始记录执行时间,结束记录执行时间,获取执行的总时间。 package com.zys 阅读全文
posted @ 2022-01-25 21:46 钟小嘿 阅读(2219) 评论(0) 推荐(0) 编辑
摘要:当需要根据java代码判断当前系统什么操作系统时,可使用下面的方法: 1.根据系统名称判断类型 public static void main(String[] args) { String osName = System.getProperties().getProperty("os.name") 阅读全文
posted @ 2021-12-27 21:30 钟小嘿 阅读(2527) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示