文章分类 - javabase
摘要:我们都经常使用一些循环耗时计算的操作,特别是for循环,它是一种重复计算的操作,如果处理不好,耗时就比较大,如果处理书写得当将大大提高效率,下面总结几条for循环的常见优化方式。 首先,我们初始化一个集合 list,如下: List<String> list = new ArrayList<Stri
阅读全文
摘要:原文链接:https://blog.csdn.net/ChineseSoftware/article/details/122533760 一、序列化:将 Java 对象转换成字节流的过程 1️⃣序列化过程:是指把一个 Java 对象变成二进制内容,实质上就是一个 byte[]。因为序列化后可以把 b
阅读全文
摘要:一个方法返回多个值,可以有多种实现方式1.放在bean2.放在map里面3.使用commons-lang3工具类,返回2个值用Pair,3个值用Triple 1. 使用map /** * @author liangks * @date 2022/4/26 */ @Data @NoArgsConstr
阅读全文
摘要:Java SPI 是基于接口的编程+策略模式+约定配置文件组合实现的动态加载机制,能够很方便的为某个接口寻找服务实现的机制。 1、什么是SPI? SPI 全称:Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的接口,它可以用来启用框架扩展和替换组件。
阅读全文
摘要:Java反射机制是什么? Java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法。 对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 用一句话总结就是反射可以实现在运行时可以知道任意一个类的属性
阅读全文
摘要:使用Java8的Stream的distinct方法去重,我们的对象需要实现hashcode()和equals()方法。 把学生类修改后如下: public class Student { private Long id; private String name; private int age; p
阅读全文
摘要:使用stream中sorted方法 怎么使用? 1:创建实体类。2:创建list。3:用list.stream().sorted();如图所示: List<Test> list = new ArrayList<>(); Test test = new Test(); test.setName("张三
阅读全文
摘要:一、单字段、多字段分组 List<String> items = Arrays.asList("apple", "apple", "banana", "apple", "orange", "banana", "papaya"); Map<String, Long> result = items.st
阅读全文
摘要:一、BigDecimal 使用不当,造成 P0 事故 https://mp.weixin.qq.com/s/ubztl7G9GUe9TNqKZt3JuQ 01、背景 我们在使用金额计算或者展示金额的时候经常会使用BigDecimal,也是涉及金额时非常推荐的一个类型,BigDecimal自身也提供了
阅读全文
摘要:在Java开发特别是数据库开发中,经常会用到Class.forName( )这个方法。通过查询Java Documentation我们会发现使用Class.forName( )静态方法的目的是为了动态加载类。在加载完成后,一般还要调用Class下的newInstance( )静态方法来实例化对象以便
阅读全文
摘要:文章引用自:https://blog.csdn.net/tengdazhang770960436/article/details/99956111 一、函数式接口 1、定义 一个接口中有且只有一个抽象方法,不包括 equals这类在object中已经定义的方,为了明确表示一个接口是函数式接口,防止别
阅读全文
摘要:面试题:new Integer(112)和Integer.valueOf(112)的区别 考察点猜想 这道题,考察的是对Integer这个对象原理的理解,关于这道题的变体有很多,我们会一一进行分析。 理解这道题,对于实际开发过程中防止出现意想不到的Bug很有用,建议大家认真思考和解读。 背景知识详解
阅读全文
摘要:该类Math包含用于执行基本数值运算的方法,例如基本指数、对数、平方根和三角函数。 与 class 的一些数字方法不同, class StrictMath的等效函数的所有实现Math都没有定义为返回逐位相同的结果。这种放松允许在不需要严格再现性的情况下实现更好的实现。 默认情况下,许多Math方法只
阅读全文
摘要:在JDK1.8中,Collection以及其子类新加入了removeIf方法,作用是按照一定规则过滤集合中的元素。这里给读者展示removeIf的用法。首先设想一个场景,你是公司某个岗位的HR,收到了大量的简历,为了节约时间,现需按照一点规则过滤一下这些简历。比如这个岗位是低端岗位,只招30岁以下的
阅读全文
摘要:今天使用反射实例化遇到一个异常:java.lang.InstantiationException 先看要通过反射实例化的类:就一个很普通的类 package com.dd.reflect; public class flower { private String color; private int
阅读全文
摘要:有段时间没有写业务代码了,今天产品有个需求是要求校验名称为6个汉字或者12个字符。印象中一个汉字就是一个字符,经过了解后,原来前端js中一个汉字是两个字符,所以这里索性给前端单纯去校验了,我只在数据库存储设置稍大点20个字符即可。 先借用网上的资料整理下字符字节的关系如下: ① ASCII码中,一个
阅读全文
摘要:1、初试牛刀:筛选绿苹果 第一个解决方案可能是下面这样的: public static List<Apple> filterGreenApples(List<Apple> inventory){ List<Apple> result=new ArrayList<>(); //仅仅筛选出绿苹果 for
阅读全文
摘要:int page = Integer.parseInt(request.getParameter("page")); int limit = Integer.parseInt(request.getParameter("limit")); int startRow = (page-1) * limi
阅读全文
摘要:在Java开发特别是数据库开发中,经常会用到Class.forName( )这个方法。通常也不知其含义,通过查询Java Documentation我们会发现使用Class.forName( )静态方法的目的是为了动态加载类。在加载完成后,一般还要调用Class下的newInstance( )静态方
阅读全文
摘要:首先汇总一下JDK的运行时常量池、字符串常量池、静态常量池的功能及存储结构。 一、JVM运行时内存结构 在了解常量池之前我们先通过一张图了解一下JVM的整个内存分布图。下图为JDK7的内存结构: 在上图中JVM所管理的内存主要包括以下区域:程序计数器(Program Counter Register
阅读全文