![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 69
Edison徐
非专业不著名IT工匠
展开
-
eclipse remote debug
之前一直在用eclipse的remote debug,今天遇到个问题,在Linux/Sloaries下面配置JVM的-xdebug失败了。解决之后特地来记录下: 假定要监听16000端口作为远程debug端口,那么 win: .bat中加入 set JAVA_OPTS=%JAVA_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,ad原创 2013-07-25 12:20:40 · 980 阅读 · 0 评论 -
jps、jinfo、jstat、jstack、jmap、jconsole等命令简介
JDK提供了几个很实用的工具,如下:jinfo:观察运行中的java程序的运行环境参数:参数包括Java System属性和JVM命令行参数,java class path等信息。命令格式:jinfo 进程pidjps:用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。命令格式:jps 或 jps 远程服务ip地址 (默认端口1099)j转载 2013-09-09 10:55:15 · 1298 阅读 · 0 评论 -
RestEasy入门小程序
REST(Representational State Transfer)是 Roy Fielding 提出的一个描述互联系统架构风格的名词。为什么称为 REST?Web 本质上由各种各样的资源组成,资源由 URI 唯一标识。浏览器(或者任何其它类似于浏览器的应用程序)将展示出该资源的一种表现方式,或者一种表现状态。如果用户在该页面中定向到指向其它资源的链接,则将访问该资源,并表现出它的状态。这意原创 2013-09-11 12:52:55 · 2290 阅读 · 3 评论 -
【解惑】深入jar包:从jar包中读取资源文件
转自:http://hxraid.iteye.com/blog/483115我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等)。在单独运行的时候这些简单的处理当然不会有问题。但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了。看看下面的代码:Java代码 //源代码1: package edu.h原创 2013-09-04 17:30:09 · 673 阅读 · 0 评论 -
为什么外键最好加上索引?
今天遇到一个数据库DeadLock的问题,与同事讨论,一个同事忽然问了一句:“为什么外键没有索引会导致deadlock“?为了回答这个问题,我直接翻了Oracle文档,里面两张图画的非常直接。文章地址:http://docs.oracle.com/cd/B19306_01/server.102/b14220/data_int.htm#sthref3108Unindexe原创 2013-09-05 14:52:13 · 3068 阅读 · 0 评论 -
java 线程死锁的检测
看到一篇不错的死锁检测描述,有例子,我喜欢。转过来。转自:http://babyduncan.iteye.com/blog/1880231例子程序: Java代码 import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService;转载 2013-09-13 14:17:33 · 2494 阅读 · 0 评论 -
Java 占用CPU使用率很高的分析
前几天在测试服务器上发现Java进程的CPU使用率暴高,为了分析解决该问题,把过程记录如下:1. 先找到Java的进程号Linux下:用top命令查看所有进程,可以明显看到Java的,因为CPU占用率很高被排在前面。比如,Windows下:打开任务管理器,然后点击 "查看" 菜单,然后点击 "选择列",把pid勾上,然后就可以在任务管理器里面看到所有进程的pid原创 2013-09-22 10:44:39 · 16620 阅读 · 0 评论 -
一个GC频繁的Case
前两天碰到一个很诡异的GC频繁的现象,走了不少弯路,N种方法查找后才终于查明原因了,在这篇blog中记录下,以便以后碰到这类问题时能更快的解决。前两天一位同学找到我,说有个应用在启动后就一直Full GC,拿到GC log先看了下,确实是非常的诡异,截取的部分log如下:2011-07-16T14:55:57.733+0800: 174042.063: [Full GC [PSYoun转载 2013-09-23 11:50:03 · 8003 阅读 · 2 评论 -
Java7 HotSpot Verbose GC Tutorial
原文(需翻墙):http://javaeesupportpatterns.blogspot.com/2011/10/verbosegc-output-tutorial-java-7.htmlVerbose output for the Java VM and garbage collection process has been around for quite a long time but转载 2013-09-23 11:58:17 · 1299 阅读 · 0 评论 -
Parallel Processing and Multi-Core Utilization with Java
原文地址:http://embarcaderos.net/2011/01/23/parallel-processing-and-multi-core-utilization-with-java/In order to harvest the full power of a multi-core processor the software application must be abl转载 2013-09-24 14:19:00 · 1703 阅读 · 0 评论 -
Netty入门
写在前面:本来想自己写个Netty入门的,但是发现官网的入门例子写的太特么好了,连例子都直接提供下载,就失去动力鸟。然后对于Netty的特性和框架,无意中看到一位仁兄在11年的总结,虽然部分现在已经不适用了,但总体来讲写的非常地道。直接转过来。原文地址:http://blog.sina.com.cn/s/blog_3fe961ae01011oob.html1. 简介Java转载 2013-10-10 11:18:40 · 2832 阅读 · 0 评论 -
转载一篇总结的非常好的内存分析文章
Java本身提供了多种丰富的方法和工具来帮助开发人员查看和分析GC及JVM内存的状况,同时开源界和商业界也有一些工具可用于查看、分析GC及JVM内存的状况。通过这些分析,可以排查程序中内存泄露的问题及调优程序的性能。下面介绍几种常用的免费工具,其中知名的有JProfiler 等。 1. 输出GC日志 输出GC日志对于跟踪分析GC的状况来说,无疑是最直接地分析内存回收状况的方法,转载 2013-09-09 10:42:21 · 1264 阅读 · 0 评论 -
Java多态特性
都知道多态是OO的一个特性。Java当中多态是靠接口实现和继承来实现。1. 接口实现多态:interface A { public String sayHello();}class B implements A{ public String sayHello() { return "Hello B"; }}class C implements A{ public String sayHello(原创 2013-07-25 12:23:03 · 622 阅读 · 0 评论 -
JMS 4.2.2 DLQ 机制
项目中MDB处理异常后,调mdc.setRollbackOnly()方法后,发现JMS又发了6条消息过来。查了些资料,特此记下来。由于mdc在项目中是注入的,整个JMS是CMT(Container Managed Transaction), mdc.setRollbackOnly()方法表示要回滚事务,但实际上的操作是通知producer重发一下。在JBOSS的配置文件中有 1原创 2013-07-25 12:20:47 · 914 阅读 · 0 评论 -
jmx 基础
猛击这里一些其他资料http://weblogs.java.net/blog/emcmanus/archive/2006/07/creating_typesa.html 2012/2/3补充:总结一些发现的小细节:1. MBean中无法直接用@EJB annotation来注入其他EJB,哪怕把它自身标记为@Stateless;用jndilookup可行。2. MBean如果被标记为@Statel原创 2013-07-25 12:21:20 · 594 阅读 · 0 评论 -
验证IP和HostName
项目需要对输入的某值进行校验,该值可能是IP,也可能是HOSTNAME。对于IP,可以简单的用JDK提供的方法进行校验:try { InetAddress.getByName(ip);} catch (UnknownHostException uhe) { throw new Exception("Ip address " +ip + " is invalid!");}getByName方法原本是原创 2013-07-25 12:21:36 · 2541 阅读 · 0 评论 -
Jboss的server.log时间跟系统时间不一致
今天遇到个问题,在suse上的jboss的server.log开头的时间跟系统时间不同(date查出来的)。发现是timezone问题。更改方法如下:1,在/usr/share/zoneinfo/目录下查询想要更换的时区名称,修改格式同上2,将原有的localtime文件移走;# mv /etc/localtime /etc/localtime-old3,做新的localtime文件,将对应的时原创 2013-07-25 12:21:49 · 1507 阅读 · 0 评论 -
双向认证OPENSSL+Jboss7 (原创)
转贴地址:http://xeseo.blog.163.com/blog/static/5632431620130825428120/在开始之前,首先来了解SSL。SSL全称Secure Socket Layer,它用来保证C/S之间传输的安全性。怎么保证的呢?其实它提供了双重保障:1. Security利用非对称加密RSA算法,公钥对报文内容加密,私钥来解密,保证了即使截获了加密信息,没有密钥不能原创 2013-07-25 12:22:07 · 1423 阅读 · 0 评论 -
java反射机制基础详解(转)
很久不用反射,生疏了。本来想去直接看JDK白皮书,但是找到一个不错的带例子的blog,特转一下记录。1. ji什么是Java的反射? 要让Java程序能够运行,就得让Java类被Java虚拟机加载。Java类如果不被Java虚拟机加载就不能正常运行。正常情况下,我们运行的所有的程序在编译期时候就已经把那个类被加载了。Java的反射机制是在编译时并不确定是哪个类被加载了,而是在程序转载 2013-07-25 12:22:55 · 582 阅读 · 0 评论 -
JDK6 新增窗口最小化至托盘
Java做的应用程序,过去要在win平台上实现最小化时在系统托盘区域产生一个图标,必须得用JNI调用OS的库函数才行。但是在JDK6中,终于加入了相应的API。不多说,例子如下:import java.awt.AWTException;import java.awt.Image;import java.awt.SystemTray;import java.awt.TrayI原创 2013-07-25 12:20:06 · 656 阅读 · 0 评论 -
一个有意思的小程序,考验多线程问题能力
题目:1. 某银行有至多三个窗口提供服务。2. 该银行每天至多服务100人次;3. 初始时,只有一个窗口开放,如果等待人数超过两人(包含正在办理业务的人),才开放下一个窗口。模拟业务办理过程:这个小小的问题里面包含几个关键点:1. 显然三个窗口可以用三个线程来做,那么如何得到三个线程服务的总人数?涉及到多线程数据同步问题。2. 100人次可能不是一次来的。有可能原创 2013-07-25 12:15:25 · 1729 阅读 · 0 评论 -
Java程序员必知的8大排序
转自:http://blog.csdn.net/without0815/article/details/76979168种排序之间的关系: 1, 直接插入排序(1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺转载 2013-07-29 17:57:12 · 674 阅读 · 0 评论 -
web程序请求限制
正常情况下,web应用提供PUT,POST,GET,DELETE,OPTIONS,TRACE,HEAD几类请求。有时我们想禁止接受某些请求到达我们的应用。简单方法,修改web.xml添加如下: HTML /* OPTIONS 例子是是把OPTIONS给禁掉了。注意,红色部分不能掉,否则不能用。用tel原创 2013-07-25 12:23:06 · 1001 阅读 · 0 评论 -
Zookeeper入门例子
本来想自己写……结果,官方例子很给力……恕我懒惰。http://zookeeper.apache.org/doc/trunk/javaExample.html转载 2013-10-17 09:29:40 · 886 阅读 · 0 评论 -
Zookeeper实现分布式共享锁
分布式系统中经常需要协调多进程,多个jvm,或者多台机器之间的同步问题,得益于zookeeper,实现了一个分布式的共享锁,方便在多台服务器之间竞争资源时,来协调各系统之间的协调和同步。 package com.concurrent; import java.io.IOException;import java.util.ArrayList;import转载 2013-10-17 09:30:50 · 1597 阅读 · 0 评论 -
log4j layouts
Using layouts.InformationTo customize the output format of the print messages a layout must be associated to an appender. There are serveral layouts you can choose:ObjectRenderer.The Obj转载 2013-10-25 16:37:32 · 794 阅读 · 0 评论 -
springmvc定制REST风格 以及 与JSR303 Bean校验整合
原文地址:http://www.cnblogs.com/dennisit/archive/2013/04/13/3019391.htmlREST风格与传统风格比较 查询用户 传统方式 /user_detail?id=120 Rest风格 /user/120 删除用户 传统方式 /user_delete?id=123转载 2013-10-18 17:48:48 · 1187 阅读 · 2 评论 -
Spring 传统AOP实例
参考AOP入门(一)中的例子,外面来实现用Spring AOP加入各种统计的东东。 注:这篇文章中,我用的是完全传统的Spring AOP,不带有任何AspectJ的东西。 在前面AOP实现一文中提到,Spring AOP要求被代理类必须由Spring容器来管理,即是一个SpringBean。所以,我们要做的第一步,就是配置引入Spring容器管理。在src/m原创 2013-10-30 09:07:18 · 1553 阅读 · 0 评论 -
Spring中AOP实现
标题之所以没叫Spring AOP实现,是因为Spring中AOP的两种实现方式之一是被这样叫的…… -_-T Spring 中的AOPAOP的Spring实现有两种: Spring AOP本质上就是动态代理+AspectJ的部分功能。被代理的对象必须由Spring容器管理。下文会详述。使用这种实现,可以用XML或annotation来做配置管理或aspect的原创 2013-10-30 09:04:34 · 1081 阅读 · 0 评论 -
Spring AOP @Aspect support XML
Spring的AOP在集成了AspectJ后,立刻就显得方便了许多。本篇用同样的例子,来实现同样的功能。前文提到过,@Aspect也支持完全annotation方式和XML配置的方式。为了方便比较,我这里先用XML来配置,基于上篇文章的代码。 添加AspectJ的dependency org.aspectj a原创 2013-10-30 09:07:55 · 1029 阅读 · 0 评论 -
Spring AOP @Aspect support annotation
还是这个例子,我们用完全annotation的方法来实现。代码我就不重复了,跟前面XML配置是同一套。修改配置文件:http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http原创 2013-10-30 09:08:15 · 1594 阅读 · 0 评论 -
Spring + AspectJ
Spring中使用它所集成的AspectJ有两种方式:直接完全用AspectJ这种已经脱离了Spring,跟它没一分钱关系了。自己定义AspectJ语法的.aj文件 使用@Aspect annotation使用,这种更加简单 两种方式如何选择? 当AspectJ在你的设计中占据很大的角色时,并且你又刚好是用Eclipse来做开发,那么用Asp原创 2013-10-30 09:08:41 · 1555 阅读 · 0 评论 -
用VisualVM远程监控Java进程
1. 配置并启动jstatd在用jvisualvm监控远程机器前,需要在对端启动一个RMI服务器。1.1 创建jstatd权限配置文件 jstatd.all.policygrant codebase "file:${java.home}/../lib/tools.jar" { permission java.security.AllPermission; };1.原创 2013-09-22 11:05:43 · 14833 阅读 · 0 评论 -
HPROF: 一个Heap/CPU Profiling工具
无意中看到一篇,写的非常好。转载过来。原文地址:http://www.cnblogs.com/linhaohong/archive/2012/07/12/2588657.html2SE中提供了一个简单的命令行工具来对java程序的cpu和heap进行 profiling,叫做HPROF。HPROF实际上是JVM中的一个native的库,它会在JVM启动的时候通过命令行参数来转载 2014-03-31 15:52:31 · 1481 阅读 · 0 评论 -
MySQL 插入(insert)性能测试
转自:http://elf8848.iteye.com/blog/1547398作者:赵磊博客:http://elf8848.iteye.com 测试环境: 笔记本电脑CPU:I5 系统:MAC OS 10.7内存:8G硬盘:5400转,笔记本硬盘 MySql 版本:Oracle官网下载的mysql转载 2016-04-25 17:54:40 · 3618 阅读 · 0 评论 -
关于REST中做简单验证的思考
之前有位朋友留言问我是否对REST的验证有过研究,当时,我之前是用JBOSS来做基本的验证管理,每次请求都要带上验证信息。对于WEB,这样做似乎有点不太优雅。传统的http连接下,简单的web验证,是靠Session来做的。而Session其实是代表状态的,客户端的状态。REST是无状态的,服务资源无状态。但是在访问的时候,由于Session的存在,就把客户的状态跟资源访问结合到一起了原创 2013-10-18 18:04:45 · 1906 阅读 · 0 评论 -
AOP入门(一)
网上由很多关于AOP的解释,但是,它最大的好处是什么,它的作用是什么?众说纷纭,有的解释甚至很扯淡。例如,百度百科上有这样一段: 这给我的感觉就是——人类的主要功能:吃、喝、玩、乐。 -_-! 要解释这个问题,得先回答,为什么要有AOP。 AOP的历史 有人说AOP(Aspect Oriented Program)是基于OOP (Object原创 2013-10-17 11:16:03 · 1249 阅读 · 0 评论 -
ResourceBundle的使用
1、使用java.util.Properties类的load()方法 示例:Java代码 Java代码 InputStream in = lnew BufferedInputStream(new FileInputStream(name)); Properties p = new Properties(); p.load(in);转载 2013-10-17 09:37:57 · 1223 阅读 · 0 评论 -
Date Format
每次选DateFormat格式,都得去查文档,方便起见,全记在这!LetterDate or Time ComponentPresentationExamplesGEra designatorTextADyYear原创 2013-10-17 09:43:08 · 696 阅读 · 0 评论 -
JAVA分布式事务原理及应用
引言 JTA( Java Transaction API)允许应用 程序 执行分布式事务处理--在两个或多个 网络 计算机资源上访问并且更新数据。JDBC 驱动 程序的JTA支持极大地增强了数据访问能力。 本文的目的是要提供一个关于的Java事务处理API(JTA)的高级的概述,以及与分布式事务相关的内容。一个事务处理定义了一个工作逻辑单元,要么 彻底成功要么不产生任何结果。转载 2013-10-17 09:44:15 · 1997 阅读 · 0 评论