Java
文章平均质量分 78
zyqok
这个作者很懒,什么都没留下…
展开
-
Java 对象拷贝工具类
我们在Java编码中,有时候可能会经常遇到对象拷贝的场景。比如(1)当我们更新一个对象的时候,如果要记录对象属性的前后变化,那么在更新对象之前,我们应该首先将对象拷贝暂存起来,且这个时候的拷贝一定是深拷贝(内存地址不同的两个对象),因为Java存在对象引用,将一个对象赋值给另外一个对象,他是浅拷贝的(两个不同变量名,但实际内存地址一样的两个对象)的话,也就是说当我们去更新完成属性值的时候,其实是设置的同一个对象,那么这个时候就会导致更新前后无变化的情况。............原创 2022-07-19 16:12:11 · 10747 阅读 · 5 评论 -
Java工具类:CompareUtils(比较对象字段值变化)
目录前言示例引入工具文件CompareUtilsCompareCompareNode前言我们在工作中,可能会在日志中记录数据的变化情况,这样可以有助于运维人员对问题排查。或者在公共处理的数据增加一个日志页面,记录每次修改的变化。比如:小王在 2022-05-05 23:58:27 时间点修改了年龄,把 28 改为了 18), 这样也可以方便用户的数据追踪,这样公共数据一旦出了问题,我们从日志进行跟踪,那么最后是谁造成的,也就一目了然。可见,展示字段值的变化..原创 2022-05-06 13:49:41 · 13902 阅读 · 5 评论 -
Java实现在图片上添加文字(水印)
今天分享一个:通过Java代码,给图片添加文字。比如下面这个图片,我们在左下角就添加了一个文字版的水印,那么这是如何实现的呢 ?目录【1】获取原图片对象(1.1)读取本地图片(1.2)读取网络图片【2】创建画笔【3】添加文字水印(3.1)如何确定水印位置 ?【4】获取处理图片【5】源代码【1】获取原图片对象首先,第一步,肯定是要让我们的程序,拿到需要处理的图片。我们程序获取图片的方式,通常有两种,一种是通过下载到本地,从本地读取;另外一种就是通过网原创 2022-01-12 16:26:20 · 10122 阅读 · 1 评论 -
工具方法:一次性将对象中所有null字段,转为空字符串
当我们的 Java 对象在响应前端,或者在做数据导出的时候,我们并不希望将对象中为 null 的属性值直接返回给前端,不然显示或导出的就是一个 null ,这样对用户不是很友好。如果我们一个个字段的去处理,这样不但增加了人力,而且使得代码中逻辑冗余,显得不够优雅。于是下面我写了一个通用方法:将对象中的 String 类型属性的null 值转换为空字符串的方法,具体代码如下:/** * 把对象中的 String 类型的null字段,转换为空字符串 * * @param <..原创 2021-10-25 11:32:29 · 9737 阅读 · 4 评论 -
Yml转properties文件工具类YmlUtils(不用引任何插件和依赖)
【诞生背景】最近在做某配置中心的时候,配置中心采用porperties格式进行配置的(如下图)。而我们工程的项目配置文件是yml格式的(如下图)。如果人为手动的一条一条,将yml文件中的配置数据,添加到配置中心,难免会消耗大量的人力和精力,况且还容易输入错误。因此,需要一个工具或插件,将 yml 文件的格式,转换为properties文件。【Convert YAML and Properties File 插件的不足】IDEA 有一个插件叫 Convert YAML and.原创 2021-08-24 10:59:03 · 9271 阅读 · 6 评论 -
Java 查看类图工具(手写小工具,不用引任何包和插件)
我们在进行源码学习的时候,经常要查看某个类的类图,虽然 IDEA 有自带的类图显示,但那也只是付费版,社区版的并不支持,而 Eclipse 是压根儿就没有,其实功能挺简单的,于是就自己写了一个查看类图小工具给分享给大家。先放效果图:从这效果图中,我们就很清晰的看到,ArrayList 的父类是 AbstractList,父接口有 List、RandomAccess、Cloneable、Serializable。而父类AbstractList 的父类是AbstractCollection...原创 2021-08-18 17:37:15 · 1004 阅读 · 2 评论 -
@inherited 注解详解
1【问题引出】在 Springboot 项目中,通常会有一个启动类,而启动类中通常会有一个名为@SpringBootApplication 的注解(如下图所示),而此注解就是 Springboot 项目启动类的核心注解。我们打开@SpringBootApplication 注解源码,可以看到,在源码中有一个 @Inherited 的注解,那么这个注解,它的作用是什么呢?2【@inherited 源码】在了解该注解作用之前,我们不妨看看该注解的英文解释和源码定义,这样会更加有...原创 2021-08-17 09:27:50 · 21859 阅读 · 17 评论 -
一看就懂:JWT 的自述
【1】自我介绍大家好,我是JWT,但这是我的小名,我的全名叫做JSON Web Token。其实,从我的名字中大家可以看出,我通常被开发大大们拿来做 Web请求的 Token 使用。【2】我的出生背景在没有我出生之前,开发大大们在做 Web 项目的时候,通常是前后端一起写,然后将用户的数据(比如:userId)等信息存放在 session 里,这样用户每次发送请求过来,后端直接可以从 session 里取出 userId,从而知道是哪个用户发的请求了,从而进行该用户的相关操作。但..原创 2020-10-23 10:43:40 · 1407 阅读 · 2 评论 -
IDEA 如何快速创建 Springboot 项目
(1)打开IDEA,左上角选择:File -> New -> Project(2)首选选择弹窗左侧的Spring Initializr,然后选好择你的 JDK,点击 Next。(3)填写并选择:1,2 处:是 Maven 工程的两个属性唯一标识,随意填。3处:类型选择Maven 项目4处:语言选择 Java5处:打包方式选择 Jar6处:Java版本选择 81-6处确定好后,选择 Next。(4)左侧选择 Web 后,勾选 Spring We...原创 2020-09-18 17:09:23 · 27407 阅读 · 4 评论 -
Java 8 :List 转 Map 之 Collectors.toMap()
【前言】在很多编码时候,我们需要将我们的 List 对象集合,转成为简单的 Map 集合,从而方便很多后续操作。比如:我们现在有一个用户类 User 如下:public class User { // 用户ID private long id; // 用户名称 private String name; // 相关constrator,getter,setter,toString()方法已省略}那么,我们可以简单的初始化得到一个 List<User> 的数原创 2020-09-17 18:43:59 · 55192 阅读 · 15 评论 -
Java 8:那些Java8的常见写法
现在Java 13 都已经出来了,你是否连 Java 8 的一些常用写法还没搞明白?是否还在看着别人的 sao 代码一脸蒙蔽?如果是的话,别慌,看完这篇文章就差不多了!(1)Lamda 写法其语法形式为 () -> {},其中 () 用来描述参数列表,-> 为 lambda运算符 ,读作(goes to),{} 为方法体。(1.1)循环遍历:打印每个用户的具体信息Java 8 以前的写法:for (User user : users) { System.out.pri原创 2020-09-07 16:49:52 · 5237 阅读 · 1 评论 -
一看就懂:Java 之 Lamda 写法
文章目录概述优势示例释义拓展示例示例1示例2语句块变量作用域方法变量类变量结尾语概述现在,很多同学已经接受并熟悉了 Java 的 Lamda 写法,但可能有些同学还是一头雾水。这里,我抛砖引玉,来对 Java Lamda 写法做一个简单的介绍:首先 Lamda 写法的固定格式为:参数 -> 语句块另外 Lamda 语法是出现在Java8及其以后的,Java8以前是不涉及的,所以JDK1.7及其以前版本这种写法编译是会被报错的。优势那么Lamda 写法有哪些优势呢?首先,原创 2020-09-04 11:32:04 · 1798 阅读 · 1 评论 -
Java常用技术:Httpclient 实现网络请求 + Jsoup 解析网页(案例实战)
【前言】你是否也曾羡慕过有些 phython 大神有着如下的神操作:他们就轻轻的执行一串代码,就能循环的抓取很多自己想要的数据。其实不用太羡慕他们,因为不光 phython 能实现,我们用 Java 同样也能够轻松实现。闲话不多说,下面我们直接开始实战:【1】创建项目(1.1)我们用 IDEA(Eclipse同理) 创建一个全新的maven工程,我这里取名工程名 zyqok,各位随意。(1.2)在 pom.xml 里面加上<dependencies>.原创 2020-08-07 17:57:48 · 3006 阅读 · 18 评论 -
Java 随机工具类
import java.util.UUID;/** * 获取随机对象工具类 */public class RamdomTool { /** 随机获取UUID(常用于唯一识别,如ID生成) */ public static String getUUID() { return UUID.randomUUID().toString().replace("-", ""); } /** 获取x内的随机一位数(包含x) */ public static int getInt(int x).原创 2020-05-09 14:47:41 · 807 阅读 · 0 评论 -
百度敏感词安全检测
官方平台:http://ai.baidu.com/tech/textcensoring(1)登录百度账号,加入百度智能云。(2)进入后,选择对应的安全检测服务,点击【开通】。(3)勾选对应的审核服务,如果没有实名认证,需要进行实名认证。(4)实名认证后,再次回到页面刷新,点击【确认开通】(5)进入该页面后,直接点击【去支付】(6)开通成功界面(7...原创 2020-05-06 17:45:12 · 23737 阅读 · 0 评论 -
Linux 安装JDK1.8
【1】进入Lunix控制台,输入下面命令,回车,静待安装完成。yum install -y java-1.8.0-openjdk-devel.x86_64【2】查看版本待安装完成后,输入 java -version 即可查看 jdk 具体版本。【3】配置环境变量(3.1)使用命令 vi /etc/profile 打开系统文件(3.2)将下面的环境变量追加到 ...原创 2019-11-27 22:01:44 · 1202 阅读 · 0 评论 -
JDK8 新特性:判空遍历写法
在工作中,经常会处理各种变量,但往往会在使用变量的时候,要进行空判断,不然要报错。Java 8 提供了判空写法:Optional.ofNullable(变量).orElse(默认值);例1:求字符串 s 的长度( 为空的时候返回0 )。常规写法:String s = getKey();if (s == null) { return 0; } else { ret...原创 2019-10-25 11:29:37 · 17572 阅读 · 18 评论 -
小白学Java系列教程
课时 课程名称 备注 第 1 课 Java 介绍 简单的介绍下Java 第 2 课 JDK的 安装与配置 Java 开发必需的环境 第 3 课 Eclipse 的下载与使用 Java 项目开发工具 第 4 课 第一个程序:Hello wrold 入门的第一个例子 第 5 课 注释 对代码起解释说明的作用 ...原创 2019-07-29 10:02:31 · 2143 阅读 · 3 评论 -
java.lang.UnsupportedOperationException
今天在运行程序的时候发现如下错误:java.lang.UnsupportedOperationException下面是原异常代码截图(红色方框部分): 通过查询资料得知:原来 map.keySet() 返回的set集合中,不支持新增(set.add() 或者 set.addAll())操作,但删除、清理操作是可以的。 所以上面的错误代码的解释为:虽然 orderList...原创 2018-03-07 14:47:13 · 901 阅读 · 0 评论 -
Eclipse打开的文件和控制台一起?如何恢复默认打开位置?
不知道前几天动了Eclipse哪里设置,使得打开的文件都在下方和Eclipse的控制台在一个版面,如下图所示,使用起来很少不爽!后来网上找方法,也是一头雾水,后来自己解决了;解决办法:如下图所示:选中文件 --> open with --> defauly editor再次打开当前文件或者其他文件,就能看见已经默认在上方了;...原创 2018-01-10 09:46:19 · 7652 阅读 · 1 评论 -
Jsp格式化显示Date类型数据
参考链接:http://blog.csdn.net/twitter_94/article/details/47771091第一步:导入相关的标签库<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>第二步:显示你需要的数据<fmt:formatDate value="${each....原创 2017-06-14 17:35:07 · 1920 阅读 · 0 评论 -
Java反射获取对象属性并设值
Java对象:package com.sjdf.erp.common.utils;import java.math.BigDecimal;public class TypeTest { private Boolean bigBoolean; private Long bigLong; private Double bigDouble; private...原创 2017-06-14 16:42:52 · 3696 阅读 · 0 评论 -
java 保留小数后N位小数
如代码所示:保留几位小数就在样本后面写几位0,保留时是根据四舍五入的保留的 double a = 0; double b = 1.2; double c = 1.23; double d = 1.234; double e = 1.235; double f = 1.23567; De原创 2017-05-06 10:58:45 · 528 阅读 · 0 评论 -
阿里巴巴全球速卖通(AliExpress)参数签名算法
签名规则如图所示:规则参考链接:http://gw.api.alibaba.com/dev/doc/intl/sys_signature.htm?ns=aliexpress.open下面是自己代码的实现、以及测试:package com.aliexpress.until;import java.util.ArrayList;import java.util.Colle...原创 2017-04-24 13:52:33 · 1909 阅读 · 0 评论 -
Java Excel导入和导出(支持xls导入,xlsx导入,图片导出,百万数据量导出)
免费源码下载(提取码:qdhy)工程结构目录所需JAR包<dependencies> <!-- JUNIT 测试 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId&...原创 2017-03-20 19:12:24 · 4527 阅读 · 9 评论 -
jdk1.7新特性: 自动关闭IO流
jdk1.7版本起,可以自动关闭IO流如:获取一个文件内容,以前通常是这样写: /** * 获取文件内容 * @param file 文件 * @return 内容 */ public String getText(File file){ FileInputStream fis = null; try ...原创 2018-12-20 10:08:55 · 7722 阅读 · 0 评论 -
Java 读取文件、写入文件
提示:下面是基于jdk1.7的写法(自动关闭IO流)读取文件 /** * 获取文件内容 * @param file 文件 * @return 内容 */ public static String getText(File file){ try(FileInputStream fis = new FileInputStr...原创 2018-12-20 10:31:55 · 1950 阅读 · 0 评论 -
Java按对象属性排序
升序:从小到大排序Collections.sort(userList, new Comparator<User>() { @Override public int compare(User o1, User o2) { return o1.getName().compareTo(o2.getName()); }});降序:从大到小...原创 2019-04-24 11:11:10 · 6779 阅读 · 0 评论 -
Java 通过反射获取注解值
(1)定义一个注解package com.zyq.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target...原创 2019-04-22 10:43:02 · 9526 阅读 · 1 评论 -
Java:Clob与String互转
import java.sql.Clob;import javax.sql.rowset.serial.SerialClob; /** * Clob 转 String */ public static String getString(Clob c) { try { return c.getSubStrin...原创 2019-04-26 09:15:52 · 8820 阅读 · 1 评论 -
BigDecimal 四则运算
其实所有实现都是一句代码,这里做个工具类只是方便查阅。四则运算工具类: import java.math.BigDecimal;public class BigDecimalUntils { // 默认保留3位数 public static final int SCALE = 3; /** * 加法 * @return a + b ...原创 2019-02-22 10:49:05 · 1910 阅读 · 0 评论 -
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
今早启动项目发现报了如下错误:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not recei...原创 2019-01-30 09:35:25 · 2117 阅读 · 0 评论 -
静态代理
参考出处:参考原文出处:http://www.cnblogs.com/V1haoge/p/5860749.html 什么是代理?如图:A要调C中的方法,有两条途径。可以直接调用(红色渠道),也可以通过先调B,然后B调C(蓝色渠道);在这里B就是A的代理。 代理分类:代理可分为静态代理和动态代理。静态代理:就是在加载的时候相关代理类就已经创建好了;动态...原创 2019-01-04 15:42:08 · 316 阅读 · 0 评论 -
百度翻译API对接
百度翻译开发平台:http://api.fanyi.baidu.com/api/trans/product/index打开如上链接:下载SDK导入SDK新建一个工程(zyq-translate),并新建包(com.zyq.translate)解压SDK,得到如下两个文件夹(1)选择 java\src下的 Main.java文件,拷贝到包下;(2)选择 java\...原创 2018-12-19 10:28:44 · 11797 阅读 · 5 评论 -
Httpclient 4.3.6 技术详解
问:什么是Httpclient技术?答:简单明了的说:用Java代码模拟实现Http请求。1. 获取 Jar 包:(1)非maven工程点这里获取:http://pan.baidu.com/s/1eS22HKu(2)maven工程的dependency:<!-- HttpClinet 核心包 --><dependency> <group...原创 2017-03-27 14:47:51 · 1446 阅读 · 0 评论