- 博客(88)
- 资源 (2)
- 收藏
- 关注
转载 java内存溢出分析工具:jmap使用实战
在一次解决系统tomcat老是内存撑到头,然后崩溃的问题时,使用到了jmap。1 使用命令在环境是linux+jdk1.5以上,这个工具是自带的,路径在JDK_HOME/bin/下jmap -histo pid>a.log2 输出结果摘要Size Count Class description----------------------------------
2016-12-08 10:27:42
2032
转载 内存溢出的几种可能
java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小、程序不严密,产生了过多的垃圾。导致OutOfMemoryError异常的常见原因有以下几种:内存中加载的数据量过于庞大,如一次从数据库取出过多数据;集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;代码中存在死循环或循环产生过多重复
2016-12-08 10:26:54
910
转载 spring BeanPostProcessor InitializingBean相关
public static void main(String[] args) throws Exception { ApplicationContext ac = new ClassPathXmlApplicationContext( "applicationContext.xml"); TestAware test = (TestAware) ac.getBean("testAw
2016-11-02 10:27:31
686
原创 spring BeanFactoryAWare应用
实现aware接口的bean被spring实例化后可以获取相应的资源,实现BeanFactoryAWare接口可以获取BeanFactory的实例,示例:实现BeanFactoryAWare接口package com.test.springmvc.test;import org.springframework.beans.BeansException;import org.spr
2016-11-01 22:17:45
659
原创 通过反射获取java类的实例
package com.test.springmvc.test;import org.springframework.beans.BeanUtils;import org.springframework.util.ClassUtils;public class MainTest { public static void main(String[] args) throws Excep
2016-10-31 09:20:57
485
原创 property文件的操作
1.读取property文件:public static void main(String[] args) throws IOException { // 第一中方法 Properties pro = PropertiesLoaderUtils .loadAllProperties("property/test.properties"); System.out.printl
2016-10-31 09:04:01
561
原创 stringutils功能
1.转化文件目录中的“//”为“/”StringUtils.cleanPath("E:\\java文档\\test.txt")2.判断String类型的数据是否为null,""," ",如果是,返回false,否则返回trueStringUtils源码:public static boolean hasText(String str) { return hasText((Cha
2016-10-30 10:34:26
1990
原创 spring加载资源
spring中通过Resource去获取对应的资源,Resource继承了InputStreamSource,查看InputStreamSource源码发现只有一个InputStream getInputStream(),而Resource增加了 /** * Determine whether this resource actually exists in physical form.
2016-10-29 11:16:00
377
原创 spring加载bean
spring中加载bean是通过DefaultListableBeanFactory,我们可以通过配置文件,DefaultListableBeanFactory回去根据配置去读取配置加载xml文件,然后可以直接去通过注解获取对应的实例,我们想要获取对应的bean实例,也可以通过:@Test @SuppressWarnings("unchecked") public void testCla
2016-10-29 10:06:02
255
转载 Spring AOP中JoinPoint的表达式定义描述
在使用Spring AOP的过程中,经常需要使用到各种不同的JoinPoint的定义,Spring AOP遵循了AspectJ形式的JoinPoint的定义形式,但是Spring目前只支持部分的AspectJ形式的Joinpoint的定义,同时Spring AOP只支持方法级别的JoinPoint。以下是我在学习Spring开发者手册时总结的一些JoinPoint的定义,不完整,欢迎补充。
2016-10-17 10:23:38
876
原创 org.junit 注解
org.junit对应的@Before @BeforeClass @After @AfterClass注解使用@Test注解时,需要先初始化一个实例额,每次调用都是重新初始化一个实例;所以@BeforeClass,@AfterClass需要是static的方法,因为在初始化前,实例没有生成。@BeforeClass在整个类执行之前,且只执行一次;@AfterClass在
2016-10-14 17:51:43
975
原创 时间格式化
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import org.apache.commons.lang.time.DateForma
2016-08-23 15:09:55
139
原创 日志查看
查看某段时间的日志:cat finance-one-batch.log |egrep '2016-08-11 18:[0-2][0-57]|2016-08-11 18:30'tail -n 10 test.log 查询日志尾部最后10行的日志;tail -n +10 test.log 查询10行之后的所有日志;head -n 10 test.l
2016-08-16 15:11:52
321
原创 邮件的发送
import java.io.File;import java.io.UnsupportedEncodingException;import java.util.Date;import java.util.Enumeration;import java.util.List;import java.util.Properties;import java.util.Vector;imp
2016-08-11 17:49:03
300
原创 采用@Aspect进行拦截操作
第一步,在配置里面进行配置:<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns="http://www.springframework.org/schema/beans" xmlns:context=
2016-08-10 17:05:49
2812
原创 解析定时任务配置的时间
public class CronExpressionEx extends CronExpression { /** * serialVersionUID */ private static final long serialVersionUID = 5074132114460101284L; public static final Intege
2016-08-10 15:35:00
561
原创 sftp文件的上传与下载
import java.io.File;import java.io.FileNotFoundException;import java.sql.SQLException;import java.util.ArrayList;import java.util.Collection;import java.util.Date;import java.util.Enumeration;i
2016-08-04 16:26:37
2372
原创 文件zip压缩与解压
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.zip.ZipEntry;import java.util.zip.ZipFi
2016-08-04 15:56:37
1019
转载 使用POP3协议接收并解析电子邮件(全)
package org.yangxin.study.jm; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream
2016-08-02 11:55:23
4262
转载 httpclient客户端与服务端
本文偏重使用,简单讲述httpclient,其实在网络编程中,基于Java的实现几乎都是包装了socket的通信,然后来模拟各种各样的协议;httpclient其实就是模拟浏览器发起想服务器端的请求,而这种更加类似于JS的请求或页面的POST、GET,不过这种数据的返回一般需要得到有意义的数据,才方便做其他的交互,否则得到一个页面结果,全是标签了,毕竟不是浏览器,所以我们用httpclient更多
2016-07-21 17:20:43
4860
原创 在java中启动sh脚本
1.先在对应目录下创建一个sh的脚本文件:可以进入linux,输入 nano test.sh 会在当前目录下生成一个test.sh文件可以在该文件中写入shell脚本的内容,如:#!/bin/shecho 'Hello World!'然后ctrl+x 选择Y 保存文件。2.chmod 777 test.sh给该文件赋予操作权利3../test
2016-06-13 17:11:30
2871
1
原创 引入maven工程
第一步,从svn上裆下一份工程可以看到,工程中包含pom.xml文件,所以是一个maven工程现在我们要把该工程转成正常的maven工程a。打开cmd命令:进入当前工程目录上面的命令执行成功后,可以看到我们的maven工程已经变为正常的工程了但是,如果我们直接在eclipse中引入该项目,会报出:Unsupported IClasspat
2016-05-11 14:30:30
330
转载 Apache poi操作doc,docx,xsl,xslx文件
为了对文件内容进行索引,必须先抽取出文件中文本。我们使用Apache POI提供的API来抽取office文件(DOC, DOCX, XLS, XLSX, PPT, PPTX)中的文本。很多人在使用开源API的时候都很纳闷,Javadocs那么大,我要的API在到底在哪个类里边。即使找到了也不明白这么多构造函数该用哪个创建想要的对象。本文给大家讲一下POI中我们该如何创建抽取(DOC, DOC
2016-04-21 17:00:38
2077
原创 Apache poi excel调用
HSSF 提供读写Microsoft Excel格式档案的功能。 XSSF 提供读写Microsoft Excel OOXML格式档案的功能。 HWPF 提供读写Microsoft Word格式档案的功能。 HSLF 提供读写Microsoft PowerPoint格式档案的功能。 HDGF 提供读写Microsoft Visio格式档案的功能。
2016-04-21 14:17:41
294
转载 探索equals()和hashCode()方法
equals()和hashCode()区别?-------------------------------------------------equals():反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值。hashCode():计算出对象实例的哈希码,并返回哈希码,又称为散列函数。根类Object的hashCode()方法的计算
2016-04-05 10:57:41
200
转载 redis window下安装
先说下安装吧!感觉这东西跟mongodb差不多,安装和布置挺简单,下载地址:https://github.com/dmajkic/redis/downloads 下载下来的包里有两个,一个是32位的,一个是64位的。根据自己的实情情况选择,我的是32bit,把这个文件夹复制到其它地方,比如D:\redis 目录下。打开一个cmd窗口 使用cd命令切换目录到d:\redis 运行
2016-03-31 14:07:51
621
原创 冒泡,选择算法
1.冒泡法:相邻元素进行比较,如果前面元素大于后面元素,位置互换,每比较一次,可以把最高的往后面移动public static void main(String[] args) { int[] a = {1,5,3,9,6,4,2,7,8}; int n = a.length; for(int i=n-1;i>1;i--){
2016-03-23 11:11:55
209
原创 冒泡,选择,插入排序算法
1.冒泡法:相邻元素进行比较,如果前面元素大于后面元素,位置互换,每比较一次,可以把最高的往后面移动public static void main(String[] args) { int[] a = {1,5,3,9,6,4,2,7,8}; int n = a.length; for(int i=n-1;i>1;i--){
2016-03-22 15:52:42
80
转载 BlockingQueue总结
在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeue接口)。 使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略,这个实现起来就非常麻烦。但是有了阻塞队列就不一样了,它会对当前线程产生阻塞,比如一个线程
2016-03-22 15:33:46
688
转载 Quartz任务调度快速入门
了解Quartz体系结构Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器、任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的这些核心概念进行描述:●Job:是一个接口,只有一个方法void execute(JobExecutionContext context),开发者实现该接口定义运行任务,JobExecutionContext类提供了调度上下文的各
2016-03-22 11:29:26
200
转载 几种任务调度的 Java 实现方法与比较
前言任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。本文由浅入深介绍四种任务调度的 Java 实现:TimerScheduledExecutor开源工具包 Quartz开源工具包 JCronTab此外,为结合实现复杂的任务调度,本文还将介绍 Calendar 的一些使用方法。回页首Timer相信大家都已经
2016-03-22 11:27:50
418
1
转载 Executor框架与线程池
Executor框架简介 在Java 5之后,并发编程引入了一堆新的启动、调度和管理线程的API。Executor框架便是Java 5中引入的,其内部使用了线程池机制,它在java.util.cocurrent 包下,通过该框架来控制线程的启动、执行和关闭,可以简化并发编程的操作。因此,在Java 5之后,通过Executor来启动线程比使用Thread的start方法更好,除了
2016-03-22 11:13:41
259
原创 synchronized与Lock
synchronized特性:a.采用synchronized修饰符实现的同步机制叫做互斥锁机制,它所获得的锁叫做互斥锁。每个对象的锁只能分配给一个线程,因此叫做互斥锁b.类的每个实例都有自己的对象级别锁。当一个线程访问实例对象中的synchronized同步代码块或同步方法时,该线程便获取了该实例的对象级别锁,其他线程这时如果要访问synchronized同步代码块或同步方法,便需要
2016-03-22 10:38:59
853
转载 并发线程
1.实现多线程的两种方法:继承thread接口,实现Runnable接口实现Runnable接口相比继承thread接口优势:a.可以避免由于Java的单继承特性而带来的局限;b.增强程序的健壮性,代码能够被多个线程共享,代码与数据是独立的;c.适合多个相同程序代码的线程区处理同一资源的情况。实例代码:public class MyThread extend
2016-03-21 17:25:48
273
转载 java集合
java集合的主要分为三种类型:Set(集)List(列表)Map(映射)要深入理解集合首先要了解下我们熟悉的数组:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。简
2016-03-14 17:52:34
280
转载 Java栈与堆
Java栈与堆 1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告
2016-03-14 17:30:35
233
原创 自定义注解实例
1.定义一个全局注解:/** * 要求登录 * 要求登录注解 * */@Target({ ElementType.METHOD, ElementType.TYPE })@Retention(RetentionPolicy.RUNTIME)@Documented@Mappingpublic @interface NeedLogin { boolean value();
2016-03-14 13:44:30
339
转载 FreeMarker自定义TemplateDirectiveModel
在采用FreeMarker做前台视图模板的情况下,我们可以通过标签和自定义宏来解决很多重复性工作。一个简单的FreeMarker宏:[html] view plain copy#macro sayHello name=""> hello ${name} #macro> 然后通过如下的形式调用:
2016-03-14 10:33:42
1372
转载 注解(Annotation)自定义注解入门
元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target, 2.@Retention, 3.@Documented, 4.@Inherited 这些类型和它们所支持的类在java.lang
2016-03-14 10:08:31
370
原创 spring cache 与redis缓存整合
spring cache,基本能够满足一般应用对缓存的需求,但现实总是很复杂,当你的用户量上去或者性能跟不上,总需要进行扩展,这个时候你或许对其提供的内存缓存不满意了,因为其不支持高可用性,也不具备持久化数据能力,这个时候,你就需要自定义你的缓存方案了,还好,spring 也想到了这一点。本篇文章采用spring cache与redis进行整合,实现自己想要的缓存。我们先配置redis:
2016-03-10 11:12:31
15827
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人