Java
文章平均质量分 55
Java笔记
Maggieq8324
万事从未风过耳,一生只是梦游身
展开
-
Linux - JDK的安装
目录前言环境安装步骤前言记录下Linux下jdk的安装环境Centos7.6 + jdk1.8安装步骤将官网下载的jdk上传至服务器解压压缩包tar -xzvf jdk-8u291-linux-x64.tar.gz移动文件到合适目录(这里将其移到上一级local目录)mv jdk1.8.0_291 ../配置环境变量vim /etc/profile在末尾添加jdk环境变量export JAVA_HOME=/usr/local/jdk/jdk1.原创 2021-09-16 10:32:15 · 838 阅读 · 0 评论 -
Java - 关于switch case 和 break
目录public static void main(String[] args) { Integer a = 1; switch (a) { case 0: System.out.println(0); case 1: System.out.println(1); case 2: System.out.pr原创 2021-09-06 22:43:45 · 1846 阅读 · 0 评论 -
SpringBoot - 读取JSON文件
目录前言具体实现转换例子前言记录下SpringBoot读取JSON文件的方式具体实现JsonUtil.javaimport java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.io.Reader;public class JsonUtil { /** * 读取JSON文件转换为字符串 * @param filePath *原创 2021-09-04 17:28:20 · 5156 阅读 · 0 评论 -
Java - @PostConstruct注解 - 依赖注入完成后初始化
目录前言@PostConstruct是Java EE5中引入的,其用于需要在依赖注入完成后执行任何初始化的方法,且只会被执行一次,该注解在Java 11中已删除,继续使用需要添加依赖项:javax.annotationjavax.annotation-api1.3.2原创 2021-08-26 11:35:51 · 3261 阅读 · 0 评论 -
Java - Map 根据 key 移除键值对
目录前言前言// 移除secretValMap<String, Object> paramsMap = JSONObject.parseObject(JSONObject.toJSONString(evt));if (paramsMap.containsKey("111")) { paramsMap.remove("");}// 使用迭代器删除Iterator iter = paramsMap.keySet().iterator();while(iter.hasNex原创 2021-08-24 16:48:29 · 4884 阅读 · 0 评论 -
Java - reduce函数的应用
目录前言记录下reduce函数的简单用法,其用作从一个流中生成一个值。 具体应用public static void main(String[] args) { List arrayList = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9); System.out.println(arrayList); // [1, 2, 3, 4, 5, 6, 7, 8, 9] /*** 求和 */原创 2021-08-23 19:28:00 · 4401 阅读 · 0 评论 -
Java - BigDecimal 的使用
目录前言记录BigDecimal的一些应用,BigDecimal对超过16位有效位的数提供了精确的运算支持。具体应用 构造器 BigDecimal num1 = new BigDecimal("5"); // String 推荐使用 BigDecimal num2 = new BigDecimal(5); // int BigDecimal num3 = new BigDecimal(2147483648L); // Long BigDecimal num4 = ne原创 2021-08-23 16:26:14 · 1746 阅读 · 0 评论 -
Java - Enum 枚举类型
目录前言应用定义枚举类的switch枚举值向枚举类型转换前言枚举是 Java1.5 引入的新特性,通过关键字 enum 来定义枚举类。应用定义public enum WeekEnum { Monday(1, "周一"), Tuesday(2, "周二"), Wednesday(3, "周三"), Thursday(4, "周四"), Friday(5, "周五"), Saturday(6, "周六"), weekend(7, "周天");原创 2021-08-21 16:22:27 · 1692 阅读 · 0 评论 -
Java - Stream的应用
目录前言Stream是Java 8中新增的一个抽象概念,可以对集合进行复杂的查找、过滤和映射数据等操作。 简单应用 生成方式Java 8 中, 集合接口有两个方法来生成流 - stream() − 为集合创建串行流。- parallelStream() − 为集合创建并行流。 应用示例 - map 方法用于映射每个元素到对应的结果@Testpublic void testStream() { List numbers = Arrays.asList(1,原创 2021-08-18 15:11:18 · 1482 阅读 · 0 评论 -
JAVA - Optional的使用
目录前言Optional是Java 8 中引入的一个特性,其主要是为了解决臭名昭著的空指针异常(NullPointerException),其本质上是一个包含有可选值的包装类,意味着Optional既可以含有对象也可以为空。使用Optional的好处 - 优化代码 - 给判空操作提供一种标准的写法,强制要考虑空值的情况 具体应用 类方法原创 2021-08-18 14:11:35 · 2430 阅读 · 0 评论 -
Jackson 泛型序列化
目录代码实现代码实现JSON序列化工具类import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.core.type.TypeReference;import com.fasterxml.jackson.databind.ObjectMapper;import org.apache.commons.lang3.StringUtils;import org.springfram原创 2021-08-17 02:34:02 · 1908 阅读 · 0 评论 -
Jackson 实体转Json、Json转实体
import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.ObjectMapper;import java.util.Map;public class objetMapper { public static class Test { public String name; public String sex;原创 2021-08-08 15:55:09 · 1616 阅读 · 0 评论 -
Java 图片URL转Base64编码
前言实现方式:通过图片URL获取二进制流,再对字节数组进行Base64编码转换具体实现实现类import sun.misc.BASE64Encoder;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.regex.Matcher;import java.util.r原创 2021-08-02 15:52:38 · 9805 阅读 · 0 评论 -
字典序排序
前言字典序排序是基于字母顺序排列的单词按字母顺序排列的方法JavaList<String> list = new ArrayList<>();list.add("a");list.add("d");list.add("c");list.add("b");Collections.sort(list);System.out.println(list);JSlet dic = new Array("a", "c", "d", "b");console.log(原创 2021-08-02 15:20:21 · 2344 阅读 · 0 评论 -
RSA分段加密 - Java
前言RSA的 key 长度为 1024 用公钥加密比较长的字符串时会异常,这里介绍 java 如何对长文本进行分段加密,附上其它链接RSA加密 - JavaRSA加密 - Vue具体实现实现类import com.alibaba.fastjson.JSONObject;import org.apache.commons.lang3.ArrayUtils;import javax.crypto.Cipher;import java.security.KeyFactory;import原创 2021-07-27 14:26:34 · 2517 阅读 · 2 评论 -
RSA加密 - Java
前言简介RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。原理根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥。公钥是可发布的供任何人使用,私钥则为自己所有,供解密之用。运算速度由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。RSA的速度比原创 2021-07-04 15:57:13 · 1496 阅读 · 0 评论 -
Java 截取最后的类名
ClassUtils.javapublic class ClassUtils { /** * 截取最后的类名 * @param clazzName * @return */ public static String getClassName(String clazzName) { return clazzName.substring(clazzName.lastIndexOf('.') + 1, clazzName.indexOf('$')); .原创 2020-08-26 19:52:16 · 1218 阅读 · 0 评论 -
Java List过滤数据
ListUtilsHook.javapublic interface ListUtilsHook<T> { public boolean find(T t);}ListUtils.javapublic class ListUtils { /** * List过滤出符合条件的元素 * @param <T> * @param list * @param hook * @return */ public static <T&g.原创 2020-08-26 19:41:11 · 4690 阅读 · 0 评论 -
Vue AES+MD5加密 后台解密
前端VUEvue项目中安装crypto-jsnpm install crypto-js --save-devCryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。目前已支持的算法包括:MD5SHA-1SHA-256AES新建aes.js\src\utils\目录下新建aes.js文件import Vue from 'vue'i...原创 2019-12-17 21:30:28 · 4358 阅读 · 2 评论 -
JAVA获取客户端IP
import javax.servlet.http.HttpServletRequest;import com.tbtech.common.utils.StringUtils;public final class RequestHelper { /* * 获取访问者IP * 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。 * 本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-F原创 2020-06-07 21:30:47 · 1379 阅读 · 0 评论 -
Java获取月份第一天和最后一天
import java.text.SimpleDateFormat;import java.util.Calendar;public class test { private static String startDay = "2020-02-20"; public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); calendar.set(Integer.parseInt(st原创 2020-06-07 20:54:41 · 1917 阅读 · 0 评论 -
cxf将wsdl生成java代码
Apache CXF是一个开源的WebService框架,CXF可以用来构建和开发WebService环境win10下载官网下载:http://cxf.apache.org/download.html解压后如下所示:配置环境变量新建变量CXF_HOMEpath变量下添加:%CXF_HOME%\bin验证cmd中运行wsdl2java -v,忽略提示,显示版本号则证...原创 2020-04-13 21:57:15 · 1584 阅读 · 0 评论 -
JAVA 注解
@Deprecated若某类或某方法加上该注解之后,表示此方法或类不再建议使用,调用时也会出现删除线,但并不代表不能用,只是不推荐使用@RequestParam用来处理Content-Type为 application/x-www-form-urlencoded编码的内容,(Http协议中,如果不指定Content-Type,则默认传递的参数就是application/x-www-form...原创 2020-02-15 22:26:38 · 858 阅读 · 0 评论 -
Java 获取两个日期之间的所有日期
import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List;/...原创 2020-02-15 22:09:16 · 2045 阅读 · 0 评论 -
@Controller和@RestController的区别
@RestController相当于@ResponseBody + @Controller一起使用使用@RestController注解,Controller中的方法无法返回jsp页面或者html页面,返回的内容就是return里的内容使用@Controller注解,视图解析器可以解析return的jsp页面或者html页面,并且跳转到相应页面,若返回json等内容到页面,则需要加@R...原创 2019-12-17 20:38:33 · 782 阅读 · 0 评论 -
mybatis中 == 和 != 的用法
!= 的用法<if test="xxx != null and xxx !=''">== 的用法(相较于!=,仅需将双引号和单引号的位置换一下即可)<if test='xxx == "1"'>原创 2019-11-03 13:46:10 · 14992 阅读 · 4 评论 -
JAVA集成JPush
本篇集成为web项目手动集成JPush一、获取AppKey、Master Secrethttps://docs.jiguang.cn成为极光用户创建一个应用拿到(AppKey、Master Secret),官网上有很详细的教程二、官网下载JAVA SDKhttps://docs.jiguang.cn//jpush/resources/三、集成下载后的SDK包中有相关jar包...原创 2019-08-09 07:49:53 · 1234 阅读 · 0 评论 -
Tomcat配置使用HTTPS加密协议
使用JDK自带的keytool工具生成一个证书(keystore文件),其中包含了密钥。a.在命令行输入以下命令:keytool -genkey -alias tbb -keyalg RSA -keystore d:\tbb.keystore(可自选地址)b.根据系统提示输入“keystore”密码和其他信息,注意:您的名字与姓氏是什么?此项要输入本机IP地址c.输入私钥密码,确认私钥密...原创 2019-08-09 07:51:39 · 1065 阅读 · 0 评论 -
Spring Boot跨域解决方案
什么是跨域为保证浏览器的安全,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源,这称之为同源策略,如果一个请求地址里的协议、域名、端口号都相同,就属于同源。依据浏览器同源策略,非同源脚本不可操作其他源下的对象,想要操作其他源下的对象就需要跨域。CORSCORS是为解决浏览器跨域问题由W3C提出的跨源资源共享方案,CORS可以在不破坏即有规则的情况下,通过后端服务器实现CORS接...原创 2019-08-25 11:23:26 · 979 阅读 · 0 评论 -
Mybatis 分页查询
该篇博客记录采用pagehelper分页插件实现Mybatis分页功能一、依赖pom.xml<!-- pagehelper --><dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-...原创 2019-08-25 17:58:45 · 1379 阅读 · 3 评论 -
mybatis-generator:generate 生成代码配置踩坑详解
mybatis-generator:generate 生成代码配置踩坑不少,在此留下笔记以便后续填坑一、mysql返回时间问题错误信息:[ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on project ...原创 2019-08-21 23:58:21 · 3825 阅读 · 1 评论 -
Spring boot 集成 Druid 数据源
Druid是阿里开源的一个JDBC应用组件,其中包括三部分:DruidDriver:代理Driver,能够提供基于Filter-Chain模式的插件体系。DruidDataSource:高效可管理的数据库连接池。SQLParser:实用SQL语法分析官方文档:https://github.com/alibaba/druid/wiki依赖pom.xmlDruid Spring ...原创 2019-08-22 13:37:48 · 1010 阅读 · 0 评论 -
mybatis无效比较:invalid comparison:java.util.data and java.lang.string
原因: 时间与空字符串比较是无效的,如果拿传入的时间类型参数与空字符串''进行对比则会引发异常invalid comparison:java.util.data and java.lang.string解决方法: 把xxx.xml中的<if test="XXX !=null and XXX!='' ">XXX!='' 去掉,只保留非空判断...原创 2019-09-19 12:47:36 · 922 阅读 · 0 评论 -
JAVA CST时间 转换成Date
Mybatis中处理Oracle时间类型是个比较麻烦的问题,特别是需要用到时间做比较的,可参考以下代码与思路:格式化CST时间SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);CST时间转换成字符串,实体中为date类型的toString()转换即可Stri...原创 2019-09-19 13:12:39 · 6192 阅读 · 0 评论 -
JAVA MAP转实体
public static <T> T map2Object(Map<String, Object> map, Class<T> clazz) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if (map == nul...原创 2019-08-08 21:17:03 · 1550 阅读 · 0 评论