
JAVA开发学习
文章平均质量分 92
可口可乐的围脖
这个作者很懒,什么都没留下…
展开
-
获取java方法的参数名
在做性能测试时,通过profile工具获取到hot spot以后,我们会想用btrace记录下特定方法的调用时间以及传入方法的参数值。在btrace中想要获得方法的参数值,btrace脚本中对应方法必须带上与目标方法参数名一致的参数。这里就有个问题,怎么获取java类中方法的参数名呢?当然你有源文件的话这完全不是问题,我们的前提是只有.class文件,一开始试了javap发现只能看转载 2014-09-08 11:55:42 · 914 阅读 · 0 评论 -
简单上传性能测试--测试程序
因为涉及到真实产品,把一些实现的细节屏蔽了。系统架构简化后如下图: 测试客户端只要能发送大量上传文件的http请求即可。 1、先建立一个conf.properties文件,主要内容如下threadCount=2 //客户端线程数requestPerThread=1 //每个线程请求数filePath=/home/qatest/upload转载 2014-09-08 11:57:07 · 1029 阅读 · 0 评论 -
java实现后台自动发邮件功能
web.xml文件 mailsenderservlet com.email.MailSenderServlet server smtp.163.com port 25 address username@163.co转载 2014-09-08 13:42:51 · 1874 阅读 · 0 评论 -
彻底理解webservice SOAP WSDL
WebServices简介先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构,既然说是一种架构的话,所以一般认为 SOA 是包含了运行环境,编程模型,架构风格和相关方法论等在内的一整套新的分布式软件系统构造方法和环境,涵盖服务的整个生命周期。而在 SOA 的架构风格中,服务是最核心的抽象手段。SOA 中的服务是转载 2014-09-23 10:29:44 · 914 阅读 · 0 评论 -
深入理解Java对象序列化
关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结。此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制。在撰写本文时,既参考了Thinking in Java, Effective Java,JavaWorld,developerWorks中的相关文章和其它网络资料,也加入了自己的实践经验与理解,文、码并茂,希望对大家有所帮助。转载 2014-10-23 17:47:39 · 416 阅读 · 0 评论 -
Java中Class对象详解
Java中把生成Class对象和实例对象弄混了,更何况生成Class对象和生成instance都有多种方式。所以只有弄清其中的原理,才可以深入理解。首先要生成Class对象,然后再生成Instance。那Class对象的生成方式有哪些呢,以及其中是如何秘密生成的呢?Class对象的生成方式如下:1.Class.forName("类名字符串")2.类名.class3.转载 2014-10-23 17:53:02 · 414 阅读 · 0 评论 -
如何优化Java程序设计和编码提高性能
通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。一、对象的生成和大小的调整。转载 2014-10-23 17:51:27 · 532 阅读 · 0 评论 -
Java 程序打包成jar文件 含第三方jar包
(1)选中要打包的java项目,点击菜单File-export-JAR File (2)点击“Next“,按照需求选择所要打包的内容及格式,点击“Browse”选择jar包所在的目录…点击”Next” (3)选择"Generate New MANIFEST.MF"单选框, 点击”Browse”选择主程序入口: 点击"Finish"完成。 对于普通的java程转载 2014-10-10 09:47:27 · 1015 阅读 · 0 评论 -
liunx下cpu占用率高如何定位代码问题
问题描述:生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高。问题分析:1,程序属于CPU密集型,和开发沟通过,排除此类情况。2,程序代码有问题,出现死循环,可能性极大。问题解决:1,开发那边无法排查代码某个模块有问题,从日志上也无法分析得出。2,记得原来通过strace跟踪的转载 2014-10-11 09:35:11 · 543 阅读 · 0 评论 -
长连接和短连接性能测试结果差异
这次测试针对长连接和短连接对性能测试的影响做一个简单的比较,详细情况见下面1. 什么是TCP长连接什么是短连接?一般人讲的长连接与短连接的,这是一个通俗的说法, 这个TCP连接是根据连接时间的长短定义的。何谓短连接:就是一次操作完后断开连接,常见于大客户情况 如WEB服务器,如果每个连接都使用长连接 那么每个客户都保留一个socket ,系统资源耗费比较大。何谓长连接:转载 2014-10-13 22:19:14 · 4825 阅读 · 0 评论 -
Oracle,SqlServer,MySql高性能分页方案
SqlServer和Oracle的分页方式,是我04年研究出来的。MySql的方式,是我从超群的博客看来的http://www.fuchaoqun.com/2009/04/efficient-pagination-using-mysql/ 所以,一并整理出来。 SQL Server 2000PageCount:一页需要的数据条数PageIndex:页索引se转载 2014-10-14 09:01:08 · 594 阅读 · 0 评论 -
java发送udp广播包
import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; im转载 2014-10-14 09:05:26 · 1189 阅读 · 0 评论 -
图解classloader加载class的流程及自定义ClassLoader
*** 转载请注明作者longdick http://longdick.iteye.com**/ java应用环境中不同的class分别由不同的ClassLoader负责加载。一个jvm中默认的classloader有Bootstrap ClassLoader、Extension ClassLoader、App ClassLo转载 2014-10-17 10:32:20 · 435 阅读 · 0 评论 -
java线程中的interrupt,isInterrupt,interrupted方法
在java的线程Thread类中有三个方法,比较容易混淆,在这里解释一下(1)interrupt:置线程的中断状态(2)isInterrupt:线程是否中断(3)interrupted:返回线程的上次的中断状态,并清除中断状态举个例子:[java] view plaincopyprint?用法: class MyThread extends T转载 2014-10-17 10:20:12 · 420 阅读 · 0 评论 -
理解class.forName()
使用jdbc方式连接数据库时会使用一句代码Class.forName(String className).这句话是什么意思呢?首先说一点Class.forName(String className)这个方法的作用是装载className这个字符串指定的类。官方文档返回与带有给定字符串名的类或接口相关联的 Class 对象。调用此方法等效于:转载 2014-10-17 10:36:25 · 400 阅读 · 0 评论 -
How to fix the dreaded "java.lang.OutOfMemoryError: PermGen space" exception (classloader leaks)
In the previous blog entry Classloader leaks: the dreaded "java.lang.OutOfMemoryError: PermGen space" exception I explained how this type of problem can originate in the application code that you d转载 2014-10-17 10:58:42 · 742 阅读 · 0 评论 -
Tomcat ClassLoader研究
http://tomcat.apache.org/tomcat-4.1-doc/class-loader-howto.html Tomcat的ClassLoader层次结构: Bootstrap | System | Common转载 2014-10-17 11:26:15 · 699 阅读 · 0 评论 -
东京商城注册页面使用的正则表达式......
京东商城注册页面找到的一组,正则表达式,验证规则比较准确,包括几乎包括所有常用的规则。[java] view plaincopyprint?decmal: "^([+-]?)\\d*\\.\\d+$", //浮点数 decmal1: "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$", //正浮点数 decmal2: "^-([1-9]转载 2014-10-17 10:41:51 · 1143 阅读 · 0 评论 -
web.xml 详细介绍
1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取和两个结点。 2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。 3、容器将转换为键值对,并交给servletContext。 4、容器创建中的类实例,创建监听器。 二 Load-on-startupLoad转载 2014-10-17 10:38:01 · 357 阅读 · 0 评论 -
Java ClassLoader深入研究
参考文章:http://blog.youkuaiyun.com/lovingprince/archive/2009/06/03/4238695.aspxhttp://www.yesky.com/243/1840743.shtml Java为了提供平台无关性,在操作系统之上加入了一层JVM来隔离操作系统特定实现,使所编写的java代码在任何平台都能运行,但是JVM是特定于某一操作系统的转载 2014-10-17 11:23:32 · 424 阅读 · 0 评论 -
Timer的schedule和scheduleAtFixedRate方法的区别解析
在java中,Timer类主要用于定时性、周期性任务 的触发,这个类中有两个方法比较难理解,那就是schedule和scheduleAtFixedRate方法,在这里就用实例分析一下(1)schedule方法:“fixed-delay”;如果第一次执行时间被delay了,随后的执行时间按 照上一次 实际执行完成的时间点进行计算(2)scheduleAtFixedRate方法转载 2014-10-17 10:19:50 · 454 阅读 · 0 评论 -
JDK中的设计模式
本文主要是归纳了JDK中所包含的设计模式,包括作用和其设计类图。首先来个总结,具体的某个模式可以一个一个慢慢写,希望能对研究JDK和设计模式有所帮助。一、设计模式是什么(1)反复出现问题的解决方案(2)增强软件的灵活性(3)适应软件不断变化二、学习JDK中设计模式的好处(1)借鉴优秀代码的设计,有助于提高代码设计能力(2)JDK的设计中体现了大多数设计模式,转载 2014-10-17 10:28:57 · 354 阅读 · 0 评论 -
关于Java的clone()
相关要点: 1.必须实现Cloneable接口,这个接口只是一个标识;如果不实现,调用了clone(),运行时会报CloneNotSupportedException2.clone是Object的方法,标识为protected,子类必须重写,标识符可改为public 3.对于jdk1.5,clone可以返回相应类的类型或Object;对于1.4,只能返回Object4.注意转载 2014-10-17 11:28:09 · 399 阅读 · 0 评论 -
"java.lang.OutOfMemoryError: PermGen space" with a twist
There are a lot of posts out there about the "java.lang.OutOfMemoryError: PermGen space" exception. Agood description of the problem can be found in Frank Kieviet's blog.One of the main causes f转载 2014-10-17 11:00:06 · 554 阅读 · 0 评论 -
Memcached Cache客户端的一个参数
今天,有一个使用我优化的Memcached cache Client给我发了邮件问到一个参数的作用,觉得还是比较重要的一个参数,因此也说一下,同时也在这里说一下,当前优化过的客户端已经作了几次小的升级,修复了一些边界数据的问题,大家如果在使用的话,最好能够升级。(http://code.google.com/p/memcache-client-forjava/) 邮件如下: 你好:转载 2014-11-05 09:15:03 · 546 阅读 · 0 评论 -
Memcache Hash算法值得探索的内容
集团内部很多团队都使用Memcache来提高应用性能,最近的一次工作汇报中提及了Memcache的Hash算法需要研究来满足一些需求,同时提高Memcache的利用效率。讨论了一下最后自己总结了这么几点是对Hash算法需要着重考虑的。问题:1. 存储数据如何均匀分散。如何把数据尽可能的散开存储,这样对于Memcache的可扩展性才会有充分利用,试想如果算法每次都会把数据定向到转载 2014-11-05 09:55:27 · 365 阅读 · 0 评论 -
分布式计算开源框架Hadoop入门实践(三)
Hadoop基本流程相关厂商内容Windows Azure在中国正式开启在线直付率先在国内落地的全球化云服务,深度了解Windows Azure利用开发测试云实现精益创业、快速迭代Windows Azure自管理服务实现近乎零停机维护Windows Azure专区上线,全面了解云服务相关赞助商W转载 2014-11-05 10:03:58 · 439 阅读 · 0 评论 -
Memcached使用点滴
我对于Memcached的接触,还是在去年看了优快云的一系列国外大型网站架构设计而开始的。最初的时候只是简单的封装了Memcached Java版的客户端,主要是对于配置的简化以及Memcached多点备份作了一些工作,然后就作为ASF的组件一部分提供给其他Team使用。其实看过Memcached Java客户端代码的人就会了解其实客户端的事情很简单,就是要有一套高性能的Socket通信框架以及转载 2014-11-05 10:06:34 · 437 阅读 · 0 评论 -
Java 载入Jar内资源问题的探究
工作忙,有些许时间没有更新Blog了,这次在开发监控模块的时候遇到了这个问题,整个问题定位过程真是走了不少路,所以觉得有必要记录下来分享一下。在我看来很多时候结果也许就很简单一个原因,但是开发人员却要探究很久,也许在找到了其他可实现业务逻辑方法的情况下,就会放弃寻找原因,这期间我也是一样。 问题初现: 在服务集成平台中需要新增一块写入数据库的逻辑,因此考虑最简便就是弄个Sp转载 2014-11-05 10:08:31 · 781 阅读 · 0 评论 -
分布式计算开源框架Hadoop入门实践
引What is HadoopWhy is hadoopHow to Use Hadoop & Tips环境:部署考虑:实施步骤:Hadoop CommandHadoop基本流程以及简单应用的开发基本流程:代码范例:Hadoop集群测试随想 引 在SIP项目设计的过程中,对于它庞大的日志在早先就考虑使用任务分解的多线程转载 2014-11-05 09:05:02 · 409 阅读 · 0 评论 -
MemCached Cache Java Client封装优化历程
MemCached Cache在大型网站被应用得越来越广泛,不同语言的客户端也都在官方网站上有提供,但是Java的选择并不多。由于现在的MemCached Cache服务端是用C写的,因此我这个C不太熟悉的人也就没有办法去优化它,当然对于它的内存分配机制等细节还是有所了解,因此在使用的时候也会十分注意,这些文章Google一把应该也有很多了。这里就说说对于MemCache Java客户端的优化转载 2014-11-05 09:23:30 · 391 阅读 · 0 评论 -
HBASE松散数据存储设计初识
引最近关注Hadoop,因此也顺便关注了一下Hadoop相关的项目。HBASE就是基于Hadoop的一个开源项目,也是对Google的BigTable的一种实现。 BigTable是什么?Google的Paper对其作了充分的说明。字面上看就是一张大表,其实和我们想象的传统数据库的表还是有些差别的。松散数据可以说是介于Map Entry(key & value)和DB Row之转载 2014-11-05 09:56:43 · 447 阅读 · 0 评论 -
Tiger Concurrent Practice --日志分析并行分解设计与实现
在完成ASF集成REST以后,接到的任务就是要完成一个日志分析应用。需求没有很明确,只是要有这么一个东西能够满足分析收集后的日志,将分析后的原始数据入库,作为后期分析和统计使用。 在动手做之前,我还是给这个应用作了最基本的需求定义:灵活配置(输入源,输出目标,分析器的实现等),高效(并行任务分解)。就这两点能够做到,那么将来需求如何变化都可以适应。Tiger的Concurrent包转载 2014-11-06 09:42:14 · 465 阅读 · 0 评论 -
高效缓存Memcached 集成使用说明
Memcached 介绍与分析 Memcached是一种集中式Cache,支持分布式横向扩展。总结几个它的特点来理解一下它的优点和限制。 Memory:内存存储,不言而喻,速度快,对于内存的要求高,不指出的话所缓存的内容非持久化。对于CPU要求很低,所以常常采用将Memcached服务端和一些CPU高消耗Memory低消耗应用部属在一起。(作为我们AEP正好有这样的转载 2014-11-06 09:50:08 · 569 阅读 · 0 评论 -
分布式计算开源框架Hadoop入门实践(一)
── 分布式计算开源框架Hadoop入门实践(一)在SIP项目设计的过程中,对于它庞大的日志在开始时就考虑使用任务分解的多线程处理模式来分析统计,在我从前写的文章《Tiger Concurrent Practice --日志分析并行分解设计与实现》中有所提到。但是由于统计的内容暂时还是十分简单,所以就采用Memcache作为计数器,结合MySQL就完成了访问控制以及统计的工作。然而未来,对于海转载 2014-11-05 10:01:45 · 391 阅读 · 0 评论 -
分布式计算开源框架Hadoop入门实践(二)
── 分布式计算开源框架Hadoop入门实践(二)其实参看Hadoop官方文档已经能够很容易配置分布式框架运行环境了,不过这里既然写了就再多写一点,同时有一些细节需要注意的也说明一下,其实也就是这些细节会让人摸索半天。Hadoop可以单机跑,也可以配置集群跑,单机跑就不需要多说了,只需要按照Demo的运行说明直接执行命令即可。这里主要重点说一下集群配置运行的过程。环境7台普通的机器,操转载 2014-11-05 09:59:57 · 405 阅读 · 0 评论 -
java IO性能分析
摘要:本文大多技术围绕调整磁盘文件 I/O,但是有些内容也同样适合网络 I/O 和窗口输出。第一部分技术讨论底层的I/O问题,然后讨论诸如压缩,格式化和串行化等高级I/O问题。然而这个讨论没有包含应用设计问题,例如搜索算法和数据结构,也没有讨论系统级的问题,例如文件高速缓冲。Java语言采取两种截然不同的磁盘文件结构。一个是基于字节流,另一个是字符序列。在Java语言中一个字符有两转载 2014-11-28 10:59:36 · 1450 阅读 · 0 评论 -
由SOAP消息看Web Service FrameWork的细节差异
早先的一些blog文章已经说了很多关于Web Service客户端在同一种语言实现或者不同语言实现中由于细节实现不同导致兼容性的问题。昨天解决的问题在一个边界问题上又一次说明了这种异构环境的互通标准在不同的实现当中,由于细节理解不同会造成一些兼容性问题。 问题: 当接口返回类型为一个对象,同时这个对象中有一个属性是数组类型,那么这个数组类型的对象在返回的SOAP消息中就无法转载 2014-11-06 13:19:03 · 437 阅读 · 0 评论 -
SSL + WS-Security = Web Service安全保障
今天早晨看了一下blog的留言,发现有位朋友给我留了言,提到了他正在研究SCA,同时也有些困惑,当在异构分布式环境的情况下,不论是否使用SCA规范来实现,都采用Web Service来完成面向服务的服务调用,觉得SCA没有什么优势可言。其实这是一个误解,SCA框架规范并不是一个具体的业务场景解决实施规范,它是一种框架结构性规范,它的精华部分主要在于:一.将抽象和封装由对象提升到了业务组件模块 二.转载 2014-11-06 13:23:25 · 1480 阅读 · 0 评论 -
java-IO操作性能对比
在软件系统中,IO速度比内存速度慢,IO读写在很多情况下会是系统的瓶颈。在java标准IO操作中,InputStream和OutputStream提供基于流的IO操作,以字节为处理单位;Reader和Writer实现了Buffered缓存,以字符为处理单位。从Java1.4开始,增加NIO(New IO),增加缓存Buffer和通道Channel,以块为处理单位,是双向通道(可读可写,类似转载 2014-11-28 10:52:17 · 581 阅读 · 0 评论