![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java技巧
java技巧
_Peko_
这个作者很懒,什么都没留下…
展开
-
【重构】 02-表驱动法
【代码】【重构】 02-表驱动法。原创 2023-10-16 11:08:59 · 170 阅读 · 0 评论 -
一眼看清@JSONField注解使用与效果
JSONField是fastjson的一个注解,在fastjson解析一个类为Json对象时,作用到类的每一个属性(field)上。用这三个类各自生成一个对象,赋值完全相同,然后用fastjson输出Json格式的字符串。输出结果如下,已经将需要重点关注的地方标注了出来。对比之下,一目了然。通过用@JSONField注解一个类的属性,我们可以达到以下目标。我们直接用demo代码来简单清晰的看一下,加了这些注解的效果吧!我们来定义三个类,这三个类字段一毛一样,只是注解不同。转载 2023-10-07 15:08:35 · 3057 阅读 · 0 评论 -
BeanUtils.copyProperties 无法转换数据类型不同的数据
背景@Datapublic class A{ private BigDecimal a;}@Datapublic class B{ private String b;}A a = new A();B b = new B();a.setA(new BigDecimal(""10.01));BeanUtils.copyProperties(b,a);System.out.println(a.getB);运行:null因类型不一致,所以数据复制失败解决使用fastJs原创 2021-12-01 17:09:05 · 6906 阅读 · 0 评论 -
【java】 StringUtils的常用方法
StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。除了构造器,StringUtils 中一共有130多个方法,并且都是 static 的,所以我们可以这样调用 StringUtils.xxx()下转载 2021-11-16 15:20:35 · 491 阅读 · 0 评论 -
【java】 enum 简单用法
public enum Color { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); // 成员变量 private String name; private int index; // 构造方法 private Color(String name, int index) { this.name = name; this转载 2021-11-09 15:22:44 · 75 阅读 · 0 评论 -
【Jsoup】 基本使用
package com.peko.demo;import com.peko.demo.utils.HttpUtils;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;import org.junit.jupiter.api.Test;import java.io.File;import java.io原创 2021-09-18 10:37:50 · 175 阅读 · 0 评论 -
使用java将base64码与图片互转!
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import Decoder.BASE64Decoder;import Decoder.BASE64Encoder;public转载 2021-09-15 10:46:34 · 1955 阅读 · 1 评论 -
【IDEA】 配置opencv
一、去官网下载对应系统的 opencv二、下载完毕之后,直接双击打开安装三、任意打开一个IDEA项目,然后添加 jar 包然后一直点击OK即可四、写一个测试类public class MyController { static { //必须要写 System.loadLibrary(Core.NATIVE_LIBRARY_NAME); System.out.println("opencv\t"+Core.VERSION);原创 2021-09-01 09:37:05 · 898 阅读 · 0 评论 -
【apache.poi】Caused by: org.xml.sax.SAXParseException; systemId: file://
背景在某一次使用 org.apache.poi 解析excel文件时,发现突然报以下的错误org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62) at org.apache.poi.POIXMLDocumentPart.read(POI原创 2021-08-29 15:47:42 · 1443 阅读 · 1 评论 -
【高并发下引发的问题】
1、数据的不一致性解决:加锁2、大量的数据读取请求解决:缓存3、操作系统单个进程线程创建上限限制,抛出异常解决:分布式、负载均衡4、秒杀活动,多个请求,单个资源解决:消息队列...原创 2021-08-19 11:19:43 · 166 阅读 · 0 评论 -
【天干地支纪年法】
package practiceDemo1;public class Test02 { public static void main(String[] args) { String tianGan = "甲乙丙丁戊己庚辛壬癸"; String diZhi = "子丑寅卯辰巳午未申酉戌亥"; int tSize = tianGan.length(); int dSize = diZhi.length(); for(int i=0,j=0;i<tSize&a.原创 2020-07-01 14:31:47 · 526 阅读 · 0 评论 -
【java 标准时间格式】
在java中使用时间格式时,要使用标注的时间格式:正确的格式化ISO-8601模板为: yyyy-MM-dd HH:mm:ss正确的UTC的时间模板为 yyyy-MM-dd'T'HH:mm:ss.SSSXXX原创 2021-06-10 16:39:28 · 877 阅读 · 0 评论 -
【RestFul】 简介
转载 2021-06-07 09:47:40 · 43 阅读 · 0 评论 -
【重构】 01-对象浅拷贝
1.0 @PostMapping public User addUser(UserInputDTO userInputDTO){ User user = new User(); user.setUsername(userInputDTO.getUsername()); user.setAge(userInputDTO.getAge()); return userService.addUser(user); }原创 2020-10-20 17:04:38 · 94 阅读 · 1 评论 -
【前端的数据传回后端处理】
前端 let list = ["A","B","C"]; let data = {}; let httpUrl = ''; data["selections"] = list.join(','); axios.post(httpUrl,data).then((response)=>{ console.log(response); }).catch((err)=>{ console.log(err);原创 2021-04-21 10:40:26 · 576 阅读 · 0 评论 -
byte[].toString()
背景在做数据加解密时,设计到字节数组的操作,有一步是返回字节数组的字符串形式,于是我这么写Base64Utils.encode(result).toString();得出的结果确是:[B@xxxxxx ,一个地址的值,而不是想要的字符串形式原因对于对象来说,如果没有重写它的toString方法,则默认是返回对象的地址的,而不是字符串形式解决使用 new String 重新构造字符串new String(Base64Utils.encode(result),"U..原创 2021-03-31 10:44:14 · 1149 阅读 · 0 评论 -
解决端口占用问题 Port xxxx was already in use
简介 端口占用问题是几乎每个开发人员都会遇到的问题。解决端口问题,最直接的方法当然是重启电脑,但这对于开发人员来说还不够迅捷,重启电脑会花费比较多的时间。当然如果你已经对占用端口的进程有所了解,可以通过任务管理器结束该进程从而释放端口号。以下是我参考的一般解决该问题最为快速的途径之一,希望能对大家有所帮助。步骤 1.使用windows+R组合键,弹出命令行窗口。 2.查找被占用端口对应的PID(进程编号)。# 列出所有端口占用情况netstat -...转载 2021-03-15 15:00:22 · 537 阅读 · 0 评论 -
【Httpclient】 简单使用
public String post(User user){ String url = ""; String date = ""; String result = ""; CloseableHttpClient httpClient = HttpClientBuilder.create().build(); // 创建Post请求 HttpPost httpPost = new HttpPost(url..原创 2021-02-04 15:38:49 · 355 阅读 · 1 评论 -
java.sql.SQLException: 数字溢出
背景从数据库中查询到的Integer型数据,赋予到java的Integer的变量上,发生数据溢出解决把Integer的变量类型改为Long原创 2021-01-15 16:18:55 · 441 阅读 · 0 评论 -
【httpClient】 设置超时
CloseableHttpClient httpclient = HttpClients.createDefault();HttpGet httpGet = new HttpGet("http://www.baidu.com");RequestConfig requestConfig = RequestConfig.custom() .setConnectTimeout(5000).setConnectionRequestTimeout(1000) .setSocket.转载 2021-01-13 17:41:56 · 654 阅读 · 0 评论 -
【Java、File 文件相关操作】
平常写java时,经常会遇到文件相关的操作。文件读写,基本可以概括为从具体文件(File),到流(Stream),最后到字节(byte[ ]),或者反过来。也就是说文件操作一切都归结为操作字节:读 = 将文件通过流读出字节 写 = 将字节通过流写入到文件中File相关概念文件流相关概念File 与 byte[ ] 的转换1、把 File 转换为 byte[ ] /** * * @param file 目标文件 * @retu...原创 2020-11-23 16:14:19 · 147 阅读 · 0 评论 -
【Clean Code】 02
一、多用抽象形态描述数据二、过程式代码与面向对象代码过程式代码例子:public class Square{ public Point topLeft; public double side;}public class Rectangle{ public Point topLeft; public double height; public double width;}public class Circle{ public Point center; publi.原创 2020-11-23 15:26:33 · 93 阅读 · 0 评论 -
【java文件下载/读取 的坑】
背景写了一个根据文件名下载文件的的方法(主要用来下载文件)代码:@ResponseBody @RequestMapping(value = "/downloadPhoto/{fileN}") public String downloadPhoto(@PathVariable String fileN,HttpServletRequest request,HttpServletResponse response) throws IOException { Stri原创 2020-11-17 15:51:40 · 411 阅读 · 0 评论 -
【Clean Code】 01
一、命名1、与集合无关的变量不用集合来命名错误:// 一组账户String[] accountList;正确:// 一组账户String[] accountGroup;// orString[] accounts;// orList<account> accountList;2、不要使用魔法值错误:if(sum > 10)正确:private static final int MAX_SUM = 10;if(sum.原创 2020-11-16 22:42:39 · 56 阅读 · 0 评论 -
【byte】 相关方法
判断byte[]是否为空import org.apache.commons.lang3.ArrayUtils;byte[] bytes = null;if(ArrayUtils.isEmpty(bytes)){ System.out.println("为空"); }else { System.out.println("不为空"); }原创 2020-11-16 14:50:40 · 389 阅读 · 0 评论 -
【java打印目录的层次结构】
package com;import java.io.File;import java.io.IOException;public class Test { public static void main(String[] args) throws IOException { showDir(-1,new File("C:/IDEA_Project/Shiro")); //这里写上目标项目 } public static void showDir(int.转载 2020-11-05 11:35:08 · 173 阅读 · 0 评论 -
【动态代理】
首先,引用知乎上用户KevinShn的回答什么是动态代理?(Dyanmic Proxy)即在程序运行时动态地生成一个类(A_proxy类或者B_proxy类...),这个类将替代另一个类(A类或者B类)完成任务(原本由A类或者B类完成的任务+ 额外的任务)。动态代理的应用?Spring 框架里的AOP 、 RPC...原创 2020-10-09 16:44:43 · 49 阅读 · 0 评论 -
【判断是否为手机号】
/** * 判断是否是手机号 * * @param mobile * @return */ public static boolean isMobile(String mobile) { String regex = "^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$"; Pattern p = .转载 2020-09-10 13:59:32 · 350 阅读 · 0 评论 -
【UUID】
UUIDUUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。引用百度百科:https://baike.baidu.com/item/UUID/5921266?fr=aladd原创 2020-09-07 10:45:06 · 70 阅读 · 0 评论 -
URLConnection与HttpURLConnection的区别
1、HttpURLConnection继承URLConnection2、HttpURLConnection较URLConnection多了获取状态码的方法 getResponseCode(),使用的时候要转换HttpURLConnection httpURLConnection = (HttpURLConnection)connection;然后在刷新写入流后才能使用 getResponseCode()3、URLConnection 可以走邮件、文件传输协议,而HttpUR...原创 2020-09-03 16:20:20 · 1086 阅读 · 0 评论 -
URL 和 URLConnection
java.net.URL类将 URL 地址进行了封装,并提供了解析 URL 地址的基本方法,比如获取 URL 的主机名和端口号。java.net.URLConnection则代表了应用程序和 URL 之间的通信链接,可用于读取和写入此 URL 引用的资源。URLConnection 看起来只是比 URL 多了一个 Connection,它们之间的关系也仅限于此吗?01、什么是 URL为了搞清楚什么是 URL,需要引入另外两个概念 URI 和 URN。什么鬼,URL 都没搞清楚,又来两个搞..转载 2020-09-03 16:09:07 · 302 阅读 · 0 评论 -
【sql修改字段为非空】 Oracle数据库
背景数据库oracle,当前需要给表里的某个字段修改为非空,且添加默认值问题1:表里的部分数据的该字段为null,无法进行字段更改为非空解决1:把null的都填上数据,再进行字段更改问题2:没有可视化数据界面操作数据库,不知道字段是否为非空,或是否有默认值解决2:使用下面的命令查询表的结构SELECT * FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = '表名' and owner='用户名'查询出来的列名 NULLABLE 为可空..原创 2020-09-02 14:39:50 · 4367 阅读 · 0 评论 -
【http 请求返回状态码 500 】 Spring Boot 模拟http请求
背景最近弄的项目中要求给另外一个服务器传送数据,预定是用http的方式,在开始动手之前我打算用Spring Boot模拟下服务器之间的请求流程: 服务器A发起POST请求将Json格式的数据发送到服务器B,服务器B要回传"success",当服务器A接收到"success"后表示数据发送成功@Controllerpublic class MyController { /* ** 服务器A */ @ResponseBody @RequestMap.原创 2020-08-28 11:52:40 · 8178 阅读 · 0 评论 -
【Optional 类】 java 8 特性
背景在访问对象,或者属性的调用时,可能会导致空指针异常NullPointerException ,所以为了防止突发异常的出现,我们就需要在操作之前加上 if 的条件判断if(value != null)这样的代码显得不够清新解决:用 java 8的特性Optional来预防NullPointerException问题。Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。Optiona..原创 2020-08-26 17:07:47 · 81 阅读 · 0 评论 -
【String.format() 用法】 以及FastJson使用
给Json格式的字符串增加字段package practice.demo1;public class MyPractice11 { public static void main(String[] args) { String msg = "{\"var1\":\"123\"}"; System.out.println(msg); String msgTemp = msg....原创 2020-04-27 17:00:35 · 373 阅读 · 0 评论 -
【sql修改字段类型大小】
之前在百度上面查询到修改字段的语句:alert table 表名 alter column 列名 类型【大小】null or not null;但是执行完这句话后发现报错后来修改一下语句alter table 表名 modify ( 列名 类型【大小】);ok,编译通过。注意:1.()内不能还有column关键字2.()内不能含有null or not null关键字使用第二种修改方式可以顺利执行成功。...转载 2020-08-21 17:52:52 · 2097 阅读 · 0 评论 -
【发起http请求阻塞问题】
背景给指定地址发送http请求,如果该地址是无法访问的,那么http会在一段时间内都在请求该地址,造成程序的堵塞解决给http请求设置响应时间,如果在该响应时间段内还没请求成功就结束请求 url = "www.xxxx.com" URL uri = new URL(url); URLConnection request = uri.openConnection(); request.setConnectTimeout(2000); request.s.原创 2020-08-21 14:07:26 · 2991 阅读 · 0 评论 -
【日期格式转换】 获取当前日期
背景在现存数据库中取出一个日期(字符串形式 YYYYMMDD),要求转换为字符串形式 YYYY年MM月DD日 String dateString = "20200820"; try { Date date = new SimpleDateFormat("yyyyMMdd").parse(dateString); String str = new SimpleDateFormat("yyyy年MM月dd日").fo.原创 2020-08-20 16:19:33 · 158 阅读 · 0 评论