java
文章平均质量分 54
victorwmh
这个作者很懒,什么都没留下…
展开
-
多线程并发变量作用域及执行速度造成获取的数据错误
接到同事的问题反馈报告,说之前的守护程序在获取部分配置的时候,会出现数据有时正确有时错误的情况。于是,赶紧从代码库中拖出相应版本的代码进行阅读,第一反映是这种问题应该不存在。但经过仔细测试后,确实存在这样的问题。 代码大致如下:public class ServiceUserConfig extends Service{ private int m_age; pri...2010-05-12 20:45:47 · 138 阅读 · 0 评论 -
Hibernate 一对多 oracle
一对多,一方@Entity@Table(name = "t_btsevr_netload")public class BtsevrNetload implements Serializable { private static final long serialVersionUID = 4291125691067518944L; @Id @Generated...原创 2012-12-12 17:24:02 · 116 阅读 · 0 评论 -
JAVA程序分析之Thread dump
Thread Dump是一个非常好用的工具,当JAVA应用程序出现资源(CPU)消耗异常时,通过它可以轻松的查找到问题所在。在诊断问题时,Thread Dump包含的信息能使很好的你分析你的程序代码。几乎所有的Java虚拟机都具有thread-dump的能力,能够及时生成程序中所有线程在某一点的状态(Thread Dump)日志。虽然各Java虚拟机输出格式上略有不同,但总体包含以下信息:线...原创 2012-09-25 13:53:40 · 275 阅读 · 0 评论 -
Java实现缓存之HashMap及ConcurrentHashMap
最近,在一个项目中需要将大量的键值对数据缓存在内存中,以提高系统的业务处理能力。将数据缓存在内存中的方法有很多,可以使用诸如Memcached之类的分布式内存对象缓存系统,也可以通过持有对象Map类自行实现数据缓存。如何选择取决于业务需求,下面为采用map实现数据缓存前做准备时了解到的一些问题。 1、java的HashMap高并发问题。 在高并发的情况下,HashMap...原创 2012-09-25 14:47:22 · 280 阅读 · 0 评论 -
linux+java+tomcat
一、安装java 1、安装jdk # chmod a+x jdk-6u33-linux-i586.bin # ./jdk-6u33-linux-i586.bin # mv jdk1.6.0_33/ /usr/local/jdk # vi /etc/profile 在文件末尾增加下列内容: #for jav...原创 2012-09-25 15:40:03 · 171 阅读 · 0 评论 -
Linux下java程序启动脚本
#!/bin/sh##该脚本为Linux下启动java程序的通用脚本。即可以作为开机自启动service脚本被调用,#也可以作为启动java程序的独立脚本来使用。##Author: tudaxia.com, Date: 2011/6/7##警告!!!:该脚本stop部分使用系统kill命令来强制终止指定的java程序进程。#在杀死进程前,未作任何条件检查。在某...原创 2012-09-28 10:51:13 · 114 阅读 · 0 评论 -
Jprofiler6的安装与使用
在实际使用过程中,Java程序大多都运行在linux服务器上,而平时开发或测试的机器则是Windows。鉴于这种情形,关于Jprofiler的安装与使用就以此平台为例,在Windows上运行Jprofiler6,监测linux服务器上Java程序在JVM中的运行情况。 下载安装包地址:http://www.ej-technologies.com/download/jprofile...原创 2012-09-28 16:40:54 · 156 阅读 · 0 评论 -
Java系统监控、性能调优工具
Java的监控与性能调优工具很多,除了JDK自带的一些工具外,还有像Jprofilerz这样非常好用的商业工具。下面对JDK自带的一些工具做个简要说明,以便需要时找到最合适的工具。 JProfiler在java程序性能调试方面是翘楚,无须赘言,参见:《Jprofiler6的安装与使用说明》。 下面为JDK自带的一些工具: 所有工具都在JDK的bin目录,而在这些工具中...原创 2012-09-28 17:37:27 · 171 阅读 · 0 评论 -
Java虚拟机JVM的设置和调优
一、堆-Xmx3550m:设置JVM最大堆内存为3550M。-Xms3550m:设置JVM初始堆内存为3550M。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。-Xss128k:设置每个线程的栈大小。JDK5.0以后每个线程栈大小为1M,之前每个线程栈大小为256K。应当根据应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作...原创 2012-09-29 10:40:23 · 97 阅读 · 0 评论 -
Redis安装与Java客户端Jedis
最近,有个Java项目需要cache一些热点数据,刚开始打算用HashMap或ConcurrentHashMap缓存数据。但经过一些比较和分析后,发现这种自身缓存数据的方式有许多不便之处,例如缓存数据的持久化,使用内存大小的控制等。出于这些考虑,我们决定放弃自身缓存数据的做法,改用成熟的cache工具。现在用得比较多的Key-value型缓存工具,有Memcached和Redis,两...原创 2012-10-10 11:40:23 · 107 阅读 · 0 评论 -
TCP/IP通信程序设计的丰富多样性(长短连接)
刚接触TCP/IP通信设计的人根据范例可以很快编出一个通信程序,据此一些人可能会认为TCP/IP编程很简单。其实不然,TCP/IP编程具有较为丰富的内容。其编程的丰富性主要体现在通信方式和报文格式的多样性上。 一。通信方式 主要有以下三大类: (一)SERVER/CLIENT方式 1.一个Client方连接一个Server方,或称点对点(peer to peer): ...原创 2012-10-15 10:01:16 · 124 阅读 · 0 评论 -
通过kill命令获取Java程序卡死的thread dump日志
最近一个接收数据的应用,经常莫名其妙的卡死,出现这种情况时会停止输出日志信息,对查找问题非常不利。根据现有日志和表象,只能大致判断是哪块引起卡死,至于内部状态一无所知。在Linux系统中,kill -3 <PID>命令,可以将进程的dump日志输出到控制台,通过这些内容可以找到更多排查问题的线索。 以下为Linux+Tomcat中获取卡死状态下thread dump的实例:...原创 2014-08-26 18:07:45 · 906 阅读 · 0 评论 -
Myeclipse启动速度优化
1、去除不需要加载的模块 一个系统20%的功能往往能够满足80%的需求,MyEclipse也不例外,我们在大多数时候只需要20%的系统功能,所以可以将一些不使用的模块禁止 加载启动。通过Windows - Preferences打开配置窗口,依次选择左侧的General - Startup and Shutdown,这个时候在右侧就显示出了Eclipse启动时加载的模块,可以根据自己...原创 2012-08-31 14:38:22 · 86 阅读 · 0 评论 -
[转]详细解析Java中抽象类和接口的区别
在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。...原创 2012-08-30 14:13:16 · 71 阅读 · 0 评论 -
[转]Dom4j的asXML()自动编码的解决办法
Dom4j的asXML()自动编码的解决办法 在使用Dom4j的时候,有时候需要将一个Document对象转换为一个String,可以直接调用Document.asXML()方法来实现。可是调用这个方法的结果是:生成的字符串按照UTF-8进行了重新编码。这样,如果之前你的xml编码为GBK,那么你的调用此方法后,编码就变为UTF-8了,输出的中文字符就发生乱码。 有什么解决...原创 2010-08-04 15:47:33 · 180 阅读 · 0 评论 -
eclipse的Web项目java文件没有重新编译
今天,兴趣盎然的翻出前几年写的一个web项目。由于之前的登录验证很复杂,除密码及验证码外还需要硬件绑定认证。为了更简单快速的把系统运行起来,就修改了登录验证那块的代码。像往常一样重新部署修改后的项目,本以为能很快看到那久别的熟悉面孔。但悲催的事情发生了,任由我怎么输入就是登录不进去。 查找这类问题最简单有效的办法dubbger,跟踪中发现修改的代码没起作用。第一反应是J...原创 2011-05-26 15:10:35 · 725 阅读 · 0 评论 -
转:Java处理带BOM(字节顺序标记)的文本
说起BOM,这个问题还比较麻烦,因为BOM不可见,但用程序做不同编码文本处理时候却常常需要考虑到BOM的问题。在此之前,先对BOM做个简单认识。 先看看带BOM的文件:(下载这个文件) 源文件: ...原创 2011-10-07 17:18:55 · 201 阅读 · 0 评论 -
用Wrapper将java程序注册为服务
Wrapper是Java官方推荐的产品,可以把编写的程序注册为服务运行。这样将给运维人员带来很多便利,重启或暂停服务不用再那么繁琐了。下面以Linux为例,将Java程序注册为服务运行,主要有以下几个步骤:A、打包的项目jar包中,增加一个除了启动自身业务还实现了WrapperListener接口的类,主要包含start(),stop(),controlEvent()这三个接口方法。B...原创 2013-03-12 14:35:22 · 222 阅读 · 0 评论 -
Log4j.properties配置详解
一、Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。 1、Loggers Loggers组件在此系统中被分为五个级别:DEBUG、INFO、...原创 2012-10-30 09:56:26 · 87 阅读 · 0 评论 -
Java中Overload和Override的区别
方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。 如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中...原创 2012-03-27 10:58:13 · 76 阅读 · 0 评论 -
常用webservice地址
天气预报Web Service,数据来源于中国气象局 Endpoint Disco WSDL IP地址来源搜索Web Service(是目前最完整的IP地址数据) Endpoint Disco WSDL 随机英文、数字和中文简体字Web Service Endpoint Disco ...原创 2012-04-02 08:36:42 · 140 阅读 · 0 评论 -
和C++相对应Java的CheckSum
这两天在做个接收海量数据的项目,服务端接收处理客户端发送上来的数据。本来没什么可以多说的,但中间出了个有趣的插曲,让我折腾半天不管怎么调就是不对。原来是一有个性的哥们在做数据校验和时,出于自己的兴趣爱好更改协议中约定的校验值计算方法,用了他常用或偏爱的那种方法。本来想让他修改的,可出于升级工作和服务端刚建设的综合考虑,最后还是采取了服务端更改检验和计算方式的做法。为纪念为之付出艰辛调试的几个小时,...原创 2012-07-27 18:07:02 · 307 阅读 · 0 评论 -
Ant打包java project自动生成manifest文件
用Ant打包java project,自动生成manifest文件。<?xml version="1.0" encoding="UTF-8"?><project name="Alab" default="" basedir="" > <property name="project.path" val原创 2012-11-05 11:21:16 · 383 阅读 · 0 评论 -
tomcat https配置
1、生成证书 # JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore D:\WebKit\tomcat.keystore 执行该命令行后,会有一堆名称、区域、位置、证书密码等参数要你输入,测试的话其他参数无所谓,但证书密码要记住,tomcat配置中需要使用。 2、配置HTTPS...原创 2012-11-22 11:01:24 · 86 阅读 · 0 评论 -
Tomcat SessionId长度
最近在做一个接口项目,其中有一个接口的节点在规范中明确要求输入一个长度为32位的SessionID。开始,项目在开发的Tomcat6.0环境下运行,接口一切正常。后来,移到测试机器中的Tomcat下,发现该验证接口返回的全是错误结果。通过跟踪HTTP包发现,测试机上Tomcat产生的SessionID越界,除了原有32位还跟有一串固定的字符。<% System.out.p...原创 2012-11-23 10:26:59 · 588 阅读 · 0 评论 -
ant build.xml详解
转:http://www.cnblogs.com/wangchenyang/archive/2012/01/18/2325932.htmlAnt的优点跨平台性。Ant是用Java语言编写的,所示具有很好的跨平台性。操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。Ant通过调用target树,就可以执行各种task。每个task...原创 2014-09-12 16:57:56 · 134 阅读 · 0 评论