
java基础知识
文章平均质量分 62
YD_1989
这个作者很懒,什么都没留下…
展开
-
TransactionSynchronizationAdapter - 如何在事务不同状态下执行特定操作
在 Java 项目中,有时候需要在事务某个阶段执行一些特定的操作,比如更新数据等,这个时候可以通过使用 TransactionSynchronizationAdapter来实现特定逻辑操作。本文以 事务提交之后为例,演示在事务提交之后执行特定操作。原创 2025-04-10 19:45:00 · 864 阅读 · 0 评论 -
华为云对象存储服务(OBS)
华为云为开发者提供了丰富的 Java SDK,借助这些 SDK 能够方便地与华为云的各类服务进行交互。下面以 华为云对象存储服务(OBS)的 Java SDK 为例,介绍其使用步骤。原创 2025-04-01 18:15:00 · 601 阅读 · 0 评论 -
Java(Sprigboot) 项目调用第三方 WebService 接口实现方式
WebService 接口的发布通常一般都是使用 WSDL(web service descriptive language)文件的样式来发布的,该文档包含了请求的参数信息,返回的结果信息,我们需要根据 WSDL 文档的信息来编写相关的代码进行调用WebService接口。原创 2024-12-26 23:39:57 · 1296 阅读 · 0 评论 -
Java如何避免过度打印日志导致性能问题
在项目开发中打印日志是非常重要的,可以帮助我们排查、定位很多很难发现的问题。但是日志并不是越多越好,如果过度打印,大量的日志写入服务器的磁盘里面,反而会出现很多问题。原创 2024-12-25 22:49:05 · 662 阅读 · 0 评论 -
springboot 异步 @Async 的日常使用及失效场景
从上面的 @Async 使用我们看到,添加注解的异步方法在一个单独的类 AsyncService 中,然后注入到 AsyncTestService 中进行调用。在 Springboot 中要开启@Async注解异步的功能,需要在项目的启动类,或者配置类上,使用@EnableAsync注解。使用@Async注解声明的方法,必须是能被重写的,很显然static修饰的方法,是类的静态方法,是不允许被重写的。@EnableAsync注解相当于一个开关,控制是否开启@Async注解异步的功能,默认是关闭的。原创 2024-11-25 22:36:33 · 1278 阅读 · 0 评论 -
一文搞懂什么是 classpath
classpath 指的是类路径,也就是编译之后的target文件夹下的文件夹。maven工程中,类路径指的是,或者是下的路径就是类路径。或者在配置文件中看到如下配置:这样配置完之后 spring 就能找到对应文件。那么?classpath 指向的地方到底是哪里?如上图所示,classpath 指向的就是打war/jar包之后的classes的位置。而 classes 文件夹下就是我们原项目的java文件和resources文件夹里面的内容。原创 2024-10-12 18:15:00 · 1242 阅读 · 0 评论 -
Java - 通过枚举避免大量 if-else
/ 定义 key private String key;// 定义 value private String value;return key;} // 定义 构造方法 HttpUrlEnum(String key , String value) {} // 获得 map public static Map < String , String > toMap() {} }// 定义 key private String key;原创 2024-09-06 17:24:02 · 369 阅读 · 0 评论 -
最全Java集合分片处理!!! Java 中 List 分片的 7种方法
apache commons 的 ListUtils.partition 方法使用和 Google Guava 的 Lists.partition 方法大体一致。可以看到,方法需要传入两个参数,其中:list 参数是要分割的集合,size 表示几个元素分割为一组。Lists.partition 方法可以更加灵活的按照几个元素为一组的形式进行分割。分割完集合,将分割完的集合封装在一个集合里返回。原创 2024-08-23 00:40:55 · 6028 阅读 · 0 评论 -
最全 Steam 流操作!!!Java Stream 流操作常用 API
sorted 排序(Integer 类型)默认是升序,reversed() 为降序。原创 2024-07-09 16:49:59 · 905 阅读 · 0 评论 -
Java 自定义集合常量
static {CONSTANT_MAP_1.put("01", "同意");CONSTANT_MAP_1.put("02", "不同意");CONSTANT_MAP_1.put("03", "待定");System.out.println("常量 Map 的 key:" + key + " ,值是:" + Constants.CONSTANT_MAP_1.get(key));put("A", "父母");put("B", "姑侄");put("C", "爷孙");原创 2024-07-07 01:01:52 · 1907 阅读 · 0 评论 -
List<Map<String,List>>集合结构的遍历处理
1、List<Map<String,List>>的json数据表示形式如下所示,Json数据整体是一个json数组的形式,数组内的每一个元素是Map数据形式,map数据形式中,key是字符串,value同时又是一个数组的形式"fxjg": [ { "reter": [ "/1/1.jpg", "/1/2.jpg",原创 2022-04-29 13:43:28 · 2370 阅读 · 0 评论 -
java多线程学习笔记
多线程,就是说一个应用程序有多条执行路径,每当我们打开一个应用程序的时候,就相当于打开了一个进程,而进程中执行的操作,就是线程。以优酷为例,打开优酷就相当于打开一个进程,下载视频的操作就是线程,多线程就是同时下载多个视频。在Java中有两种方式实现多线程分别是继承Thread类和实现Runnable接口。一、继承Thread类Thread类中有一个run方法,但是这个run方法需要我们重写,故我们需要自定义一个类来继承Thread类,然后在自定义的类中重写这个run方法,重写完了就可以创建一个对象了原创 2022-05-16 13:21:58 · 174 阅读 · 0 评论 -
java类内部的方法名称可以相同吗?
答:java类内部的方法名称可以相同。原因:java的一个特性是“多态性”。多态性包括两种:①类内部多态(重载)。②继承中多态(覆写)。类内部的多态:在一个类的内部如果有多个方法的方法名相同参数列表不同。由类内部多态的定义可知,同一个类中,可以出现相同名称的方法,但是参数列表一定要不同。其中最典型的就是有参和无参的构造方法。实体类中有参和无参的构造方法: //无参构造方法 public Animal() { } //无参构造方法 public Animal原创 2022-05-07 19:20:05 · 3376 阅读 · 0 评论 -
算法面试题
1、1-100的数字,如果是3的倍数,输出字符串3ZZ,如果是5的倍数,输出字符串5ZZ,如果既是3的倍数又是5的倍数,输出字符串3&5ZZ,其余情况正常输出数字/** * 1-100的数字,如果是3的倍数,输出字符串3ZZ; * 如果是5的倍数,输出字符串5ZZ; * 如果既是3的倍数又是5的倍数,输出字符串3&5ZZ,其余情况正常输出数字 */ private static void print() { for (int原创 2022-05-16 16:40:29 · 139 阅读 · 0 评论 -
算法小案例
1.给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。提示:可以假设 nums 中的所有元素是不重复的。n 将在 [1, 10000]之间。nums 的每个元素都将在 [-9999, 9999]之间。 public static int search(int[] nums,int target){ int index = -1; for(in原创 2021-12-19 16:52:58 · 110 阅读 · 0 评论 -
servlet
Servlet技术-控制层(一)项目分层结构3层前台后台底层浏览器web服务器数据库服务器谷歌浏览器Tomcat服务器Mysql服务器Java语言Mysql(SQL)JDBC技术Mysql(SQL)(二)项目分层结构4层前台控制层数据层底层web前台web后台视图层控制层数据层底层Java语言Java语言Java语言Mysql(SQL)JSP技术Servlet技术JDBC技术原创 2021-08-18 15:24:40 · 95 阅读 · 0 评论 -
java字符串拼接
1、字符串末尾添加方法一: String str = "中国"; str += "我爱你"; System.out.println(str);打印结果:方法二: StringBuilder str = new StringBuilder("中国"); str.append("我爱你"); System.out.println(str);打印结果:2、在任意位置添加字符串官方给我们提供了insert()方法,该方法是原创 2022-04-25 12:35:12 · 703 阅读 · 0 评论 -
日期工具类
package com.mf.util;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List;/** * 日期工具类 * @author Administrator * */public class DateUtil { /** * 获取当年年月日字符串 * @re原创 2021-08-19 21:30:11 · 117 阅读 · 0 评论 -
@Transactional事务注解
一、事务注解使用的位置1、用于类的上方表示这个类中的所有方法都进行事务处理当类中的某个方法不需要事务处理时,可以在这个方法上添加: @Transactional(propagation =Propagation.NOT_SUPPORTED)例如:@Transactional public class AServiceImplements AService { public void m1() { } @Transactional(pr原创 2022-04-26 14:37:43 · 5510 阅读 · 0 评论 -
java8的Optional 详解
1、Optional 介绍传统的写代码方式经常会遇到NullPointerException,这就需要我们在代码中经常判空。而判空的写法又会显得很累赘,这里就可以用到Optional来简化代码。Optional是在java.util包下的一个用于代替null的一个工具类。import java.util.Optional;Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。Optional 类是一个可以为n原创 2022-04-30 10:26:05 · 15181 阅读 · 0 评论 -
Java的接口
java接口原创 2021-12-27 18:29:44 · 419 阅读 · 0 评论 -
Java常用的工具类
IOUtilsIOUtils: Apache Commons IO用来处理输入-输出流详情介绍: https://blog.youkuaiyun.com/l2580258/article/details/89227761添加的依赖:<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</v原创 2021-08-19 22:24:08 · 754 阅读 · 1 评论 -
java如何自定义注解
一、什么是注解?注解是一种能被添加到java源代码中的元数据,方法、类、参数和包都可以用注解来修饰。注解可以看作是一种特殊的标记,可以用在方法、类、参数和包上,程序在编译或者运行时可以检测到这些标记而进行一些特殊的处理。二、自定义注解需要的基本元素自定义注解需要用到的东西:修饰符:访问修饰符必须为public,不写默认为pubic;关键字:关键字为@interface;注解名称: 注解名称为自定义注解的名称,使用时还会用到;注解类型元素: 注解类型元素是注解中内容,可以理解成自定义接口的原创 2022-05-30 10:38:24 · 4621 阅读 · 1 评论 -
== 和 equals 的区别是什么?
== 和 equals 的区别是什么? String str1 = "hello"; String str2 = new String("hello"); String str3 = str2; System.out.println(str1 == str2); System.out.println(str3 == str2); System.out.println(str1 == str3);打印结果:falset原创 2022-05-08 18:11:55 · 312 阅读 · 0 评论 -
Java Map 中获取最大值 Value 和对应的 Key
Java Map 中获取最大值 Value 和对应的 Key:import java.util.HashMap;import java.util.Map;import java.util.TreeMap;public class e { public static void main(String[] args) { Map<String, Object> map = new HashMap(); map.put("张三", 28);原创 2022-05-26 22:42:03 · 4071 阅读 · 0 评论 -
java正则表达式
正则表达式是做什么的?正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合, 组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式的编译原理:java.util.regex 包使用正则表达式需要引入java.util.regex 包:import java.util.regex.*;如上图所示,regex包下共有三个实体类:Patt原创 2022-05-27 14:12:12 · 272 阅读 · 0 评论 -
druid连接池的使用
1、数据库连接池理解连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。2、druid连接池 maven配置及配置文件使用(1)druid连接池的maven依赖添加添加druid连接池的依赖、数据库驱动<!-- https://mvnrepository.com/artifact/mysql/mysql原创 2022-04-28 23:35:36 · 2254 阅读 · 0 评论 -
java遍历字符串打印每一个字符
String str = "james"; //方法一 char[] charArray = str.toCharArray(); for (char i:charArray){ System.out.println(i); } /*for (int i = 0; i < charArray.length; i++) { System.out.println(c[i]); ..原创 2022-05-12 10:05:51 · 1887 阅读 · 0 评论 -
java的this关键字和super关键字
this关键字解析this 关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性。public class ThisDemo { private static final int x = 10; private static final int y = 10; private void sum() { // 通过 this 点取成员变量 int z = this.x + this.y;原创 2022-05-28 15:46:20 · 353 阅读 · 0 评论 -
String转成double等类型注意非空判断
字符串转换非空判断原创 2022-08-04 22:50:51 · 1643 阅读 · 0 评论 -
Java的static关键字
1、基本概念:通常情况下成员变量隶属于对象层级,每创建一个对象就需要申请独立的内存空间来存放该对象独立的成员变量信息,若**所有对象的某个成员变量数值完全一样**(比如某个学校的学生信息,所有学生的学校是完全一样的)却又单独存放会造成内存空间的浪费。为了解决上述问题,使用static关键字修饰成员变量表达静态的含义,此时该成员变量由对象层级提升为类层级被所有对象共享,该成员变量随着类加载准备就绪,与是否创建对象无关。static关键字也可以修饰成员方法,推荐使用 类名. 的方式访问。原创 2021-12-27 12:34:04 · 287 阅读 · 0 评论 -
@ConfigurationProperties注解
@ConfigurationProperties注解@ConfigurationProperties是springboot提供读取配置文件的一个注解。其对应的bean的后置处理器为**ConfigurationPropertiesBindingPostProcessor**Spring源码中大量使用了ConfigurationProperties注解,比如server.port就是由该注解获取到的,通过与其他注解配合使用,能够实现Bean的按需配置。该注解有一个**prefix**属性,通过指定的前缀原创 2021-12-16 10:51:28 · 774 阅读 · 0 评论 -
Java获得文件夹下的所有文件名称
import org.apache.commons.compress.utils.Lists;import java.io.File;import java.util.List;/** * 文件存储路径返回 */public class FileUrlUtil { //遍历打印目录和文件通用的方法 //图片存储路径返回 public static List printDir(File dir) { List<String> stringL原创 2022-03-08 14:56:40 · 618 阅读 · 0 评论 -
Java分支语句、循环语句
(1)分支语句:if分支、switch分支(2)循环语句:for循环、while循环、do while循环(3)关键字:continue、break // 背:句式背、执行流程背 // TODO (1)if分支语句 // 注意:根据判断布尔值来执行不同分支的。 // 单分支if语句:true执行、false不执行 if (true) { System.out.println(1); } // 两分支if语句:true执行第一个、false执行第二个 if (false)原创 2021-08-07 16:52:42 · 293 阅读 · 0 评论 -
equals方法和hashcode方法
一、Object都有哪些方法?1.clone方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里将参数改变,这是就需要在类中复写clone方法。2.getClass方法final方法,获得运行时类型。3.toString方法该方法用得比较多,一般子类都有覆盖。4.finalize方法该方法用于原创 2022-05-18 16:35:53 · 877 阅读 · 0 评论 -
java.lang.String字符串类
Java默认自动导入java.lang.中的类(但是不包括子包)字符串的两种创建方式// 方式一:字面值(推荐、简单、效率高) String s1 = "你好"; System.out.println(s1); // 方式二:new关键字创建(new就表示“创建”) String s2 = new String("你好"); System.out.println(s2); // 字面值每次都会先检查内存中是否有此字符串//如果有则不创建字符串对象直接返回。// new关键字原创 2021-08-17 00:03:35 · 202 阅读 · 0 评论 -
java instanceof关键字
instanceof 是 Java 的保留关键字,它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。代码中可能遇到的情况:1、基本数据类型如上图,这种情况会报错。将右边的类型改为引用类型:依旧报错,改成特殊的null:依旧报错,由此得出:基本类型不能用于 instanceof 判断。为了验证这一点,换一个基本数据类型double进行测试:依旧报错,可以验证结论正确。2、引用类型创建如下关系的类和接口:测试一:public static vo原创 2022-05-29 23:13:53 · 832 阅读 · 0 评论 -
java单例模式学习笔记
1、单例模式定义确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。比如:线程池、缓存、日志对象。2、单例模式的特点①单例类只能有一个实例。②单例类必须自己创建自己的唯一实例。③单例类必须给所有其他对象提供这一实例。3、单例模式的种类(1)懒汉式——线程不安全(2)饿汉式——天生线程安全懒汉式单例——线程不安全,需要我们改造成线程安全/** * 懒汉式单例类——线程不安全 * 在第一次调用的时候实例化自己 */public class DanLi { //通过原创 2022-04-25 16:06:05 · 420 阅读 · 0 评论 -
java 遍历对象中的所有属性(字段)和类型案例
业务场景:一个房产交易系统中的业务需求,查询房屋交易状态接口,调用第三方接口返回一个vo对象,该对象的属性主要是描述该房屋的交易情况,比如是否抵押,是否被查封等,现在需要利用该对象的值决定返回给调用方的返回值。(现在一个对象中有很多个属性,大部分属性的值影响返回结果)代码:vo对象:@Datapublic class BDCQZTXX { private String fwbm;//房屋编码 private String bdcdyh;//不动产单元号 private St转载 2022-04-28 23:08:05 · 5195 阅读 · 0 评论 -
异常+反射+线程
异常API+线程API1、常见异常①算数异常:java.lang.ArithmeticExceptionSystem.out.println(2 / 0);②数组下标越界异常:java.lang.ArrayIndexOutOfBoundsException int[] arr = {1,2,3}; System.out.println(arr[3]);③数字转换异常:java.lang.NumberFormatException int i = Integer.parseInt("你")原创 2021-08-20 14:16:45 · 110 阅读 · 0 评论