
java
king_qc
技术海洋上飘荡的小舟
展开
-
Java内存过高问题排查
1、使用命令:top查看当前进程的状态2、从上图可以看到PID:916的java进程占用内存较大。定位线程问题(通过命令查看PID 为25894 进程的线程情况),命令:#ps p 916 -L -o pcpu,pmem,pid,tid,time,tname,cmd由此可以看到这PID:916的进程产生了很多线程。接下来就可以通过jstack查看内存使用的堆栈。3、查看内存使用的堆栈:在这里我们挑选了TID=934的线程进行分析,首先需要将934这个id转换为16进制。需输入...转载 2020-08-06 16:57:42 · 734 阅读 · 0 评论 -
雪花算法(SnowFlake)Java实现
算法原理SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图:由于在Java中64bit的整数是long类型,所以在Java中SnowFlake算法生成的id就是long来存储的。SnowFlake可以保证:所有生成的id按时间趋势递增 整个分布式系统内不会产生重复id(因为有datacenterId和machineId来做区分)...原创 2019-09-11 15:59:37 · 1322 阅读 · 0 评论 -
使用Eclipse Memory Analyzer分析内存溢出
前言在平时开发、测试过程中、甚至是生产环境中,有时会遇到OutOfMemoryError,Java堆溢出了,这表明程序有严重的问题。我们需要找造成OutOfMemoryError原因。一般有两种情况:1、内存泄露,对象已经死了,无法通过垃圾收集器进行自动回收,通过找出泄露的代码位置和原因,才好确定解决方案;2、内存溢出,内存中的对象都还必须存活着,这说明Java堆分配空间不足,检查堆设置大...转载 2019-05-16 20:29:15 · 921 阅读 · 0 评论 -
CORS跨域
跨域资源共享(CORS) 是一种机制,它使用额外的HTTP头来告诉浏览器 让运行在一个 origin (domain) 上的Web应用被准许访问来自不同源服务器上的指定的资源。当一个资源从与该资源本身所在的服务器不同的域、协议或端口请求一个资源时,资源会发起一个跨域 HTTP 请求。什么时候会出现跨域?URL(A) URL(B) 说明 是否允许跨域...转载 2019-05-16 20:22:39 · 575 阅读 · 0 评论 -
使用FastJson注解@JSONField将json转为bean实体类
项目中发现接口接收到的json串字段带有 "_ ",这样子就不能直接将实体类的字段名定义json串中的字段名,因为不符合编码规范,会有sonar问题。所以me果断使用了FastJson中的@JSONField注解,将json中的字段名转为自定义的字段名,使用时切记要将注解写在set,get方法上。@JSONField(name="字段名") 写在set方法上表示将json中对应的字段值传入se...原创 2019-04-26 18:04:21 · 3506 阅读 · 0 评论 -
Excel导入导出工具类
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.1.2</version></dependency>Excel导出: pac原创 2018-12-18 21:31:34 · 285 阅读 · 0 评论 -
java8 Map转String工具类
public class MapToStringUtil { /** * Map转String工具 * @param map * @param separator 分隔符 * @param kvSplice 键值拼接符 * @return */ public static String mapToString(Map&...原创 2018-09-30 11:24:04 · 6667 阅读 · 0 评论 -
Error during WebSocket handshake: Unexpected response code:404
1.Tomcat7.X以上才支持WebSocket,使用时有些注解8.X才支持(例如:@ServerEndpoint),要升级为8.X。2.Tomcat有自带WebSocket所需jar包,无需在项目中添加jar,需要将项目中添加的jar删除(如:websocket-api.jar)。3.如若使用NGINX代理,需加上如下配置(主要是location /webSocketTest {}):...原创 2018-09-26 15:00:03 · 5849 阅读 · 1 评论 -
WSS、SSL 和 https 之间的关系
SSLSSL(Secure Socket Layer,安全套接层) 简单来说是一种加密技术, 通过它, 我们可以在通信的双方上建立一个安全的通信链路, 因此数据交互的双方可以安全地通信, 而不需要担心数据被窃取. 关于 SSL 的深入知识, 可以看这篇文章: SSL/TLS协议运行机制的概述WSSWSS 是 Web Socket Secure 的简称, 它是 WebSocket 的加密...原创 2018-09-26 14:34:38 · 22116 阅读 · 4 评论 -
WebSocket 结合 Nginx 实现域名及 WSS 协议访问
简单了解一下 WebSocket现在,很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。在这种情况下,HT...转载 2018-09-26 14:31:46 · 3459 阅读 · 0 评论 -
Validation异常:No validator could be found for constraint '.....' validating type 'java.lang.Integer'.
javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.Pattern' validating type 'java.lang.Integer'. Check configuration for '...原创 2018-08-03 17:00:07 · 97983 阅读 · 25 评论 -
JAVA 通过Hibernate-Validation进行参数验证
1.maven中引入hibernate-validator对应的jar:<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>4.3.1.Final&l...原创 2018-08-03 16:26:12 · 280 阅读 · 0 评论