Java basic
文章平均质量分 72
cndone
这个作者很懒,什么都没留下…
展开
-
BCD Conversion in java
/** * Copyright 2010 Firat Salgur * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obt...原创 2016-03-31 23:39:30 · 302 阅读 · 0 评论 -
AOP分解
JDK动态代理 在JDK 1.3以后提供了动态代理的技术,允许开发者在运行期创建接口的代理实例。在Sun刚推出动态代理时,还很难想象它有多大的实际用途,现在我们终于发现动 态代理是实现AOP的绝好底层技术。 JDK的动态代理主要涉及到java.lang.reflect包中的两个类:Proxy和InvocationHandler。其中 InvocationHandler是一个接口,可以通...原创 2011-03-16 17:53:24 · 134 阅读 · 0 评论 -
java性能优化
一、避免在循环条件中使用复杂表达式在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。例子:import java.util.Vector;class CEL { void method (Vector vector) { for (int i = 0; i <...原创 2011-07-18 15:19:16 · 97 阅读 · 0 评论 -
jvm内存参数设定
在开发java应用时经常出现OutOfMemory的错误,处理了2天,在此做一记录1.jvm内存结构介绍http://wenku.baidu.com/view/d82607ea81c758f5f61f67f6.html 2.jvm内存监控工具命令工具:jps、jmap、jstatdjmap:http://blog.csdn.net/gtuu0123/archive/20...原创 2011-07-17 20:30:46 · 89 阅读 · 0 评论 -
怎样解决Java内存泄漏
解决Java内存泄漏Java内存泄漏是每个Java程序员都会遇到的问题,程序在本地运行一切正常,可是布署到远端就会出现内存无限制的增长,最后系统瘫痪,那么如何最快最好的检测程序的稳定性,防止系统崩盘,作者用自已的亲身经历与各位分享解决这些问题的办法. 作为Internet最流行的编程语言之一,Java现正非常流行.我们的网络应用程序就主要采用Java语言开发,大体上分为...原创 2011-07-15 11:38:39 · 94 阅读 · 0 评论 -
(转)浅析JVM崩溃的原因及解决方法
崩溃错误信息如下:# # An unexpected error has been detected by HotSpot Virtual Machine: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x009fcf52, pid=4752, tid=4440 # # Java...原创 2010-12-07 23:56:09 · 565 阅读 · 0 评论 -
ZIP按照目录结果打包整个文件目录
public boolean downZipOrder(String sourceUrl,String purposeUrl){ boolean flag=false; // 初始化支持多级目录压缩的ZipMultiDirectoryCompress ZipMultiDirectoryCompress zipCompress = new ZipMultiDirectoryComp...原创 2011-03-04 14:21:27 · 809 阅读 · 0 评论 -
转:基于Http协议的Java隧道通讯
关键字: 序列化基于Java平台的企业应用可以通过Java隧道技术实现应用在因特网上部署。Java隧道技术用现有的Web Server和Servlet容器就可以建立Java消息隧道和远程方法调用。由于基于Http协议,所以Java隧道是防火墙透明的隧道。Java隧道技术对于基于Java平台的因特网企业应用是一个不错的选择。1.引言 ...原创 2011-02-24 22:51:02 · 174 阅读 · 0 评论 -
java线程池 常用方法
在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动、调度、管理线程的一大堆API了。在Java5以后,通过Executor来启动线程比用Thread的start()更好。在新特征中,可以很容易控制线程的启动、执行和关闭过程,还可以很容易使用线程池的特性。 一、创建任务 任务就是一个实现了Runnable接口的类。 创建的时候实run方法即可。...原创 2011-09-24 22:52:37 · 112 阅读 · 0 评论 -
HttpClient学习整理
HttpClient 学习整理HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Co...原创 2011-05-20 16:20:21 · 84 阅读 · 0 评论 -
Configuration类使用
传统通过读取资源文件方式:1、Properties Properties pro = new Properties ();加载资源文件分如下几种:(1)、pro.load(new FileInputStream("config.properties"));读取当前目录的config.properties文件(2)、props.load(getClass.getResource...原创 2010-09-29 11:32:45 · 257 阅读 · 0 评论 -
不同场景下JVM参数的配置方式
Eclipse中JVM参数的配置方式1. 通过eclipse.ini设置jvm参数,eclipse启动后即生效,如下: -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms512m -Xmx512m -Xmn128M -XX:PermSize=64M -XX:MaxPermSize=256M -XX:+DisableE...原创 2010-12-27 23:16:53 · 232 阅读 · 0 评论 -
(转)Java命令参数说明大全
Java命令参数说明大全 序言: Java 在运行已编译完成的类时,是通过 java 虚拟机来装载和执行的,java 虚拟机通过操作系统命令 JAVA_HOME\bin\java –option 来启动,-option 为虚拟机参数,JAVA_HOME 为JDK安装路径,通过这些参数可对虚拟机的运行状态进行调整,掌握参数的含义可对虚拟机的运行模式有更深入理解。 一、 查看参数列表: ...原创 2010-09-16 09:41:39 · 175 阅读 · 0 评论 -
Java反射机制 详解 基本功能
一般而言,开发者社群说到动态语言,大致认同的一个定义是:“程序运行时,运行改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,perl,phthon,ruby是动态语言,C++,JAVA,C#不是动态语言。 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? 答案是肯定的,这种动态获取类的信息以及动态调用对象的方法...原创 2010-02-27 11:00:55 · 123 阅读 · 0 评论 -
java Socket透析http协议
WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是Web网页。WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信。HTTP协议是基于TCP/IP协议之上的协议,是Web浏览器和Web服务器之间的应用层协议,是通用的、无状态的、面向对象的协议。HTTP协议的作用原理包括四个步骤...原创 2010-02-10 15:43:45 · 145 阅读 · 0 评论 -
file的getPath getAbsolutePath和getCanonicalPath的不同
转自:http://www.blogjava.net/dreamstone/archive/2007/08/08/134968.htmlfile的这几个取得path的方法各有不同,下边说说详细的区别概念上的区别:(内容来自jdk,个人感觉这个描述信息,只能让明白的人明白,不明白的人看起来还是有点难度(特别试中文版,英文版稍好些)所以在概念之后我会举例说明。如果感觉看概念很累就跳过直接看例子...原创 2010-02-09 14:29:26 · 93 阅读 · 0 评论 -
Java实现远程屏幕监视
Robot robot = new Robot(); //要捕捉的屏幕显示范围,下面以全屏示例说明 Rectangle rect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); BufferedImage bm = robot.createScreenCapture(rect); 通过上面...原创 2011-10-19 17:40:52 · 261 阅读 · 0 评论 -
JVM监控工具--jvmstat
首先就是下载这个工具链接:http://java.sun.com/performance/jvmstat/配置本地的环境变量加入JVMSTAT_JAVA_HOME,配置为jdk安装的路径运行到bat目录下运行jvmstat pid (pid就是你jvm运行的进程id)pid 可以通过jps查看...原创 2011-08-02 15:42:03 · 195 阅读 · 0 评论 -
BeanUtils使用总结
1、 BeanUtils一共分4个包: org.apache.commons.beanutils org.apache.commons.beanutils.converters org.apache.commons.beanutils.locale org.apache.commons.beanutils.locale.converters 其中上面两个是Bea...原创 2011-03-28 17:36:33 · 573 阅读 · 0 评论 -
在java代码中获取JVM参数
近日关注性能调优,关注JMX,发现java.lang.management.*之强大。同时查阅了资料,整合一版关于JVM参数获取的note,仅供参考: MemoryMXBean memorymbean = ManagementFactory.getMemoryMXBean(); MemoryUsage usage = memorymbean.getHeapMemoryUsa...原创 2014-04-08 11:16:13 · 1261 阅读 · 0 评论 -
运行时获取方法调用堆栈信息(java)
前几日系统流程回调时,一个方法莫名其妙被调用,无法定位调用点。最后打印堆栈调用信息,找到问题点。具体使用如下: 在需要跟踪的方法中嵌入如下代码(当然AOP是个更好的选择): Throwable ex = new Throwable(); StackTraceElement[] stackElements = ex.getStackTrace(); ...原创 2012-09-14 10:53:28 · 1853 阅读 · 0 评论 -
java 实现HTTP PROXY
日常应用中使用过很多次代理,主要停留在配置级别。近期无意看到一篇blog:http://blog.csdn.net/xuesong123/article/details/1719430。来了兴致,决定参照实验一把,加深对http协议,代理模式的理解。主要做了如下工作:1、copy博主现有的代码结构,构建整个项目2、解决掉一系列的bug(down下来的代码无法运行),包含asicc码核对...原创 2012-12-06 17:21:05 · 909 阅读 · 0 评论 -
EL表达式在tomcat7.0下的new关键字不能使用
最近生产系统部署个小应用,服务器选型tomcat7.0,一直运行得好好的,最近看日志发现消息发布功能报白页。贴日志:org.apache.jasper.JasperException: /news/listNews.jsp (line: 32, column: 70) "${new.title}" contains invalid expression(s): javax.el.ELExcep...原创 2012-08-24 17:25:15 · 238 阅读 · 0 评论 -
GC日志分析配置与工具
-verbose:gc(打印GC日志)-Xloggc:(更全面的GC日志)-XX:+PringGCDetail(更详细的输出)-XX:+PrintTenuringDistribution(显示由JVM设定的保有阈值) GCViewer或JClarity Censum...原创 2013-05-08 11:32:37 · 216 阅读 · 0 评论 -
xfire设置连接超时问题
近期使用xfire作为客户端访问WS,结果因为目标主机假死,造成客户端一致无法返回,后续调用也无法进行。更悲催的是采用定时器轮询调用,结果整个定时器都阻塞无法执行后续任务。跟踪了一下代码发现引起上诉问题的代码出现在此处(红色部分):public Client loadClient() throws MalformedURLException, Exception{ ...原创 2012-08-01 17:25:13 · 427 阅读 · 0 评论 -
将多个对象写到一个文件
来看一段ObjectOutputStream构造方法的源代码public ObjectOutputStream(OutputStream out) throws IOException { verifySubclass(); bout = new BlockDataOutputStream(out); handles = new HandleT...原创 2012-07-20 17:08:56 · 320 阅读 · 0 评论 -
多线程学习笔记:synchronized
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synchron...原创 2011-12-15 17:32:48 · 148 阅读 · 0 评论 -
(转)使用 Eclipse Memory Analyzer 检测内存泄漏问题
本文是关于在开发Talend RCP 过程中碰到一个内存溢出问题的解决方案。使用的检测软件为Eclipse Memory Analyzer (http://www.eclipse.org/mat/),是一个开源免费的内存分析工具,目前为eclipse的孵化项目,也是一个eclipse RCP.Talend一款开源的ETL...原创 2011-12-14 18:10:24 · 110 阅读 · 0 评论 -
多线程学习笔记:thread 线程中的sleep()、wait()、yield()、join()
1.sleep()方法 在指定时间内让当前正在执行的线程暂停执行,但不会释放“锁标志”。不推荐使用。 sleep()使当前线程进入阻塞状态,在指定时间内不会执行。 2.wait()方法 在其他线程调用对象的notify或notifyAll方法前,导致当前线程等待。线程会释放掉它所占有的“锁标志”,从而使别的线程有机会抢占该锁。 当前线程必须拥有当前对象锁。如果当前线程不是此锁的...原创 2011-12-14 17:46:20 · 141 阅读 · 0 评论 -
Java 6 JVM参数选项大全(中文版)
本文是基于最新的SUN官方文档Java SE 6 Hotspot VM Options 编写的译文。主要介绍JVM中的非稳态选项及其使用说明。为了让读者明白每个选项的含义,作者在原文基础上补 充了大量的资料。希望这份文档,对正在研究JVM参数的朋友有帮助! 另外,考虑到本文档是初稿,如有描述错误,敬请指正。 非稳态选项使用说明...原创 2011-11-03 15:19:03 · 94 阅读 · 0 评论 -
jconsole监控JVM
本地监控:Jconsole [processed] 得到进程号(PID)的办法: Unix/Linux:使用ps查看java进程的PID Windows:任务管理器查看java或者javaw进程的PID ,也可以使用jps命令行工具 查看PIDs 远程监视: 使用如下命令启动jconsole进行远程监视: jconsol...原创 2011-12-12 17:46:20 · 122 阅读 · 0 评论 -
JAVA 调用Web Service的方法
1.使用HttpClient用到的jar文件:commons-httpclient-3.1.jar方法:预先定义好Soap请求数据,可以借助于XMLSpy Professional软件来做这一步生成。String soapRequestData = "<?xml version=\"1.0\" encoding=\"u...原创 2011-08-15 10:28:44 · 100 阅读 · 0 评论 -
BeanUtils使用总结(三)
1、beanCompartor 动态排序 还是通过反射,动态设定Bean按照哪个属性来排序,而不再需要在bean的Compare接口进行复杂的条件判断。 List peoples = ...; // Person对象的列表Collections.sort(peoples, new BeanComparator("age")); //如果要支持多个属性的复合排序,如"Order By l...原创 2011-03-29 15:48:15 · 146 阅读 · 0 评论 -
BeanUtils使用总结(二)LazyDynaBean
LazyDynaBean 它实现一个动态的Bean,可以直接往里面加入属性,作为一个JavaBean一样使用,也可以用上面的BeanUtils或get/set方法进行操作,而不用事先定义一个标准的JavaBean类. 记得在J2ee设计模式中有一种Value Object的模式,用于在MVC各层之间传递数据,避免直接传递大业务对象引起的性能问题,为了避免在项目中出现很多...原创 2011-03-29 15:46:07 · 578 阅读 · 0 评论 -
格式化内存输出
BufferedReader in=new BufferedReader( new FileReader( "G:\\temp-workspace\\DONE\\src\\cn\\sccl\\common\\SystemConfiguration.java")); String s,s2=new String(...原创 2010-02-04 16:02:57 · 123 阅读 · 0 评论 -
HttpURLConnection读取html文件 乱码问题解决
问题是---------bufferreader不管如何转化字符集读取,内容显示均为乱码;后来,使用htmlparse解析html的开源代码,发现在读取网页时没有问题 ==== trace code 发现 乱码有可能是压缩网页造成比如是-----gzip格式的网页;所以采用以下代码读取网页是没有问题public static void GetFromHtml() throws IOExceptio...原创 2010-02-04 15:22:57 · 356 阅读 · 0 评论 -
(转)java读写文件大全
最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类,这两个类都是抽象类,Writer中 write(char[] ch,int off,intlength),flush()和close()方法为抽象方法,Reader中read(char[] ch,int off,int length)和close()方法是抽象方法。子类应该分别实现他们。 当我们读写...2010-01-01 18:03:27 · 86 阅读 · 0 评论 -
关于内存管理的一些建议
了解完这些之后,以下的转载一热衷于钻研技术的哥们Richen Wang关于内存管理的一些建议—— 1、手动将生成的无用对象,中间对象置为null,加快内存回收。 2、对象池技术 如果生成的对象是可重用的对象,只是其中的属性不同时,可以考虑采用对象池来较少对象的生成。如果有空闲的对象就从对象池中取出使用,没有再生成新的对象,大大提高了对象的复用率。 3、JVM调优 通过配置JVM的参数来...原创 2010-01-01 15:13:25 · 116 阅读 · 0 评论 -
transient 关键字有什么用途
transient 关键字有什么用途java有个特点就是序列化,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),那么当你从本地还原这个文件时,你可以将它转换为它本身。这可以极大地方便网络上的一些操作,但同时,因为涉及到安全问题,所以并不希望把类里面所有的东西都能存储(因为那样,别人可以通过序列化知道类里面的内容),那么我们就可以用上transient这个关键字,它的意思是临时...2009-01-04 11:11:00 · 230 阅读 · 0 评论 -
ClassLoader(CCL)
CCL揭密我们的ClassLoader(CCL)的任务是确保代码被编译和更新。下面描述了它的工作方式:1、当请求一个类时,先查看它是否在磁盘的当前目录或相应的子目录。2、如果该类不存在,但源码中有,那么调用Java编译器来生成类文件。3、如果该类已存在,检查它是否比源码旧。如果是,调用Java编译器来重新生成类文件。4、如果编译失败,或者由于其它原因不能从现有的源码中生成类文件,返回C...2010-03-11 14:50:51 · 96 阅读 · 0 评论