
Java
文章平均质量分 56
不知道取啥昵称
这个作者很懒,什么都没留下…
展开
-
Linux服务器初始化堆内存大小查询
生产环境中经常会遇到Java.lang.OutOfMemoryError:Javaheap space很多程序用jar包启动的时候没有设置堆栈大小,那么怎么查询默认的堆栈大小呢?一、首先堆栈大小的配置启动参数初始堆大小 -Xms32m最大堆大小 -Xmx512m二、查询服务器初始堆栈大小(本地8G内存为例)在Windows里:java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize Thr...原创 2022-05-07 09:54:28 · 2825 阅读 · 0 评论 -
Linux中JAVA服务器CPU占用过高(分析解决方法)
当发现生产环境CPU使用非常高,并且居高不下,导致服务器报警,需要快速定位,分析是什么地方占用CPU过高,推荐步骤如下:1. 首先服务器查看占用cpu高的进程是哪一个,查出进程号top2.查询该进程中具体是哪个线程占用CPU高-- 查询进程里最高线程(298000 为进程号)ps -mp 298000 -o THREAD,tid,time3. 打印该线程日志信息,分析该日志信息能否得到想要的信息-- 打印最高线程号 前 298000为进程号,后面299114为线程号j.原创 2021-03-26 11:09:06 · 3232 阅读 · 0 评论 -
Linux中JAVA服务器内存占用高(分析解决方法)
当发现生产环境内存使用非常高,并且居高不下,需要快速定位,分析是什么地方占用内存过高,推荐步骤如下:1. 首先服务器查看占用内存高的进程是哪一个,查出进程号top2. 然后通过下面命令导出堆栈文件-- 程序内存高dump文件(文件名称必须以 .hprof 后缀结尾) 进程号jmap -dump:format=b,file=/root/dd1.hprof 452615注意:只需要改上面的文件名称和对应的进程号即可。 文件必须以 .hprof 后缀结尾。3. 通过下面网..原创 2021-03-26 10:52:56 · 8623 阅读 · 0 评论 -
io.lettuce.core.RedisCommandTimeoutException: Command timed out 解决办法
Springboot 集成 redis 项目,引入包: 默认为 lettuce 客户端连接<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis<...原创 2019-12-28 17:51:06 · 7327 阅读 · 0 评论 -
java反射--Field
反射中有个属性类Field,其提供关于属性的操作,下面通过一个实例来展示Field的运用!首先:需要弄清楚 getFields()和getDeclaredFields()获取属性字段的区别:getFields():获取该类中的public属性,包括从父类中继承的public属性字段。仅限public修饰的属性。getDeclaredFields():原创 2015-10-28 17:50:50 · 536 阅读 · 0 评论 -
URL下载文件服务器文件
前台页面请求:window.location.href = "/download/download?fileUrl=" + data.contractUrl + "&originName=" + data.originName;后台下载处理:import com.alibaba.dubbo.common.utils.StringUtils;import org.slf原创 2016-08-19 17:30:18 · 4633 阅读 · 0 评论 -
BlockingQueue
BlockingQueue转载 2016-06-29 16:41:08 · 420 阅读 · 0 评论 -
Java并发-Fork/Join框架
Java并发-Fork/Join框架原创 2016-05-15 23:19:04 · 431 阅读 · 0 评论 -
Java并发-执行器Callable,Future
执行器:用于启动并控制线程的执行!原创 2016-05-15 22:20:37 · 579 阅读 · 0 评论 -
Java并发-同步器CyclicBarrier,Exchanger,Phaser
这篇主要模拟其他三个同步器:循环屏障(CyclicBarrier)、交换器(Exchanger)、Phaser原创 2016-05-15 22:01:47 · 1148 阅读 · 0 评论 -
Java并发-同步器Semaphore,CountDownLatch
Java并发-同步器Semaphore,CountDownLatch原创 2016-05-15 21:21:40 · 870 阅读 · 0 评论 -
重写toString方法-日志
relectionToString()将利用Java Refelection机制显示类实例的所有属性的信息.原创 2016-08-25 17:01:24 · 1497 阅读 · 0 评论 -
Netty/NIO实践
Netty NIO 实践原创 2016-09-07 14:08:46 · 1423 阅读 · 0 评论 -
利用fastjson和反射实现为VO属性赋值
应用场景:外围系统发来的请求,传递的json形式的string数据,即服务端要解析,落地!!!package com.xx.epay.portal.converter;import com.alibaba.fastjson.JSON;import com.xx.xx.xx.pojo.PayOrderVO;import java.lang.reflect.Field;im原创 2016-09-21 11:14:23 · 2659 阅读 · 0 评论 -
Netty/NIO 概念
何为非阻塞?下面有个隐喻:一辆从 A 开往 B 的公共汽车上,路上有很多点可能会有人下车。司机不知道哪些点会有哪些人会下车,对于需要下车的人,如何处理更好?1. 司机过程中定时询问每个乘客是否到达目的地,若有人说到了,那么司机停车,乘客下车。 ( 类似阻塞式 )2. 每个人告诉售票员自己的目的地,然后睡觉,司机只和售票员交互,到了某个点由售票员通知乘客下车。 ( 类原创 2016-09-02 17:06:32 · 329 阅读 · 0 评论 -
SHA1WithRSA 数字签名
在做支付业务的时候,需要验证信息的正确性,所以选取用到了数字签名,精简如下:私钥签名,公钥验证签名.业务平台(信息传送端):私钥 用于对传送数据进行签名(sign)支付平台(信息接收端):公钥 用于验证签名业务平台:// 参数生成String jsonString = "需传递的数据,请求数据";String paySign = RSA.sign原创 2017-03-17 18:27:01 · 7883 阅读 · 0 评论 -
RSA非对称加密
RSA算法原创 2017-03-09 10:28:08 · 560 阅读 · 0 评论 -
图片验证码
图片验证码原创 2017-03-21 19:57:44 · 710 阅读 · 0 评论 -
自定义注解Annotation
自定义注解 annotation原创 2017-06-02 17:13:36 · 654 阅读 · 0 评论 -
Redis之数据结构HashMap详细使用
一般大家使用redis的string数据结构比较多,在想使用其他数据结构,但是感觉操作复杂的现象身边很普遍,为简化大家操作redis hashmap,特整理此文,方便大家使用。一、Redis数据结构hashmap,RedisDesktopManager使用如下:二、 通过代码 Java端使用增:Map<String, UserRankDto>...原创 2019-04-25 17:38:05 · 25231 阅读 · 0 评论 -
Linux下JDK.Eclipse.Tomcat安装
Linux下JDK的安装与卸载,以及安装过程成出现的问题!原创 2015-12-05 18:52:45 · 717 阅读 · 1 评论 -
Java Set集合去重机制
关于java里面的集合,大家经常利用到Set集合没有重复数据的特性,来进行数据的去重,那么去重的原理是怎么样的呢?原创 2016-03-21 15:38:50 · 19346 阅读 · 7 评论 -
java反射-Method
除了Field外,还有Method ,其提供对反射类中方法的各种操作:需要弄清楚 getMethods()和getDeclaredMethods()获取类中方法的使用区别:getMethods():获取该类中的public方法,包括从父类中继承的public方法。仅限public修饰的方法。【此处要时刻记住从Object超父类中继承的公有public方法】get原创 2015-10-29 16:27:21 · 452 阅读 · 0 评论 -
java反射运用举例-junit测试私有方法
记得以前刚接触junit那会,对于公有方法的测试运用的很是流畅,并且私有方法也是在这些公有方法中调用,都会测试覆盖到。由于是新建的类,新建的方法,造数据一步一步的覆盖跑下去,确实只要有耐心,都可以搞定。但是随着项目的逐渐深入,由于人员成本,时间成本等等问题,测试类的维护不知道从哪一个版本,哪一位开发人员修改了业务逻辑开始,已经问题百出,一线飘红了,但是项目一直跑原创 2015-10-28 16:29:57 · 4973 阅读 · 0 评论 -
java泛型
本文转自这里一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(String[] args) { 4 List list = new ArrayList(); 5 list.add("转载 2015-10-27 00:02:46 · 319 阅读 · 0 评论 -
Collections的自定义排序sort Comparator
下面的实例是把map中的Value值根据中文名的拼音字母升序排序!该类型自定义排序在项目中经常用到,比如下拉框中的值(比如国家,中国放在首位)等等需要按照一定的规则显示。以下是一个实例,其他类型的规则排序可以相应的在此基础上进行拓展!import java.text.Collator;import java.util.ArrayList;原创 2015-09-24 14:51:57 · 2241 阅读 · 0 评论 -
Java反射机制
本文转自这里Java的反射机制是Java特性之一,反射机制是构建框架技术的基础所在。灵活掌握Java反射机制,对大家以后学习框架技术有很大的帮助。那么什么是Java的反射呢? 大家都知道,要让Java程序能够运行,那么就得让Java类要被Java虚拟机加载。Java类如果不被Java虚拟机加载,是不能正常运行的。现在我们运行的所有的程序都是在编译期的转载 2015-10-26 15:28:05 · 327 阅读 · 0 评论 -
[RandomUtil]随机编码生成通用类
package com.common;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.util.Arrays;import java.util.Collections;import原创 2014-10-18 13:53:43 · 822 阅读 · 0 评论 -
关于异常处理语句catch和finally的执行先后顺序
刚刚看到try catch finally语句,多思考了一下,发现他们的执行顺序心里还有点模糊,所以特地测试了一下,以下是测试结果总结:1. 当catch中没有return返回语句是,try catch finally是按从上到下的顺序依次执行!代码:public static void main(String[] args) {原创 2015-09-07 19:38:18 · 3733 阅读 · 1 评论 -
关于java中的枚举enum
此前对于枚举enum的用法一直不太清晰,今天具体的研究了一下,特此记录下来!!!关于常量的定义基本格式如下:public class Department { public final static Sring DEPARTMENT_1 = "开发部"; public final static Sring DEPARTMENT原创 2015-09-01 16:26:17 · 390 阅读 · 0 评论 -
数组与list之间的相互转换
细节还是习惯性的记录下来吧,不然每次都去查API挺耗时间的!!一、数组转成list第一种方式:// 初始化数组String[] arr = new String[] { "1", "2", "3" };// 待转换成的listList list = new ArrayList();// 通过Collections转换Collections.addAll原创 2015-12-29 11:24:42 · 4414 阅读 · 2 评论 -
java static关键字
通常,我们创建类时会指出那个类的对象的外观与行为。除非用new 创建那个类的一个对象,否则实际上并未得到任何东西。只有执行了new 后,才会正式生成数据存储空间,并可使用相应的方法。但是有两种特殊的情形,上面的方法并不管用:1. 只想用一个存储区域来保存一个特定的数据——无论要创建多少个对象,甚至根本不创建对象。2. 我们需要一个特殊的方法,原创 2015-09-15 15:01:25 · 341 阅读 · 0 评论 -
数值计算精度问题(double,float,Bigdecimal)
java提供了一种能够精确计算小数的Bigdecimal类,通过构造方法new Bigdecimal(String)来得到精确的结果!原创 2015-12-16 10:41:34 · 1302 阅读 · 0 评论 -
多线程_生产者与消费者
创建一个线程有以下两种方式: ①线程类继承Thread,重写run()方法,在run()方法中完成此线程所要完成的工作,直接创建线程类的对象,然后调用start()方法启动线程,默认调用run()方法。 ②线程类实现Runnable接口,实现run()方法,在run()方法中完成此线程所要完成的工作;创建线程的时候要注意: 首先创建实现Runnable接口的线程类的对象t,然后通过Thread tt = new Thread(t);来创建线程tt。也是通过调用start()方原创 2015-11-28 23:35:10 · 3230 阅读 · 0 评论 -
ActiveMQ
JMS是J2EE体系标准的一部分,规定了应用之间同步、异步进行消息发送、接受的相关规范。ActiveMQ是实现了JMS标准的消息服务器。原创 2016-02-23 11:10:03 · 1765 阅读 · 0 评论 -
Java异常分类
下面这张类图对于异常的结构一目了然!对于Exception下的两类异常:①. Checked异常(非运行时异常)只有java语言提供了Checked异常,Java认为Checked异常都是可以被处理的异常,所以Java程序必须显式处理Checked异常。如果程序没有处理Checked异常,该程序在编译时就会发生错误无法编译。对Checked异常处理方法有两种原创 2016-02-26 18:42:49 · 427 阅读 · 0 评论 -
自定义运行时异常设计(RuntimeException)
RuntimeException原创 2016-04-05 15:04:04 · 10085 阅读 · 1 评论 -
JSON与java对象之间的相互转换
JSON与java对象之间的相互转换原创 2016-03-22 16:02:38 · 5959 阅读 · 0 评论 -
ActiveMQ消息机制[QUEUE/TOPIC]实例
ActiveMQ消息机制[QUEUE/TOPIC]实例原创 2016-02-28 18:49:06 · 1891 阅读 · 1 评论 -
线程池
回顾:对于线程,有两种实现方式: 第一种是继承Thread类,重写run()方法;[其中Thread类其实也是实现了Runnable接口] 第二种是实现Runnable接口,实现run()方法!当用户请求来了的时候,就创建一个线程,这样使用起来确实挺方便,那么问题来了,当请求并发数量很大的时候呢?光是创建和销毁这些线程就足以把内存消耗光而宕机了!如果并发的线原创 2016-02-19 17:38:13 · 890 阅读 · 2 评论