
javase
文章平均质量分 65
javase
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
hello_world!
java coder
展开
-
HashTable putIfAbsent()方法,带示例
方法,如果给定的键不与值相关联或映射为空,则允许将值映射到给定的键。如果哈希表中已经存在这样的键值集,则返回空值。原创 2024-03-18 19:37:47 · 211 阅读 · 0 评论 -
分布式锁实现
查看Redis官方文档,对于单节点的Redis ,使用setnx和lua del删除分布式锁是足够的,但是主从架构的场景下:锁先加在一个master节点上,默认是异步同步到从节点,此时master挂了会选择slave为master,此时又可以加锁,就会导致超卖。此命令会返回扣减后的最新库存,若小于0则表示超卖。可以把分布式锁的性能提升5倍。里面有一个subscribe的逻辑,会监听对应加锁的key,当锁释放之后publish对应的消息,此时如果没有到达对应的锁的超时时间,也会尝试获取锁,避免时间浪费。原创 2023-11-29 10:41:57 · 965 阅读 · 0 评论 -
堆内存溢出自动生成DUMP文件
如果发生了内存泄露,如果好重现,使用JVisualvm,或者jmap,Jprofiler进行Heap Dump,使用MAT进行分析。快照格式为java_pid2821.hprof(2821为Java进程号)-XX:+HeapDumpOnOutOfMemoryError :当内存溢出时触发java.lang.OutOfMemo: Java heap space。-XX:HeapDumpPath=/opt/heap·: 内存溢出时,保存内存快照文件。VisualVm和MAT。原创 2023-04-27 17:32:35 · 2892 阅读 · 0 评论 -
SpringBoot 发送邮件
springboot原创 2022-06-06 23:44:23 · 323 阅读 · 1 评论 -
Tomcat 输出日志出现中文乱码
Tomcat 输出日志出现中文乱码解决方案:打开到tomcat安装目录下的conf/文件夹 修改logging.properties文件,找到 java.util.logging.ConsoleHandler.encoding = utf-8更改为 java.util.logging.ConsoleHandler.encoding = GBK结果如下:...原创 2021-10-28 19:25:20 · 467 阅读 · 0 评论 -
SpringBoot-okhttp3-keytool自签名-https单向认证和双向认证
一、前言HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。.原创 2021-10-25 19:59:31 · 626 阅读 · 0 评论 -
JDK8的新特性
为什么面试经常问JDK8新的特性JDK8是2014年3月发行版本, 面试官会在面试中问JDK8的一些新的特性。Java从已经从JDK1.0版本发展到了最新的JDK13, 为什么目前Jdk8经常被问到呢?大概有一些原因:第一、JDK8仍然是最受欢迎的JDK版本。从skyn网站的《2018年JVM生态报告》中可以看到截止到2018年, JDK8仍然是生成环境使用最多的JDK版本。第二、新的发版周期,让很多公司无所适从。JDK9非LTS版本。JDK8之后Oracle使用了新的发布周原创 2021-10-06 23:38:32 · 232 阅读 · 0 评论 -
自定义校验注解ConstraintValidator
定义一个注解,用于校验用户的姓名是不是以“新韭菜”开头的。package com.nobody.annotation;import com.nobody.validator.IsLeekValidator;import javax.validation.Constraint;import javax.validation.Payload;import java.lang.annotation.*;/** * @Description 校验是否韭菜的注解 * @Author Mr.n原创 2021-09-23 22:38:36 · 440 阅读 · 0 评论 -
String.format详解
目录 一、前言 二、重载方法 三、占位符 四、对字符、字符串进行格式化 五、对整数进行格式化 六、对浮点数进行格式化 七、对日期时间进行格式化 八、其他转换符 九、总结 参考一、前言 String.format作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,为了不...原创 2021-09-08 15:36:23 · 1760 阅读 · 0 评论 -
Jackson用于Bean和XML之间转换
概述 Jackson是一个强大工具,可用于Json、XML、实体之间的相互转换。此篇博客主要着重于 实体和XML之间的转换。XML转换核心 要想灵活地进行转换,需要在实体上使用到Jackson提供的四个注解: @JacksonXmlElementWrapper:可用于指定List等集合类,外围标签名; @JacksonXmlProperty:指定包装标签名,或者指定标签内部属性名; @JacksonXmlRootElement:指定生成xml根标签的名字; @Ja...原创 2021-09-07 21:49:13 · 464 阅读 · 0 评论 -
Jackson用于Bean和XML之间转换
概述 Jackson是一个强大工具,可用于Json、XML、实体之间的相互转换。此篇博客主要着重于 实体和XML之间的转换。XML转换核心 要想灵活地进行转换,需要在实体上使用到Jackson提供的四个注解: @JacksonXmlElementWrapper:可用于指定List等集合类,外围标签名; @JacksonXmlProperty:指定包装标签名,或者指定标签内部属性名; @JacksonXmlRootElement:指定生成xml根标签的名字; @Ja...原创 2021-09-03 23:20:56 · 348 阅读 · 0 评论 -
十分钟搞懂Lombok使用与原理
1 简介Lombok是一款好用顺手的工具,就像Google Guava一样,在此予以强烈推荐,每一个Java工程师都应该使用它。Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现Lombok,开发人员可以节省构建诸如hashCode()和equals()这样的方法以及以往用来分类各种accessor和mutator的大量时间。2 IntelliJ安装Lombok 通过Intell原创 2021-07-04 00:03:15 · 225 阅读 · 0 评论 -
java8 stream接口终端操作 count,anyMatch,allMatch,noneMatch
对于中间操作和终端操作的定义,请看《JAVA8 stream接口 中间操作和终端操作》,这篇主要讲述的是stream的count,anyMatch,allMatch,noneMatch操作,我们先看下函数的定义 long count(); boolean anyMatch(Predicate<? super T> predicate); boolean allMatch(Predicate<? super T> predicate); ...转载 2021-06-28 16:08:33 · 416 阅读 · 0 评论 -
java运算符 与(&)、非(~)、或(|)、异或(^)
最近看HashMap源码,遇到了这样一段代码:1 static final int hash(Object key) {2 int h;3 return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);4 }于是我整理学习了以下知识:1.十进制转二进制原理:给定的数循环除以2,直到商为0或者1为止。将每一步除的结果的余数记录下来,然后反过来就得到相应的二进制了。原创 2021-06-26 14:14:14 · 147 阅读 · 0 评论 -
Java创建对象的几种方式
java是一种面向对象语言,所以我们在写代码过程中会创建很多对象,那java创建的对象到底有多少种呢?其中每种的差别又有哪些呢?请允许我慢慢道来1.使用new关键字这是最常见也是使用最多的一种。Test test = new Test();// 无参构造函数如果我们想要在创建对象的时候,初始化其一些属性,那么就可以使用有参构造函数Test test = new Test(name);但有时候我们会遇到这种情况情况编译提示错误,提示信息告诉我们,这个类的构造函数是priva原创 2021-06-26 13:53:50 · 4205 阅读 · 0 评论 -
使用EasyPoi进行导入导出Excel(含多sheet导入导出操作)
主要是直接进行导入导出,下面给出一个补充的工具类吧/***Excle 文件导入导出Util(easypoi)* @ClassName:EasyPoiUtil* @author leon* @createDate 2018年11月29日 下午15:25:27* @version v1.0* @classRemarks TODO*/public class EasyPoiUtil {private final static Logger logger = Logg...原创 2021-06-25 09:25:59 · 558 阅读 · 1 评论 -
Java中EasyPoi导出复杂合并单元格的方法
前言:上星期做了一个Excel的单元格合并,用的是EasyPoi,我之前合并单元格都是原生的,第一次使用EasyPoi合并也不太熟悉,看着网上自己套用,使用后发现比原生的方便些,贡献一下,也给其他用到合并而且用的是EasyPoi的小伙伴节省下时间。导出模板:坐标:版本号,自己来定,可以去官网查看:EasyPoi官网 1 2 3 4 5 6 7 8 9 10 11 12原创 2021-06-25 09:21:09 · 1076 阅读 · 0 评论 -
BeanUtils.copyProperties解决null值覆盖问题
这里使用的是Spring提供的BeanUtils的工具类(commons-lang3可参考)。在做数据变更的时候,使用BeanUtils.copyProperties(newdata,dbdata)进行数据变更的时候,由于前台展示的数据不完整。导致前台传递的数据将后台的原始数据全部覆盖掉。那么如何解决这种null值的覆盖呢。BeanUtils.copyProperties()可以通过添加可变长参数忽略掉具体的某些不需要更新的字段。比如BeanUtils.copyProperties(newdata,dbda原创 2021-06-25 09:18:45 · 5026 阅读 · 2 评论 -
JDK中使用的设计模式
这也是篇老文了,相信很多人也看过。前面那些废话就不翻译了,直接切入正题吧~结构型模式:适配器模式:用来把一个接口转化成另一个接口。java.util.Arrays#asList()javax.swing.JTable(TableModel)java.io.InputStreamReader(InputStream)java.io.OutputStreamWriter(OutputStream)javax.xml.bind.annotation.adapters.XmlAdapter#mar原创 2021-06-24 16:36:24 · 408 阅读 · 0 评论 -
java List复制:浅拷贝与深拷贝
List浅拷贝众所周知,list本质上是数组,而数组的是以地址的形式进行存储。如上图将list A浅拷贝给list B,由于进行的是浅拷贝,所以直接将A的内容复制给了B,java中相同内容的数组指向同一地址,即进行浅拷贝后A与B指向同一地址。造成的后果就是,改变B的同时也会改变A,因为改变B就是改变B所指向地址的内容,由于A也指向同一地址,所以A与B一起改变。几种浅拷贝1、遍历循环复制List<Person> destList=new ArrayList<Person&原创 2021-06-24 16:18:15 · 326 阅读 · 0 评论 -
poi设置单元格背景颜色
Java使用poi可以很方便地导出Excel表格文件,同时可以设置各种样式,例如背景颜色。下面给出两个例子设置背景颜色,一个使用自带的颜色设置背景颜色,一个使用自定义颜色设置。使用内置的颜色设置单元格背景颜色 准备工作:下载poi插件,并且部署到项目下面,例子使用的是3.17版本。 导出一个人员Excel表格,代码如下,制作例子说明,可以直接复制: public static void main(String[] args) throws IOException {HSS原创 2021-06-24 16:13:23 · 4238 阅读 · 0 评论 -
java8 stream接口终端操作 count,anyMatch,allMatch,noneMatch
对于中间操作和终端操作的定义,请看《JAVA8 stream接口 中间操作和终端操作》,这篇主要讲述的是stream的count,anyMatch,allMatch,noneMatch操作,我们先看下函数的定义 long count(); boolean anyMatch(Predicate<? super T> predicate); boolean allMatch(Predicate<? super T> predicate); .转载 2021-03-04 23:46:34 · 264 阅读 · 1 评论 -
Java工具类Hutool超实用,神级框架值得拥有!
Hutool 谐音 “糊涂”,寓意追求 “万事都作糊涂观,无所谓失,无所谓得” 的境界。Hutool 是一个 Java 工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让 Java 语言也可以 “甜甜的”。Hutool 最初是我项目中 “util” 包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。功能一个 Java 基础工具类,对文件、流、加密解密、转码、正则、线程、XML 等 JDK 方法进行封装,原创 2021-03-04 23:20:35 · 583 阅读 · 1 评论 -
Java8新特性之stream、map和reduce
Java8新了stream API,需要注意的是Stream和I/O中的流是没有关系的,这个stream主要是要来处理集合数据的,可以将其看作一个高级迭代器。在Collection接口中新增了非抽象的stream方法来获取集合的流。另外,Java8中新增了一个Optional类用于处理空指针异常,该类位于java.util包下,使用这个类可以更好的支持函数式编程,并且可以简化以前对null的判断。目录streammap和reduceOptional类stream下面...原创 2021-03-02 23:29:22 · 327 阅读 · 0 评论 -
Could not read JSON: Cannot construct instance of‘‘类名““(no Creators, like default construct, exist)
使用redis存对象的时候报错了,报错信息全部的报错信息如下:org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Cannot construct instance of `com.xkcoding.cache.redis.entity.User` (no Creators, like default construct, exist): cannot deserialize fro原创 2021-02-18 15:55:25 · 1942 阅读 · 0 评论 -
接口开发中的 RestTemplate 传参问题
RestTemplate在使用RestTemplate时,通过map传参,遇到传不了参的问题对于get请求,必须在请求的url中添加?a={a},参数为对应的map的keyRestTemplate restTemplate = new RestTemplate(); String url = "https://restapi.amap.com/v3/weather/weatherInfo?key={key}&city={city}"; Map map = new HashMap.原创 2021-02-18 15:26:11 · 1402 阅读 · 0 评论 -
restTemplate工具类
utilpackage javax.utils;import java.util.Map;import org.springframework.http.HttpEntity;import org.springframework.http.HttpHeaders;import org.springframework.http.HttpMethod;import org.springframework.http.ResponseEntity;import org.springframew原创 2021-02-18 15:24:42 · 247 阅读 · 0 评论 -
JFreeChart工具类
需要的jar包:jfreechart-1.0.17.jarjcommon-1.0.24.jar(jfreechart一般只要1.0系列的都可以,jcommon一般任何版本都可以)效果:代码:JfreechartUtil:package jfreeChart;import java.awt.Color;import java.awt.Font;import java.io.File;import java.io.FileOutputStre...原创 2021-02-17 22:52:08 · 2642 阅读 · 3 评论 -
JFreeChart 常用属性设置
JFreeChart类:void setAntiAlias(boolean flag) 字体模糊边界void setBackgroundImage(Image image) 背景图片void setBackgroundImageAlignment(int alignment) 背景图片对齐方式(参数常量在org.jfree.ui.Align类中定义)void setBackgroundImageAlpha(float alpha) 背景图片透明度(0.0~1.0)void setBa...原创 2021-02-17 22:50:13 · 664 阅读 · 0 评论 -
Java的加减乘除方法
Java中,对于不需要任何准确计算精度的数字可以直接使用float或double运算,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作。ava.math.BigDecimal。BigDecimal一共有4个够造方法,让我先来看看其中的两种用法:b2是被除数,b1是除数, 比如1.devide(100,10,BigDecimal,ROUND_HALF_UP),就是得0.01,上面的注释有点小纰漏https://blog.youkuaiyun.com原创 2021-02-17 22:49:01 · 10437 阅读 · 0 评论 -
Java 中 如何将“一个类的方法 ”作为参数传到“另一个类的方法”
https://blog.youkuaiyun.com/qq_32719221/article/details/108481799java 中 如何将“一个类的方法 ”作为参数传到“另一个类的方法”在C++中通过指针调用即可,在Java中使用方法接口方式一 方法接口a 先定义一个接口(定义抽象方法,理解成函数参数的规范)public interface MethodInterface { //这个方法假如就是你想要传递的方法 public String test(String s原创 2021-02-17 22:47:48 · 2620 阅读 · 0 评论 -
java正则表达式判断日期
public static void main(String[] args) { String pattern ="\\d{4}(\\-|\\/|.)\\d{1,2}\\1\\d{1,2}"; // 应收日期 2019/1/1 // 2019-01-02 // 2019.02.02 // 20190909 boolean isMatchDate1 = Pattern.matches(pattern, ...原创 2021-02-16 23:23:18 · 1094 阅读 · 0 评论 -
使用ThreadLocal到底需不需要remove?
https://www.jianshu.com/p/9a49ed06e936起因网上一系列的文章都在分析ThreadLocal,说如果线程不销毁的话,value会一直存在于内存中,所以必须调用remove,下面通过一些实践和源码来分析一下这个观点是否在所有情况下都适用案例分析第一个实验demo图可以看到上面这张图片,在使用线程池时,由于线程被复用没有销毁,在没有调...原创 2020-05-07 15:11:55 · 6841 阅读 · 1 评论 -
volatile
https://www.jianshu.com/p/638ac7c821101、volatile如何保证内存可见性2、volatile如何禁止指令重排序3、内存屏障4、内存可见性5、关于volatile的单例模式一、内存可见性1.1 缓存一致性问题 1、现代计算机系统在存储设备与处理器之间加了一层读写速度尽可能解决处理器运算速度的高速缓存来作为内存与处理器之间的...原创 2020-05-07 15:09:13 · 278 阅读 · 0 评论 -
Java基础笔记(加密与安全)
1 加密与安全数据安全:防窃听,防篡改,防伪造。摘要算法:确保信息没有被篡改对称加密算法/非对称加密算法:对数据进行加密/解密签名算法:确保信息的完整性和抗否认性1.1 编码算法什么是编码,ASCII码,Unicode,UTF-8这些就是编码,如字母 A 使用 ASCII 编码就是 0x41,中文字的 中 使用 Unicode 编码就是 0x4e2d,使用 UTF-8 编码就是 0...原创 2020-03-26 21:02:34 · 242 阅读 · 0 评论 -
asList方法产生的List对象不可更改
https://www.cnblogs.com/DreamDrive/p/5641191.html上一个建议之处了asList方法在转换基本类型数组时候存在的问题,在看下asList方法返回的列表有何特殊的地方.看代码:import java.util.Arrays;import java.util.List;public class Client { //枚举,声明一...原创 2020-03-21 18:48:06 · 338 阅读 · 0 评论 -
ServletRequest中getReader()和getInputStream()只能调用一次的解决办法
https://www.iteye.com/blog/liwx2000-1542431最近使用spring mvc做项目,数据格式是json,有一个功能是实现记录请求的参数,而请求的参数是整个RequestBody,Controller里是用过@RequestBody获取的。实现方法是通过一个Filter读取整个RequestBody并记录。但是这时就遇到一个问题,ServletRequ...原创 2019-12-22 20:15:06 · 416 阅读 · 0 评论 -
设计模式之Wrapper
https://www.jianshu.com/p/0ea8c2fe8e10这个模式其实是Adapter模式和Decorator模式的统称。1. 范例Servlet规范中的javax.servlet.http.HttpServletRequestWrapper就是这种模式的经典例子。HttpServletRequestWrapper继承自ServletRequestWrappe...原创 2019-12-22 19:49:40 · 1299 阅读 · 0 评论 -
java 四种内部类和内部接口
/** * 常规内部类:常规内部类没有用static修饰且定义在在外部类类体中。 * 1.常规内部类中的方法可以直接使用外部类的实例变量和实例方法。 * 2.在常规内部类中可以直接用内部类创建对象 */ publicclassMyOuter { privateintx =100; ...原创 2019-11-28 17:00:59 · 1248 阅读 · 0 评论 -
static 表示静态,它可以修饰属性,方法和代码块
https://www.jianshu.com/p/4ad57d94c0ee(1)static 表示静态,它可以修饰属性,方法和代码块。1.static修饰属性(类变量),那么这个属性就可以用类名.属性名来访问,也就是使这个属性成为本类的类变量,为本类对象所共有。这个属性就是全类公有。(共有的类变量与对象无关,只和类有关)。2.static修饰方法(静态方法),会使这个方法成为整个类所...原创 2019-01-03 20:12:13 · 7717 阅读 · 0 评论