java
文章平均质量分 65
达文西不辅助
请叫我达文西
展开
-
Bad RequestThis combination of host and port requires TLS.
错误记录原创 2022-06-07 16:30:38 · 884 阅读 · 0 评论 -
简述自定义注解
标注在注解上的常用注解最重要的两个注解:@Retention与@Target, 一般自定义注解上都需要加上这两个注解@Retention:用来指定注解的生命周期,可以指定的生命周期有:(RetentionPolicy枚举类的)SOURCE、CLASS、RUNTIME,如果不加此注解,默认生命周期为CLASSSOURCE:只在源代码上显示,编译后不保存。CLASS:编译后会留在class文件中,但运行程序时JVM不会保留该注解。RUNTIME:编译后留在class文件中,且运行程序时JVM会保留该转载 2022-05-26 16:57:01 · 194 阅读 · 0 评论 -
HandlerMethodArgumentResolver(参数解析器)的作用+使用小案例
前言今天在做项目时遇到了一个有关参数解析HandlerMethodArgumentResolver的使用疑惑。我想作为新手的我在此和大家一起交流并记录。接下来开始发车......正文首先先来认识一下这个接口,HandlerMethodArgumentResolver。public interface HandlerMethodArgumentResolver { boolean supportsParameter(MethodParameter var1); Objec...转载 2022-05-26 15:47:35 · 618 阅读 · 0 评论 -
Spring Boot 一个接口同时支持 form 表单、form-data、json 的优雅写法
原文地址:Spring Boot 一个接口同时支持 form 表单、form-data、json 的优雅写法网上很多代码都是千篇一律的 cvs,相信我只要你认真看完我写的这篇,你就可以完全掌握这个知识点,这篇文章不适合直接 cvs,一定要先理解。最近重写个项目遇到个比较棘手的问题,老项目是 PHP 接口,这个接口同时兼容 POST json 和 form 表单,更骚的是连form-data也兼容。。。因为写 PHP 请求的对接方代码不严谨。而在 Java 中,一个接口只支持一种cont...转载 2022-05-25 15:26:07 · 769 阅读 · 2 评论 -
Logback使用总结
Logback使用总结前言一、logback如何使用二、知识点1.logback简单模板2.解析主要标签三、问题和排错总结前言整理了下logback的常用点功能,并记录了一些在使用过程中的疑问,和问题的排错过程,防止自己再犯类似错误,也希望对路过的你有所帮助。一、logback如何使用任何框架的使用都是三步走:1.导入jar包2.配置文件3.开始使用对于logback自然也是不例外的,这里简单说下,不做过多的赘述。springboot默认集成了logback,所以若是建立spr转载 2022-05-23 17:29:52 · 1529 阅读 · 0 评论 -
SpringContextHolder直接从spring容器中获取bean
参考一:SpringContextHolder直接从spring容器中获取bean创建类 SpringContextHolderimport org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframe转载 2022-05-22 20:24:09 · 1183 阅读 · 0 评论 -
idea 离线安装插件
解压缩到plugin 重启idea就行了4 改下压缩包 后缀 为txt 可以直接 传入快乐平安原创 2022-04-01 20:02:45 · 361 阅读 · 0 评论 -
git stash
场景:分支切换从A分支直接切换到B分支会导致A分支的内容丢失。命令操作:git stash 暂存git stash list 查看stash pop可以理解为栈 (pop出来就没有了) ,git stash pop 就可以恢复暂存的内容git stash list 可以查看暂存的内容git stash apply 恢复暂存内容 但是不删除暂存界面操作 见名知意...原创 2022-04-01 10:14:12 · 260 阅读 · 0 评论 -
怎样简单获取GitHub上的token
如果你已经有了GitHub的账号,且已经登上了,那么仅需稍稍操作即可得到token1.点击下方链接https://github.com/settings/tokens/new2.点击后出现的页面(中间或许有让你输入GitHub账户密码的弹窗弹出,填上即可),3.点击Generate token之后,出现如下页面(红线圈出来的就是你所需的信息*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。)4 如果idea安装报错 点击图三的 revoke all token——...转载 2022-04-01 02:31:05 · 9390 阅读 · 0 评论 -
git回滚
git回滚A已提交,没有push1 命令操作:1)gitreset--soft上一个版本号(通过gitlog查找)(撤销commit)git log 选中 第二个效果如下2)gitreset--mixed上一个版本号(撤销commit和add两个动作,回退到最原始的)效果2 idea 版本效果图B 已提交并且push场景:1)命...原创 2022-04-01 02:25:00 · 298 阅读 · 0 评论 -
git rebase
场景:提交到了暂存区,还没有推送到远程仓库的多次提交,可以合并成一次提交操作1)提交到在暂存区命令操作1) alt +f12 召唤控制台 输入git rebase -i HEAD~~ (git rebase -i HEAD~2)pick 是使用本次提交 s 是压缩的意思,J具体操作见下:修改第一个注释最终结果:idea操作1)选中要合并的最早的提交2) 1 合并 2 修改合并后的提交注释效果图...原创 2022-03-31 18:20:41 · 116 阅读 · 0 评论 -
jvm工具排查内存泄漏
MemoryAnalyzer-1.8.1.20180910-win32.win32.x86_64-Java文档类资源-CSDN下载内存溢出排查先来了解一下Java堆的组成机构。对于大多数应用来说,Java堆(Java Heap)是Java虚拟机锁管理的内存中最大的一块。Java堆是所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存堆的结构如下新生代老年代的具体划分比例如下分代的主要作用就是为了更高效的...转载 2022-03-28 18:05:10 · 600 阅读 · 0 评论 -
面试官:说下你公司系统怎么设计防重复数据的
作者:三分恶原文链接:https://cnblogs.com/three-fighter/p/14054749.html博主负责的项目报了一个问题,用户操作回退失效。我们的设计里,操作回退是回到操作前的状态。经过查看日志发现,用户之前的操作做了两次,也就是说提交操作的接口被调用了两次,导致之用户上一次的状态和这一次的状态是一样的,所以操作回退是没有问题的,问题出在了操作的接口被调用了两次。对于防止重复提交,是放在前端控制的,用户点击完按钮之后,后台返回成功的结果,按钮就不可见,实践证明,客户端.转载 2022-03-30 18:23:28 · 310 阅读 · 0 评论 -
自定义注解实现是否返回统一的结果
来源:老顾聊技术 前言 接口相互作用 返回格式 控制层控制器 美观美化 优雅优化 实现方案 前言在移动互联网,分布式,微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前分离分离方式,(题外话:前重新的工作分配越来越明确,现在的前端都称为大前端,技术栈以及生态圈都已经非常成熟;以前官员人员瞧不起前端人员,那现在高层人员要重新认识一下前端,前端已经很成体系了)。一般系统的大致整体架构图如下:需要说明的是,有些小转载 2022-03-25 11:09:26 · 820 阅读 · 0 评论 -
Guava中这些Map的骚操作,让我的代码量减少了50%
参考:Guava中这些Map的骚操作,让我的代码量减少了50%Guava是google公司开发的一款Java类库扩展工具包,内含了丰富的API,涵盖了集合、缓存、并发、I/O等多个方面。使用这些API一方面可以简化我们代码,使代码更为优雅,另一方面它补充了很多jdk中没有的功能,能让我们开发中更为高效。今天Hydra要给大家分享的就是Guava中封装的一些关于Map的骚操作,在使用了这些功能后,不得不说一句真香。先引入依赖坐标,然后开始我们的正式体验吧~<dependency>转载 2022-03-24 16:42:02 · 146 阅读 · 0 评论 -
java基础知识枚举提取公共类
引用地址:今日头条如何规范化Enum在项目中的使用?2022-03-02 14:14·老顾聊技术前言在我们平时开发过程中,枚举的使用时必不可少的。为什么要用枚举? 有穷序列的字段用int或tinyint不是挺好吗?答案很简单:我们的程序写给人看的。既然是写给人看,那么,可理解、易理解往往显得相当重要!枚举一般有两部分,一个是枚举项值,一个是枚举描述。那么,这两个属性怎么命名呢? code和desc?还是value和desc?还是key和value?一位架构师强调过:对转载 2022-03-24 14:55:47 · 1097 阅读 · 0 评论 -
@Async注解
原地址:新来了个技术总监:谁再用 @Async 创建线程以后就不用来了!!在很久很久之前,我有一段痛苦的记忆。那种被故障所驱使的感觉,在我脑海里久久无法驱散。原因无它,有小伙伴开启了线程池的暴力使用模式。没错,就是下面这篇文章。夺命故障 ! 炸出了投资人!我有必要简单的复述一下。其主要原因,就是开发人员,在每一次方法调用里,都创建了一个单独的线程池去处理。这样的话,如果请求量一增加,整个操作系统的压力就会耗尽,最终所有的业务都无法响应。我一直认为这是一个非常偶发的低级错误,发生频率非转载 2022-03-23 17:57:16 · 4053 阅读 · 0 评论 -
Java 4种校验注解(值校验、范围校验、长度校验、格式校验)
1 值校验1.1 @Null注解被注解的元素必须为null@Null(message = "必须为null")private String username;1.2 @NotNull注解被注解的元素必须不为null@NotNull(message = "必须不为null")private String username;1.3 @NotBlank注解验证注解的元素值不为空(不为null、去除首位空格后长度为0) ,并且类型为String。@NotBlank(message = "转载 2022-01-26 14:28:11 · 19625 阅读 · 4 评论 -
验证输入的合法性正则表达式
验证数字的正则表达式集验证数字:^[0-9]*$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数字:^\d{m,n}$验证零和非零开头的数字:^(0|[1-9][0-9]*)$验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$验证非零的正整数:^\+?[1-9][0-9]*$验证非零的负整数:^\-[1-9][0-9]*$验证非负整数(正整数 + 0)...转载 2022-01-26 14:15:18 · 518 阅读 · 0 评论 -
一个汉字到底占几个字节
原文地址:一个汉字占多少个字节我错了20年 一个中文需要两个字节总结:这和编码有关,UTF8一个汉字占3个字节,GBK一个汉字占2个字节。当我上第一节计算机课的时候,我的电脑老师跟我说,一个英文字符是1个字节,一个中文是2个字节。这么多年来,我对此一直坚信不移,相信很多人也是这么觉得的,但是,真实情况下是这么一回事么?要了解这个问题,我们首先得从字节说起,什么是字节呢?要知道,在计算中,底层都是晶体管的开关和关闭状态,我们把一个表示开关状态的称之为位,把八位称之为一个字节,也就是一个字节可以表示转载 2021-12-29 11:15:25 · 954 阅读 · 0 评论 -
Spring 启动加载资源到内存
转载:前言 在一些业务场景中,当容器初始化完成之后,需要处理一些操作,比如一些数据的加载、初始化缓存、特定任务的注册等等。我找到了三种方式解决下面的问题。1、使用PostConstruct注解 这种解决方法比较适用于:在对于接口响应时间要求比较短,而接口中又需要频繁调用数据库查询,或者调用外部系统的情况下,为了加快接口的响应速度,在项目启动时,将通过途径获取的结果初始化到静态变量或者放置到各种缓存中。首先静态代码块不行,静态代码块的执行顺序在Spring注解之前,当执行的...转载 2021-12-15 14:22:19 · 613 阅读 · 0 评论 -
Java关键字this、super使用总结
http://www.cnblogs.com/bluestorm/archive/2011/12/23/note20111223.html随笔 - 453 文章 - 3 评论 - 107Java关键字this、super使用总结(转)Java关键字this、super使用总结 一、thisJava关键字th转载 2016-06-16 13:29:26 · 306 阅读 · 0 评论 -
replace与replaceAll的区别
replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);replaceAll的参数是regex,即基于规则表达式的替换,比如:可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;相同点:都是全部替换,即把源字符串中的某一字符或字符串全部转载 2017-06-07 14:47:49 · 574 阅读 · 0 评论 -
回调方法介绍之中国好室友篇(Java示例)
作者:futeng链接:https://www.zhihu.com/question/19801131/answer/26586203来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。前言在Java社区的各种开源工具中,回调方法的使用俯拾即是。所以熟悉回调方法无疑能加速自己对开源轮子的掌握。网上搜了一些文章,奈何对回调方法的介绍大多只停留在什转载 2017-05-18 14:43:00 · 437 阅读 · 0 评论 -
什么是多态
来自点点 小先生1. 面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。2. 多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)3. 实现多态的技术称为:动态绑定(dynamic binding),是指在执行期转载 2016-12-09 16:55:42 · 312 阅读 · 0 评论 -
设计模式之单例模式(Singleton)
更详细的正确的请看这个网址大神的解说转载:http://www.cnblogs.com/BeyondAnyTime/archive/2012/05/14/2498940.html设计模式之单例模式(Singleton)1.什么是单例模式在现实生活中存在着有这样的特点的一些类: A.这些类只能有一个实例; B.这转载 2017-04-06 17:31:09 · 208 阅读 · 0 评论 -
java 类的初始化
版权声明:本文为博主原创文章,未经博主允许不得转载。讲解5: 归人 17:08:27类会在首次被“主动使用”时执行初始化,为类(静态)变量赋予正确的初始值。在Java代码中,一个正确的初始值是通过类变量初始化语句或者静态初始化块给出的。而我们这里所说的主动使用 包括:1. 创建类的实例2. 调用类的静态方法转载 2017-04-14 17:14:46 · 369 阅读 · 0 评论 -
jvm何时对类进行初始化及创建类实例的几种方法
初始化必须发生在装载、连接以后,Java虚拟机一般会在每个类或接口主动使用时才会对类型进行初始化。下面六中情形符合主动使用的要求:1.当创建某个类的新实例时。注:包括创建的所有方式,如new、反射、克隆以及反序列化等2.当调用某个类的静态方法时3.当使用某个类或接口的静态字段,或对该静态非常量字段进行赋值时。注意:用final修饰的静态字段除外,因为在编译阶段时,它就被替换成一转载 2017-04-14 15:17:01 · 565 阅读 · 0 评论 -
java代码的执行顺序3
staticA staticB HelloA I'm A class HelloB I'm B class 我觉得是这样原创 2017-03-13 17:57:08 · 272 阅读 · 0 评论 -
java中的代码块执行顺序2
http://www.cnblogs.com/liaoxianfu/p/6219828.html 大神 可以去看看 理解的很深/*代码块:在Java中,使用{}括起来的代码被称为代码块。根据其位置和声明的不同,可以分为局部代码块:局部位置,用于限定变量的生命周期。构造代码块:在类中的成员位置,用{}括起来的代码。每次调用构造方法执行前,都会先执行构造转载 2017-03-13 17:54:45 · 186 阅读 · 0 评论 -
java mkdir()和mkdirs()区别
mkdirs()可以建立多级文件夹, mkdir()只会建立一级的文件夹, 如下:new File("/tmp/one/two/three").mkdirs();执行后, 会建立tmp/one/two/three四级目录new File("/tmp/one/two/three").mkdir();则不会建立任何目录, 因为找不到/tmp/one/tw转载 2017-06-07 14:53:44 · 256 阅读 · 0 评论 -
javaWeb项目中如何使用过滤器
过滤器就是在源数据和目的数据之间起过滤作用的中间件。 Web应用中,在处理请求时,经常有一些公共的工作,比如设置字符集。这样的工作需要写在每个页面,这样的写法费力且不好修改。使用过滤器就像在这些流程前加了一道拦,将需要进行的操作放到拦里执行,而所有经过这道拦的流程都会“被”执行该操作。 开发一个过滤器必须实现java定义好的java转载 2017-06-07 16:59:05 · 15564 阅读 · 2 评论 -
DecimalFormat的用法
0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。 没有就不显示 有的话就四舍五入原创 2017-06-28 18:09:05 · 200 阅读 · 0 评论 -
Java内部类你真的会吗?
https://mp.weixin.qq.com/s/IDKUmQB5Na-dSFwDag0pmAJava内部类你真的会吗?Java架构研究室5天前一、四种内部类1.1、成员内部类成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式: 1 public class OuterAndInnerClass { 2 public static v...转载 2019-07-22 15:52:19 · 146 阅读 · 0 评论 -
Java中Comparable接口的使用
public interface Comparable<T>当需要对一个对象进行排序时,该对象应该实现Comparable接口,并实现其唯一的方法:int compareTo(T o)在该方法中定义自己的排序规则,当调用Arrays.sort(Object[] a)方法时则回调compareTo()方法,并按照自己的规则对对象数组进行排序。返回值及比较规则:1、返回负...转载 2018-12-19 10:27:10 · 2786 阅读 · 0 评论 -
目录下查找某个文件
原创 2018-12-21 15:44:55 · 385 阅读 · 0 评论 -
String.matches()的用法(正则表达式的用法最全)
原文转载:https://blog.csdn.net/amaowolf/article/details/7758215String.matches()的用法2007-07-16 20:30 String.matches() 这个方法主要是返回是否匹配指定的字符串,如果匹配则为true,否则为false; 如:/** * 判断字符创是否是一个有效的日期 ...转载 2018-12-21 12:22:53 · 14286 阅读 · 0 评论 -
java新生代 与老生代
堆大小 = 新生代 + 老年代。默认下,新生代 ( Young ) = 1/3 的堆空间大小,老年代 ( Old ) = 2/3 的堆空间大小;新生代 ( Young ) 被细分为 Eden 和 两个 Survivor 区域,这两个 Survivor 区域分别被命名为 from 和 to,以示区分。默认的,Edem : from : to = 8 : 1 : 1;JVM 每次只会使原创 2017-02-28 10:33:00 · 13240 阅读 · 2 评论 -
定时器
java当中的定时器的4种使用方式importjava.util.Calendar;importjava.util.Date;importjava.util.Timer;importjava.util.TimerTask; publicclass TimeTest { publicst转载 2017-08-30 21:08:44 · 149 阅读 · 0 评论 -
Java:类中代码的执行顺序
引言对于Java的初学者而言,很多时候我们只知道如何写一些基础的代码,但是却不知道为什么,对于一些概念而言,更是停留在一个很模糊的概念上,其实这样是不好的一种学习习惯。所以对于不太清楚的一些概念,自己多敲一敲,或许能更好的掌握。问题今天要说的问题是,Java中代码的执行顺序,不知道叫这个题目合适不。这里先定义几个类别:构造方法(如:public className(){……}) ...原创 2017-03-13 17:53:43 · 240 阅读 · 0 评论