Java
文章平均质量分 72
Java
CrazySnail_x
这个作者很懒,什么都没留下…
展开
-
Windows配置maven环境变量
Windows配置maven环境变量原创 2022-03-30 20:44:01 · 3161 阅读 · 0 评论 -
内存溢出的几种原因和解决办法
OOM的常见情况:第一类 堆栈溢出:java.lang.OutOfMemoryError: ......java heap space.....也就是当你看到heap相关的时候就肯定是堆栈溢出了,此时如果代码没有问题的情况下,适当调整-Xmx和-Xms是可以避免的,不过一定是代码没有问题的前提,为什么会溢出呢,要么代码有问题,要么访问量太多并且每个访问的时间太长或者数据太多,导致数据释放不掉,因为垃圾回收器是要找到那些是垃圾才能回收,这里它不会认为这些东西是垃圾,自然不会去回收了;主意这个溢出之前,转载 2021-01-08 16:51:40 · 5729 阅读 · 1 评论 -
JVM参数调优
常见参数示例参数 描述 -Xms20m 堆初始值20M -Xmx20m 堆最大可用值20M -Xmn5m 新生代最大可用值5M -XX:PrintGC 触发GC时日志打印 -XX:PrintGCDetails 触发GC时日志打印更详细 -XX:UseSerialGC 串行回收 -XX:SurvivorRatio=2 eden:from:to = 2:1:1 -XX:NewRatio=2 新生代:老年代 = 1:2转载 2021-01-08 16:45:59 · 445 阅读 · 0 评论 -
记一次线上OutOfMemoryError: Java heap space问题的解决
不知道是不是2020年太安逸了,都没加过班,最后12.30的时候警示一下我们。。。平时运行的好好的项目,突然发生了OOM,当时慌的一批,因为作为小菜鸡的我根本就没有遇到过这种问题啊,更没解决过这种问题,还好前段时间有在网上看过有关JVM的知识,对于简单的命令还是知道的,知道要下dump,然后分析dump。但是实际的问题往往没有那么的一帆风顺,其中的坎坷只有经历过才知道。下面让我细细道来~首先讲一讲正常的OOM问题的解决思路吧。首先,OOM是OutOfMemoryError的简称,一般发生OOM的时候内存原创 2021-01-08 16:08:11 · 2283 阅读 · 0 评论 -
jstat命令详解
Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。参考格式如下原创 2021-01-05 17:01:21 · 1721 阅读 · 0 评论 -
为什么重写equals方法,还必须要重写hashcode方法
是为了提高效率,采取重写hashcode方法,先进行hashcode比较,如果不同,那么就没必要在进行equals的比较了,这样就大大减少了equals比较的次数,这对比需要比较的数量很大的效率提高是很明显的,一个很好的例子就是在集合中的使用;hash类存储结构(HashSet、HashMap等等)添加元素会有重复性校验,校验的方式就是先取hashCode判断是否相等(找到对应的位置,该位置可能存在多个元素),然后再取equals方法比较(极大缩小比较范围,高效判断),最终判定该存储结构中是...原创 2020-10-12 15:36:46 · 198 阅读 · 0 评论 -
Cannot deploy artifacts when Maven is in offline mode
今天在使用maven deploy命令的时候出现了报错:Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy (default-deploy) on project shiphub-shipping-dto: Cannot deploy artifacts when Maven is in offline mode上网查了下,发现是idea默认是offline模式,将√去掉就好了原创 2020-05-12 10:47:36 · 11886 阅读 · 9 评论 -
同样是final修饰的,为什么String不可变,而StringBuffer可变
如果你有这样的疑问的话,说明你概念混乱了。final修饰类时,被修饰的类不能被继承; finale修饰变量时,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。那为什么说String不可变,而StringBuffer可变呢?String不可变是说String中用一个final 的char数组 private...原创 2020-03-26 14:54:53 · 1960 阅读 · 3 评论 -
深入理解拦截器与过滤器
拦截器和过滤器的区别原创 2020-03-15 21:52:17 · 1107 阅读 · 2 评论 -
Springboot实现过滤器
SpringBoot实现过滤器和SpringMVC上实现没有多大差别,主要的差别就是在过滤器注册上,SpringMVC是通过XML配置文件注册过滤器,而SpringBoot则是通过代码注解的形式进行注册。下面一起看下在SpringBoot上怎么实现Filter过滤器吧。1.Filter过滤器具体实现类@Component@Slf4jpublic class MyTestFilter ...原创 2020-03-15 21:09:21 · 3993 阅读 · 1 评论 -
springboot 拦截器不生效
为了解决横向越权的问题,写了一个demo,高高兴兴的发了篇博客:Springboot 使用拦截器获取header内容,然而还没高兴2秒呢,将demo写到项目中,发现不好使了,拦截器不生效了!要不要这么坑?这下我就不高兴了,就去网上看看大神们是怎么解决这个问题的,大致有这么几种情况:没加@Component或者@Configuration注解 @ComponentScan没扫描到 路径配...原创 2020-03-12 17:22:39 · 5662 阅读 · 9 评论 -
Springboot 实现拦截器获取header内容
背景事情是这样的,最近项目做了个渗透测试,被查到了横向越权的问题,是因为前端传到后端的请求,经过APIportal的时候验证过了token,后端就没有去验证了,现在要加上这一步。分析既然是所有前端的请求都要做校验,那么如果一个接口一个接口的做当然是不可取的,而springmvc的拦截器可以在里面统一的进行处理,很适合我们的需求。实现那么我们就先来实现一下吧。首先实现一个拦截...原创 2020-03-11 17:07:34 · 15676 阅读 · 6 评论 -
Error:(11, 21) java: 程序包java.net.http不存在
在使用JDK11的HTTPclient的时候项目启动报错:这里改成你的jdk版本就ok啦原创 2020-02-13 10:52:19 · 1168 阅读 · 0 评论 -
@PostConstruct 注解详解
最近在项目中发现了一个没见过的注解:@PostConstruct,于是学习了一下,这里做一个记录。在spring项目经常遇到@PostConstruct注解,首先介绍一下它的用途: 被注解的方法,在对象加载完依赖注入后执行。此注解是在Java EE5规范中加入的,在Servlet生命周期中有一定作用,它通常都是一些初始化的操作,但初始化可能依赖于注入的其他组件,所以要等依赖全部加载完再执行。...原创 2020-01-23 23:12:18 · 2940 阅读 · 0 评论 -
Java 注解@Annotation 与 自定义注解
1.注解的由来在引入注解之前,在不同类型的应用程序使用XML作为标准的代码配置机制,程序员们描述其代码的形式尚未标准化,每个人的做法各异:transient关键字、注释、接口等,代码和XML的解耦以及未来对这种解耦应用的维护并不低廉,这显然不是一种优雅的方式,随之而来的JDK5.0引入一种崭新的记录元数据的形式——注解被引入到Java中。 它的作用是修饰编程元素。什么是编程元素呢?例如:包、...原创 2019-12-22 11:54:55 · 711 阅读 · 0 评论 -
利用BeanMap进行对象与Map的相互转换
Javabean与map的转换有很多种方式,比如:1、通过ObjectMapper先将bean转换为json,再将json转换为map,但是这种方法比较绕,且效率很低,经测试,循环转换10000个bean,就需要12秒!!!不推荐使用 2、通过Java反射,获取bean类的属性和值,再转换到map对应的键值对中,这种方法次之,但稍微有点麻烦 3、通过net.sf.cglib.beans.B...转载 2019-06-11 15:34:28 · 302 阅读 · 0 评论 -
@Autowired 和 @Resource 详解
spring中,@Resource和@Autowired都是做bean的注入时使用。使用过程中,有时候@Resource 和 @Autowired可以替换使用;有时,则不可以。下面,根据自己的学习,整理下这两个注解使用中的共同点和不同点,及用法上的不同。共同点@Resource和@Autowired都可以作为注入属性的修饰,在接口仅有单一实现类时,两个注解的修饰效果相同,可...原创 2020-01-04 14:06:54 · 1188 阅读 · 0 评论 -
利用BeanMap进行 对象与Map的相互转换
Javabean与map的转换有很多种方式,比如:1、通过ObjectMapper先将bean转换为json,再将json转换为map,但是这种方法比较绕,且效率很低,经测试,循环转换10000个bean,就需要12秒!!!不推荐使用 2、通过Java反射,获取bean类的属性和值,再转换到map对应的键值对中,这种方法次之,但稍微有点麻烦 3、通过net.sf.cglib.beans.B...原创 2019-12-13 14:50:58 · 1529 阅读 · 0 评论 -
@Valid注解的作用及其与@Validated的区别
1.@Valid注解用于验证注解是否符合要求,直接加在变量user之前,在变量中添加验证信息的要求,当不符合要求时就会在方法中返回message 的错误提示信息。@ApiOperation(value = "Shipping receive completion request from shiphub frontend or app client like OMS", tags = {...原创 2019-11-25 22:43:08 · 5771 阅读 · 0 评论 -
Java中response转换成想要的类型
TmallNrFulfillLogisticsConsignResponse.NrResult result = objectMapper.convertValue(apiResponseDtoFromCarrier.getData(), TmallNrFulfillLogisticsConsignResponse.NrResult.class);原创 2019-10-15 16:15:44 · 1164 阅读 · 0 评论 -
BeanUtils
import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.Method;import java.text.SimpleDateFormat;import java.util.HashMap;import...原创 2019-10-15 15:25:52 · 84 阅读 · 0 评论 -
SpringBoot项目打成war和jar的区别
首先给大家来讲一个我们遇到的一个奇怪的问题:1.我的一个springboot项目,用mvn install打包成jar,换一台有jdk的机器就直接可以用java -jar 项目名.jar的方式运行,没任何问题,为什么这里不需要tomcat也可以运行了?2.然后我打包成war放进tomcat运行,发现端口号变成tomcat默认的8080(我在server.port中设置端口8090)项目名称也...原创 2019-04-25 15:12:06 · 36445 阅读 · 14 评论 -
sping的核心 AOP 和 IOC是通过什么设计模式来实现的
用过spring的朋友都知道spring的强大和高深,都觉得深不可测,其实当你真正花些时间读一读源码就知道它的一些技术实现其实是建立在一些最基本的技术之上而已;例如AOP(面向方面编程)的实现是建立在CGLib提供的类代理和jdk提供的接口代理,IOC(控制反转)的实现建立在工厂模式、Java反射机制和jdk的操作XML的DOM解析方式.下面来对spring源码中的基本技术进行深入...转载 2019-04-19 16:43:36 · 1582 阅读 · 0 评论 -
Java 8 新特性
一、Java 8 Lambda 表达式Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用Lambda 表达式可以使代码变的更加简洁紧凑。1.1 语法lambda 表达式的语法格式如下:(parameters) -> expression或(parameters) -&...转载 2019-04-19 15:44:10 · 92 阅读 · 0 评论 -
java == 的几个题
四道Java基础题,你能对几道?一、==符的使用首先看一段比较有意思的代码Integer a =1000,b=1000;Integer c =100,d=100;System.out.println(a==b);System.out.println(c==d);如果这道题你能得出正确答案,并能了解其中的原理的话。说明你基础还可以。如果你的答案 是 true 和true的...原创 2019-04-19 15:40:47 · 91 阅读 · 0 评论 -
java泛型
一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码:1 public class GenericTest { 2 3 public static void main(String[] args) { 4 List list = new ArrayList(); 5 list.add("qqyumidi"); 6 list.add("corn"); 7 list.a...原创 2019-04-19 15:17:49 · 65 阅读 · 0 评论 -
java中的不定参数
我们在编写方法的过程中,可能会遇见一个方法有不确定参数个数的情况。一般我们会用方法重载来解决问题: //方法重载,解决参数个数不确定问题public void method();public void method(int i);public void method(int i, int j);public void method(int i, int j, int k);但是...原创 2019-04-19 14:58:31 · 1737 阅读 · 0 评论 -
springboot的20道精选面试题
面试了一些人,简历上都说自己熟悉 Spring Boot, 或者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望。下面,我给大家总结下有哪些 Spring Boot 的面试题,这是我经常拿来问面试者的,希望对你有帮助。1、什么是 Spring Boot?Spring Boot 是 Spring 开源组织下的子项目,是 S...转载 2019-04-25 15:40:56 · 208 阅读 · 0 评论 -
分布式锁简单入门以及三种实现方式介绍
很多小伙伴在学习Java的时候,总是感觉Java多线程在实际的业务中很少使用,以至于不会花太多的时间去学习,技术债不断累积!等到了一定程度的时候对于与Java多线程相关的东西就很难理解,今天需要探讨的东西也是一样的和Java多线程相关的!做好准备,马上开车!学过Java多线程的应该都知道什么是锁,没学过的也不用担心,Java中的锁可以简单的理解为多线程情况下访问临界资源的一种线程同步机制。...转载 2019-04-25 16:19:48 · 127 阅读 · 0 评论 -
Java8特性详解 lambda表达式
转自:http://blog.csdn.net/ioriogami/article/details/127821411. 什么是λ表达式λ表达式本质上是一个匿名方法。让我们来看下面这个例子: public int add(int x, int y) { return x + y; }转成λ表达式后是这个样子: (int x, i...转载 2019-04-30 16:03:31 · 153 阅读 · 0 评论 -
java静态方法和非静态方法的区别
1.在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。例如:public class Person { public static String getType(){ return "人类"; } public...原创 2019-05-10 17:30:19 · 491 阅读 · 0 评论 -
后端如何解决跨域问题
对于跨域,相信同学们都有所了解。前端的跨域的若干种方式,大家也都知道,什么 JSONP,iframe+domain 等等。但是我们今天的主题,不是前端跨域,而是后端跨域。一旦提及到跨域,就会想到同源策略,那我们就先来回顾跨域和同源策略。什么是跨域请求首先,我们要了解什么是跨域请求。简单来说,当一台服务器资源从另一台服务器(不同 的域名或者端口)请求一个资源或者接口,就会发起一个跨域 ...原创 2019-08-28 11:19:00 · 33389 阅读 · 5 评论 -
Jackson解析嵌套类问题(MismatchedInputException)
具体报错如下:问题描述:Jackson解析嵌套类问题调用接口返回json格式的数据,使用Jackson解析参数转换成对象:@Data@JsonIgnoreProperties(ignoreUnknown = true)public class PixlIdDto implements Serializable { @JsonIgnore private ...原创 2019-09-09 17:55:43 · 19231 阅读 · 1 评论 -
JavaBean转map
public static Map<String,Object> bean2map(Object bean) throws Exception{ Map<String,Object> map = new HashMap<>(); //获取JavaBean的描述器 BeanInfo b = Introspector...翻译 2019-09-27 15:03:03 · 146 阅读 · 0 评论 -
关于rsa加解密的内容超长的问题
转自:https://blog.csdn.net/taoxin52/article/details/53782470一. 现象:有一段老代码用来加密的,但是在使用key A的时候,抛出了异常:javax.crypto.IllegalBlockSizeException: Data must not be longer than 117 bytes。老代码已经做了分段的加密,应该是已...转载 2019-04-22 14:38:56 · 3058 阅读 · 0 评论