JAVA
文章平均质量分 63
da297368860
这个作者很懒,什么都没留下…
展开
-
jdk8 stream示例
jdk8 stream示例//跟据某个属性分组 Map<String, List<PersonData>> collect = list.stream().collect(Collectors.groupingBy(PersonData::getType)); System.out.println(collect); //根据某个属性分组,汇总某个属性 Map<String, Integer&g原创 2021-11-26 09:13:53 · 381 阅读 · 0 评论 -
StringUtils中isEmpty和isBlank区别
经常判空可能用到StringUtils,具体是用isEmpty还是isBlank经常不知所措。下面我带大家一起读一下源码。先看isEmpty:isEmpty/** * <p>Checks if a CharSequence is empty ("") or null.</p> * * <pre> * StringUtils.isEmpty(null) = true * StringUtils.isEmpty(原创 2021-11-04 14:37:28 · 218 阅读 · 0 评论 -
JAVA8之妙用Optional解决判断Null为空问题
背景在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示。在这种情况下,有如下代码user.getAddress().getProvince();这种写法,在user为null时,是有可能报NullPointerException异常的。为了解决这个问题,于是采用下面的写法:if(user!=null){ Address address = user.getAddress();原创 2021-11-02 09:48:07 · 169 阅读 · 0 评论 -
Mybatis xml批量更新
想要批量更新,不想用for循环了,mapper:int batchUpdateCustomer(List<BaseCustomerCarrierVO> baseCustomerCarrierVO);xml:<update id="batchUpdateCustomer" parameterType="java.util.List"> update base_customer_carrier <trim prefix="set" suffixOverri原创 2021-10-29 15:58:35 · 1025 阅读 · 0 评论 -
性能优化之Java多线程批量拆分List导入数据库
性能优化之Java多线程批量拆分List导入数据库| 前言前两天做了一个导入的功能,导入开始的时候非常慢,导入2w条数据要1分多钟,后来一点一点的优化,从直接把list怼进Mysql中,到分配把list导入Mysql中,到多线程把list导入Mysql中。时间是一点一点的变少了。非常的爽,最后变成了10s以内。下面就展示一下过程。| 直接把list怼进Mysql使用mybatis的批量导入操作:@Transactional(rollbackFor = Exception.class) pu原创 2021-10-09 09:56:36 · 303 阅读 · 0 评论 -
Java 泛型通配符 T,E,K,V,?
Java 泛型通配符 T,E,K,V,?前言Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型带来的好处在没有泛型的情况的下,通过对类型 Object 的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错原创 2021-10-08 16:18:07 · 60 阅读 · 0 评论 -
异常处理分析
一、简介异常,也称为例外,是在程序运行过程中发生的、会打断程序正常执行的事件。把它置于代码层面来理解,即阻止了当前方法或作用域继续执行。在Java中,异常被当做对象来处理,其基类是Throwable。Throwable(所有error和exception的父类)1、errorError表示编译时和系统错误,表示系统在运行期间出现了严重的错误,属于不可恢复的错误,一般是环境的问题或者JVM的问题,并非程序的问题;因此这种错误会导致程序终止执行,应用程序是无法处理此类错误的。Error不在我们调试代码可原创 2021-09-30 10:34:22 · 456 阅读 · 0 评论 -
Java中的ThreadLocal详解
Java中的ThreadLocal详解一、ThreadLocal简介二、ThreadLocal简单使用三、ThreadLocal的实现原理四、ThreadLocal不支持继承性五、InheritableThreadLocal类六、从ThreadLocalMap看ThreadLocal使用不当的内存泄漏问题一、ThreadLocal简介多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般使用者在访问共享变量的时候需要进行额外的同步措施才能保证线程安原创 2021-09-19 11:34:38 · 199 阅读 · 0 评论 -
Object转换为Map(实体对象转换成带下划线的map)
import com.google.common.base.CaseFormat;import com.google.common.base.Converter;private static Converter<String, String> converter = CaseFormat.LOWER_CAMEL.converterTo(CaseFormat.LOWER_UNDERSCORE);/*** Object转换为Map(实体对象转换成带下划线的map)* @param obj原创 2021-08-11 15:41:55 · 661 阅读 · 0 评论 -
The server selected protocol version TLS10 is not accepted by client preferences [TLS12]
The server selected protocol version TLS10 is not accepted by client preferences [TLS12]连接sqlServer报错项目启动报错提示:The server selected protocol version TLS10 is not accepted by client preferences [TLS12]”。 ClientConnectionId:8252e571-a2d0-467b-95d0-1bacf0ac33原创 2021-06-08 15:12:51 · 311 阅读 · 0 评论 -
SpringBoot 接口防刷,一个注解搞定
说明:使用了注解的方式进行对接口防刷的功能,非常高大上,本文章仅供参考一,技术要点:springboot的基本知识,redis基本操作,首先是写一个注解类:import java.lang.annotation.Retention;import java.lang.annotation.Target; import static java.lang.annotation.ElementType.METHOD;import static java.lang.annotation.Rete原创 2021-04-26 16:22:02 · 102 阅读 · 0 评论 -
Spring Boot 如何解决跨域问题
前后端分离大势所趋,跨域问题更是老生常谈,随便用标题去google或百度一下,能搜出一大片解决方案,那么为啥又要写一遍呢,不急往下看。问题背景:Same Origin Policy,译为“同源策略”。它是对于客户端脚本(尤其是JavaScript)的重要安全度量标准,其目的在于防止某个文档或者脚本从多个不同“origin”(源)装载。它认为自任何站点装载的信赖内容是不安全的。当被浏览器半信半疑的脚本运行在沙箱时,它们应该只被允许访问来自同一站点的资源,而不是那些来自其它站点可能怀有恶意的资源。原创 2021-04-26 16:17:33 · 96 阅读 · 0 评论 -
java-PDF转图片
1、maven工程添加依赖<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --><dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</vers原创 2020-10-24 10:22:28 · 189 阅读 · 0 评论 -
springcloud -03 服务注册到Eureka注册中心
3.4.1 商品服务注册 (1) 商品模块中引入坐标 在 shop_service_product 的pom文件中添加eureka client的相关坐标 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-commons</artifactId> </depende...原创 2020-08-09 15:45:33 · 108 阅读 · 0 评论 -
json转bean,Date格式转化处理(fastJson)
业务:json转成实体类,实体中有Date格式,直接转换报错!!!报错:Exception in thread "main" com.alibaba.fastjson.JSONException: For input string: "2018/11/16 3:06:41"废话不多说,直接上!json串:{'id':'181116030522211648','sendtime':'2018/11/16 3:06:41'}实体字段:@JSONField(format = "y原创 2020-07-02 18:10:17 · 677 阅读 · 0 评论 -
在java中使用dom4j解析xml
话不多说,直接上xml文档:<?xml version="1.0" encoding="UTF-8"?> <books> <book id="001"> <title>Harry Potter</title> <author>J K. Rowling</author> </book> <book id="002"> <原创 2020-07-02 14:59:58 · 3412 阅读 · 0 评论 -
java-多线程-01 详解学习强烈推荐
1.什么是线程**基本概念**我们先从线程的基本概念开始,给大家复习一下,不知道有多少同学是基础不太好,说什么是线程都不知道的,如果这样的话,花时间去补初级内容的课。什么是叫一个进程? 什么叫一个线程?- Program app ->QQ.exe **进程:**做一个简单的解释,你的硬盘上有一个简单的程序,这个程序叫QQ.exe,这是一个程序,这个程序是一个静态的概念,它被扔在硬盘上也没人理他,但是当你双击它,弹出一个界面输入账号密码登录进去了,OK,这个时候叫做一个进程.原创 2020-05-14 22:09:46 · 134 阅读 · 0 评论 -
Java获取本地程序ProcessId,关闭程序
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class closeApplication { // public static final String GET_WORD_COMMAND="wmic process where...原创 2019-10-15 18:52:23 · 418 阅读 · 0 评论 -
Cookie 工具类
package com.dazhi;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.net.URLEncoder;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletReques...原创 2019-08-19 19:10:38 · 67 阅读 · 0 评论