【Java】
TGB-Earnest
一位热爱英语的人
展开
-
java发送https请求以及解析调用接口返回来的数据信息
判断如果code为200则证明数据返回成功,然后获取data中的value数据。这样就可以获取data中的数据了。如果想要将data中的数据变成集合。一、返回的Json数据信息格式。原创 2024-02-18 10:42:50 · 909 阅读 · 1 评论 -
Canal简介
我们项目中用的Canal的目的是,当数据库中数据有增删改查了,然后将这些数据做自动的处理。原创 2022-08-21 22:22:35 · 1918 阅读 · 1 评论 -
【Java通过不同的方式上传Excel文档】
有时候我们需要上传文档,然后解析文档进行业务逻辑的处理,再存储到数据库中,如何读取文档的形式很多,接下来我们来一 一解析。原创 2022-08-10 16:55:02 · 4196 阅读 · 2 评论 -
【栈与队列练习题】
我们之前说了队列和栈的特点以及其他知识,今天我们来做一下相关的练习。原创 2022-07-17 22:42:15 · 101 阅读 · 0 评论 -
【将集合中的数据按照指定长度进行分片】
最近在做需求的时候,在写定时任务获取数据进行业务操作,但是又不能获取太多操作库,所以需要进行分片处理。原创 2022-08-05 15:09:23 · 134 阅读 · 0 评论 -
占位,稍后补上
占位,稍后补上,,,,,,原创 2022-07-31 23:02:35 · 94 阅读 · 0 评论 -
【项目出现跨域问题,如何解决】
什么是跨域,如何解决原创 2022-07-24 23:14:47 · 368 阅读 · 0 评论 -
回顾SpringMVC注解
稍后补上原创 2022-06-19 12:06:09 · 90 阅读 · 1 评论 -
【查看mvn tree 获取maven 的间接依赖】
(1) 配置maven的环境变量(2)用管理员的方式打开idea,在控制台中输入mvn -vG:\assistantRobot\ar-backend>mvn -vApache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00)Maven home: D:\apache-maven-3.5.2\bin…Java version: 1.8.0_60, vendor: Oracle C原创 2022-04-15 17:36:44 · 1952 阅读 · 0 评论 -
【Java中集合排序方式总结】
一、前言最近在做一个需求用到了集合的排序,但是这个项目就有点老,用的jdk1.6的,所以不能用Stream流,我就想着把这几种都总结一遍吧,回顾一下。先说明一下,我们是先对id进行排序,然后再对age进行排序的。二、方式(1)Comparator Person p1 = new Person(100,108,"赵晓东"); Person p2 = new Person(5,20,"赵晓北"); Person p3 = new Person(9,88,原创 2022-04-13 18:21:37 · 1705 阅读 · 2 评论 -
【mysql+json实现动态配置】
需求我们最近有一个需求,给这个系统设计一个资源的规则,但这个规则以后可能会变更,而且是经常变更的,那么应该如何设计呢?设计因为规则可能会经常变更,所以我们在设计数据库的时候需要灵活设计,不能写固定了,那么json就是最好的选择了。代码将数据进行存储 private static String regularTransformJson (Test test) { Map<String,Integer> map = new HashMap<>(3);原创 2022-03-03 14:45:36 · 571 阅读 · 0 评论 -
【@Async注解实现异步调用】
前言先说一下我们为什么会使用这个注解,当我们在执行逻辑的时候,有一个不是很关键的业务,就是保存日志,因为保存日志它不是客户需求,又为了减小系统与用户之间的延迟,那我们就可以重新启动一个线程去执行保存日志,主线程继续执行业务即可。同步同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。异步异步调用则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕;而是继续执行下面的流程。例如, 在某个调用中,需要顺序调用 A, B, C三个过程方法;如他们都是同步调用,则需要将他们都原创 2022-02-23 18:39:43 · 306 阅读 · 0 评论 -
WebService概念及实战-hutool工具
重要概念WebServiceWebService就是一种跨编程语言和跨操作系统平台的远程调用技术。所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然。跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。 远程调用,就是一台计算机的应用可以调用其他计算机上的应用。XML、SOAP和WSDL就是构成WebService平台的三大技术xmlWebService采用Http协议来在客户端和服务端之间传输数据。WebService使原创 2022-02-13 22:35:22 · 2411 阅读 · 0 评论 -
【Java 为什么重写equals的时候必须重写hashCode】
一、对于包装类型的比较,使用的是equals方法 而不是==1、首先equals是Object中的方法,Object中equals方法是怎么实现的呢。 public boolean equals(Object obj) { return (this == obj); }2、但是对于对象来说,==比较的是对象在内存中的地址,而不是值的大小,为了能比较对应的值的大小,包装类重写了Object中的equals方法,使之比较对应的值的大小。案例:public class Ba原创 2022-01-04 15:22:03 · 1455 阅读 · 0 评论 -
如何将枚举转换成字典实现动态的效果
场景一般我们在做系统的时候都会遇到枚举的情况,但是发现如果我们再进行添加会修改原来的类,那么怎么实现动态的添加呢?数据库的设计名类型长度注释idint11keychar32编码valuevarchar255值typechar64字典类型sortint11排序delete_flagtinyint4create_timedatetime0update_timedatetime0实体设计原创 2021-10-26 10:06:34 · 1269 阅读 · 0 评论 -
【Java 系统中日志如何进行设置呢?】
一、场景我们可以想想系统中有可能数据是需要记录下来,然后展示或者存储,但是那么多种类的数据,我们又该如何去存储、如何展示呢?比如说这种,写跟进、打电话、编辑等等这些都是不同的类型的。二、解决方案(1)设计数据库通过操作类型就可以将不同的业务分割开来。(2)实体类package com.hc360.crm.entity.po;import com.baomidou.mybatisplus.annotation.FieldFill;import com.baomidou.mybatisp原创 2021-10-15 16:44:08 · 550 阅读 · 12 评论 -
【Java-Until 如何将枚举类返回给前端】
一、业务场景现在要展示下图中的客户成熟度,客户成熟度根据新签和续签的值是不一样的,新签是0-6类,续签是0-8类,我们后端是定义为了两个枚举,那么如何将这两个枚举展示到前端呢?二、解决方案新签枚举package com.hc360.crm.common.enums;import com.hc360.crm.utils.BaseEnum;import lombok.Getter;/** * @Classname NewSignatureEnum * @Description TODO原创 2021-10-14 15:43:07 · 3012 阅读 · 2 评论 -
【selenium实现自动登录,robot实现调用ctrl+F】
package com.dmsd.arbackend.controller;import com.alibaba.fastjson.JSONObject;import com.dmsd.arbackend.dao.ChapterInfoDao;import com.dmsd.arbackend.entity.ChapterInfoEntity;import com.dmsd.arbackend.enumtool.ResultCodeEnum;import com.dmsd.arbacken...原创 2021-03-31 21:43:35 · 637 阅读 · 2 评论 -
【请求头Content-Type为表单提交和JSON提交的区别】调用快递接口返回400的原因
【前言】 今天在调用快递接口的时候,值总是返回400,一直在想为什么返回400,后来找到官方,官方是这么说的。意思是请求头的格式的问题,但是我的请求头就是这个啊,那么为什么呢?【解决思路】 // 设置请求头 HttpHeaders headers = new HttpHeaders();// MediaType type = MediaType.parseMediaType("application/x-www-form-...原创 2021-03-03 20:59:54 · 2959 阅读 · 31 评论 -
支付模块-第三方APP如何拉取微信小程序支付(编码篇)
【前言】 今天终于测试了一下获取到了miniPayReRuest,那我就分享一下了。【实现过程】 (1)获取参数 static String wxXcxUrl = "https://api-mop.chinaums.com/v1/netpay/wx/unified-order";因为我这个接口是小程序调取的,获取的参数第一个是从小程序获取的code值,第二个参数是服务传给小程序,然后小程序再传给服务的orderId。 /** *...原创 2021-03-01 14:40:21 · 5515 阅读 · 14 评论 -
Java8新特性——函数式接口
【前言】 项目中物流模块用到了Stream,Stream和函数式接口又紧紧相关。【主体】 (一)函数式接口(1)概念有且仅有一个抽象方法(2)格式修饰符 interface 接口名称{ public abstract 返回值类型 方法名称(可选参数信息); //其他非抽象方法内容}其中的public abstract是可以省略的。(3)@FunctionalInterface注解一旦使用该...原创 2021-02-27 15:44:16 · 491 阅读 · 9 评论 -
支付模块-第三方APP如何拉取微信小程序支付(思路篇)
【前言】 对接银联的支付有一段时间了,这其中主要是耗时在获取OpenId这一方面。还有理清楚银联方面的问题。【思路】 之前在对接银联的时候,在走测试的时候,没有出什么问题。后来在用正式接口的时候,看文档上面有需要获取OpenId,但是当时和银联的人员一直在协商问这个OpenId,刚开始和我对接的那个人是负责业务的,他也不清楚这个OpenId是什么,后来他发审批,然后到那个银联分公司的技术人员,他也不知道,还说这个是微信的,我只能帮你看看,这个我不负责...原创 2021-02-27 14:21:52 · 2118 阅读 · 7 评论 -
【Java调错—Error(17,53)找不到符号】
【前言】 今天拉了一下SVN,然后再启动项目的时候就开始报找不到符号了,这个error已经遇到了很多次了,每次的解决方法都不一样,今天就总结一下。【项目描述】 (1)pom有关问题描述:同事新建了一个模块,然后我在我这里把它删除了,但是我的pom里面一直还存在module,所以就导致编译不了了,编译不了就无法生成新的class文件,就导致了找不到符号。解决方法:将pom中的Module删除即可。然后重新build就可以启动了。 (2)注解扫...原创 2021-01-27 17:31:10 · 729 阅读 · 7 评论 -
【Java认证——mac、MessageDigest(1)】
【前言】 这两天一直在写Open Api,Api是写好了,但是为了安全,所以必须需要进行对接口进行认证。【主体】一、Base64(1)编码 public static String encryptBASE64(byte[] key) throws Exception { return (new BASE64Encoder()).encodeBuffer(key); }(2)解码 public static byte[]...原创 2021-01-26 19:57:21 · 938 阅读 · 7 评论 -
【Java工具类——枚举】
【前言】 最近一直在做平台支付,就是对接支付宝、微信、银联等,因为我要对外提供一个外部下订单的API的方法,所以下单会用到了很多的状态,如果我们用这些状态比如:待付款那么查询、存储,效率都是非常低的,所以我们就用枚举,解决了这个问题,之前也学习过,但是现在和项目实战联系起来了,那么就总结一下吧。【枚举】package com.example.Enum;import lombok.Data;import lombok.Getter;/** * @Describ...原创 2021-01-19 15:23:58 · 303 阅读 · 6 评论 -
【java lang】-String、StringBuffer、StringBuilder的使用以及理解
【项目说明】最近一直在做将图片在数据库存储的绝对路径改成相对路径,这个时候就需要我们的字符串上场了,需要将url进行重新拆、重组放到如数据库中。String strImgUrlPath = new StringBuilder(fileServerProperties.getUriPrefix()) .append(productImg.getImgPath())原创 2020-12-27 15:59:42 · 268 阅读 · 3 评论 -
【Java-多线程专项】——多线程同步(2)
一、线程同步并发:同一个对象被多个线程同时操作(1)为什么会需要线程同步?处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这时候我们就需要线程同步,线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程再使用。(2)线程同步的条件队列+锁(3)锁存在的问题由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突问题,为了保证数据在方法中被访问时的正确性,..原创 2020-12-06 20:10:02 · 196 阅读 · 6 评论 -
【Java-多线程专项】——多线程的创建和常用方法(1)
一、多线程的创建多线程的创建有3种方式,分别是继承Thread 、实现Runnable、实现Callable接口(1)继承Threadclass MyThread1 extends Thread{ @Override public void run() { System.out.println("MyThread1"); }}在main方法中就可以直接调用start方法即可启动public class ThreadNew { p.原创 2020-12-06 18:55:33 · 205 阅读 · 6 评论 -
【IDEA】—前后端联调分析
一、项目场景今天在做项目的时候,遇到了一个BUG,就是选中店铺的个人或者个体工商户或者其他,点击查询的时候不改变,页面不进行改变。二、解决思路解决思路,我这里现在有两种,我先说第一种。第一种:我先会去看日志,看一下查询的时候,有没有把这个参数带进去。看了日志发现没有把参数传入到后端,接下来就是看前端了,定位到组件的地方检察一下有没有问题。第二种:打开F12,看一下请求体中,有没有把请求参数传过来。发现传过来了,说明前端是没有问题的。接下来DE...原创 2020-11-30 19:53:02 · 1079 阅读 · 5 评论 -
【Java集合专项】-Map集合(3)
一、概述二、Map (1)Map接口的特点(1) 用于存储任意键值对,(Key-Value)(2) 键:无序、无下标、不允许重复(唯一)(3)值:无序、无下标、允许重复(2)Map常用方法(a)创建MapMap map = new HashMap(); (b) 添加元素 //添加元素 map.put("cn","中国"); map.put("uk","美国");(c)遍历...原创 2020-11-29 19:48:47 · 306 阅读 · 7 评论 -
【Java集合专项】-ArrayList和LinkedList源码分析(2)
一、ArrayList源码分析(一)ArrayList初始化的时候容量为0(1)初始化ArrayList //创建集合 ArrayList arrayList = new ArrayList();上面的代码是进行ArrayList的初始化,然后我们进入到ArrayList的构造方法中。(2)无参数的构造方法 /** * Constructs an empty list with an initial capacity of ten.原创 2020-11-29 19:24:54 · 865 阅读 · 25 评论 -
【Java集合专项】-List(ArrayList和LinkedList)基础(1)
一、总览二、集合(1)什么是集合?概念:对象的容器,定义了对多个对象进行操作的常用方法,可实现数组的工作。(2)集合和数组的区别?(a)数组长度固定,集合长度不固定。(b)数组可以存储基本类型和引用类型,集合只能存储引用类型。三、List实现类(1)ArrayListI 、特点a) 数组结构实现,查询快,增删慢b) 运行速率快,线程不安全2、常用方法(a) 创建集合并添加 //创建集合 ArrayLi..原创 2020-11-29 17:41:22 · 359 阅读 · 5 评论 -
Java如何进行读取文件(1)—IO流
一、FileInputStream(1)read()方法(a)不加改造的read()方法 FileInputStream fis = null; try {// fis = new FileInputStream("C:\\Users\\赵晓东\\Desktop\\javaIO\\FileInputStream.txt");// /*相对路径一定是从当前所在的位置作为起点开始找*/ /*I原创 2020-05-24 21:41:41 · 1018 阅读 · 6 评论 -
Java是如何存储元素的(3)—Map集合存储数据原理(为什么HashMap集合的key部分的特点是无序,不可重复)
(一)Map集合结构图(二)Map集合中常用的方法(1)往Map集合中添加元素 V put(Kkey, Vvalue) 将指定的值与该映射中的指定键相关联(可选操作)。 这个和Collection不一样,Collection用的是add();(2)清空 void clear() 从该地图中删除所有的映射(可选操作)。 Collection中,也有这个...原创 2020-05-21 17:23:20 · 1731 阅读 · 9 评论 -
Java是如何存储元素的(3)—Collection集合存储数据原理
一、集合概述(1)什么是集合?有什么用?数组其实就是一个集合,集合实际上就是一个容器,可以来容纳其他类型的数据。(2)集合为什么说在开发中使用较多?集合是一个容器,是一个载体,可以一次容纳多个对象,在实际开发中,假设连接数据库,数据库当中有10条记录,那么假设把这10条记录查询出来,在java程序中会将10条数据封装成10个java对象,然后将10个java对象放到某一个集合当中,将集合传到前端,然后遍历集合,将一个数据一个数据展现出来。(3)集合中存储的是引用集合不能直接存储基本数原创 2020-05-17 20:27:54 · 2374 阅读 · 7 评论 -
Java如何模拟现实生活的不正常数据(1)——异常
一、异常概述int a =10;int b =0;int c =a/b;System.out.println(c);于是控制台出现了 Exception in thread "main" java.lang.ArithmeticException: / by zero at com.javase.excepetion.ExceptionTest01.main(ExceptionTest01.java:7)这个信息被我们称为异常信息,这个信息是JVM打印的。(1)什么是异原创 2020-05-15 19:02:30 · 1070 阅读 · 3 评论 -
Java中的常用类(3)—日期、数字、随机数、枚举。
一、日期(1)获取系统当前时间(Date)Date time = new Date();调用time的无参数构造方法,可以得到日期Tue May 12 08:27:08 CSR 2020但是这个是不符合我们的格式的,那么怎么办呢?(2)SimpleDateFormat 这个类对time进行转换。日期转换格式。SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddHH:mm:ssSSS");String s1 =sdf原创 2020-05-13 21:14:08 · 436 阅读 · 4 评论 -
Java中的常用类(2)—八大包装类、Integer运行原理
一、为什么会有八大包装类packagepackType.Integer;public class IntegerTest01{public static void main(String[]args){}public void doSome(Object obj){System.out.println(obj);}}我现在想要往doSome()中传查询入进去一个数字,但是数字属于基本数据类型,而doSome()方法参数的类型时Object。可见Object方法无法接受基本数据类型原创 2020-05-12 17:05:37 · 532 阅读 · 5 评论 -
Java中的常用类(1)—String运行内存原理、构造方法、常用方法
一、String内存结构(1)这两行代码,在JVM中创建了几个对象?public class StringTest01{ public static void main(String [] args){ String s1 = "abcdef"; String s2 ="abcdef"+"xy"; }}接下来,我们看内存图。所以,这两行代码在JVM中创建了3个字符串对象。接下来我们再来看一个String s3 = new St原创 2020-05-12 16:01:03 · 580 阅读 · 5 评论 -
Java中如何存储数据的(2)—数组
一、认识数组(1)Java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object。(2)数组实际上是一种容器,可以同时容纳多个元素。(3)数组当中可以存储基本数据类型的数据,也可以存储引用数据类型的数据。(4)数组是引用类型,所以数组对象是在堆内存当中的,(数组是存储在堆当中的)。(6)对于数组当中存储的是“java对象”的话,实际上存储的是对象的"引用(内存地址)"(数组中不能直接存储Java对象) (7)数组一旦创建,长度不可变。二、一维内存结构...原创 2020-05-10 21:20:01 · 2025 阅读 · 8 评论