J2SE
文章平均质量分 71
caodaoxi
这个作者很懒,什么都没留下…
展开
-
使用Java调用谷歌搜索
转自:http://yangshangchuan.iteye.com/blog/1961059 search-demo托管于github search-demo演示了如何利用Java来调用百度搜索和谷歌搜索,更多细节请到github上查看search-demo 自己没搜索引擎,又想要大规模的数据源,怎么办?可以对百度搜索和谷歌搜索善加利用,以小搏大,站在巨人的肩膀上。有很...原创 2013-10-19 12:50:03 · 230 阅读 · 0 评论 -
利用javaassist修改Class文件
我们在开发中有时候会遇到这样的问题,就是使用的某个第三方包中的某些类或者某些方法不能满足我们的需求,但我们又没有源代码可以改,如果通过反编译的话又容易出错,javaassist这个第三方包就可以解决这个问题,这个第三方包支持对字节码的直接编辑,说得直白点,就是可以用这个第方包通过编程实现对Class类的直接修改。我也是刚用这个,所以写一点目前我知道的方法。javaasist.jar这个包在...原创 2012-08-22 11:22:53 · 780 阅读 · 0 评论 -
JavaMail
在Java EE应用程序中,经常需要发送E-mail。Java EE框架为应用提供了JavaMail接口,通过JavaMail相关的接口可以读取邮件服务器的邮件,并且可以完成邮件的发送过程。本章的主要内容包括: E-mail体系结构 JavaMail API 如何使用JavaMail API发送邮件 如何使用JavaMail API接收邮件...原创 2012-08-16 20:03:25 · 473 阅读 · 0 评论 -
JavaAgent
-javaagent 这个JVM参数是JDK 5引进的.java -help的帮助里面写道:-javaagent:[=]load Java programming language agent, see java.lang.instrumentJDK 工具文档里面,并没有很详细的说明。1. 代理 (agent) 是在你的main方法前的一个拦截器 (inte...原创 2012-08-13 23:43:34 · 120 阅读 · 0 评论 -
在Eclipse RCP中实现控制反转(IoC)
摘要:这篇文章描述了在Eclipse RCP中引入依赖注射机制的一个简单方法。为了避免污染Eclipse平台的基础设施并且透明的为RCP添加IoC框架,我们使用了动态字节码操作(使用 ObjectWeb ASM类库),Java类加载agent以及Java标注技术的组合。 Eclipse胖客户端平台(Rich Client Platform,RCP)是一个功能强大的软件基础(sof...原创 2012-08-13 23:13:25 · 139 阅读 · 0 评论 -
aop的几种实现方式
1 AOP各种的实现AOP就是面向切面编程,我们可以从几个层面来实现AOP。在编译器修改源代码,在运行期字节码加载前修改字节码或字节码加载后动态创建代理类的字节码,以下是各种实现机制的比较。 类别 机制 原理 优点 缺点 静态AOP 静态织入 在编译期,切面直接以字节码的形式编...原创 2012-08-05 21:14:17 · 333 阅读 · 0 评论 -
Java编程中“为了性能”尽量要做到的一些地方
http://www.iteye.com/magazines/66最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。 下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。1. 尽量在合适的场合使用单例 使用单例可以...原创 2012-07-28 21:36:02 · 75 阅读 · 0 评论 -
java字符编码原理解析
什么是字符,什么是字节?可以理解为计算机没有字符的概念,只有字节。字符是存在于人类语言层的概念,其作用是为了人与人之间的交流,因为字节对于人类是不可读的,但是计算机存储所有的数据都是按照字节存储。因此要将人类意识中的字符存储到计算机中,则必须将字符转换为字节数据,那么怎么转化呢,则必须要一种映射规则,这里的映射规则就是通常意义中的字符编码,比如说该文件是GBK编码,可以说为:这个文档中的字...原创 2012-04-08 10:52:49 · 59 阅读 · 0 评论 -
编写自定义任务,轻松扩展Ant
如果你面对的是别人根本不会想到的问题,怎么办呢?其实,只要花一点点功夫就可以编写出自己的任务出来。我开始也没想到会这样简单(做嵌套任务碰到一点问题),由此可见Ant的结构设计是相当优秀的。假设我们需要显示任务执行各花了多少时间,写一个 Ant自带了大量的任务(Task),在网上也有大量的任务可用,可是如果你面对的是别人根本不会想到的问题,怎么办呢?其实,只要花一点点功夫就可以编写出自己的...原创 2012-02-15 20:10:46 · 84 阅读 · 0 评论 -
java基础拾遗
. 电梯直达 楼主 发表于 2012-1-28 13:02:26 |只看该作者 |倒序浏览 Code 属性用于 method_info 结构中。 4. Exceptions : attribute_info 被替代为 : Exceptions_attribute { u2 attribute_name_index; u4 attribute_length;...原创 2012-06-17 10:05:07 · 62 阅读 · 0 评论 -
使用 HttpClient 和 HtmlParser 实现简易爬
使用 HttpClient 和 HtmlParser 实现简易爬虫这篇文章介绍了 HtmlParser 开源包和 HttpClient 开源包的使用,在此基础上实现了一个简易的网络爬虫 (Crawler),来说明如何使用 HtmlParser 根据需要处理 Internet 上的网页,以及如何使用 HttpClient 来简化 Get 和 Post 请求操作,构建强大的网络应用程序。...原创 2012-05-01 17:57:27 · 77 阅读 · 0 评论 -
java policy 策略 .
---- 众所周知,Java语言具有完善的安全框架,从编程语言,编译器、解释程序到Java虚拟机,都能确保Java系统不被无效的代码或敌对的编译器暗中破坏,基本上,它们保证了Java代码按预定的规则运作。但是,当我们需要逾越这些限制时,例如,读写文件,监听和读写Socket,退出Java系统等,就必须使用数字签名或安全策略文件(*.Policy)。 ---- 在企业内部网中,本文提出了使用安全策略...原创 2012-04-30 12:18:42 · 102 阅读 · 0 评论 -
使用javassist动态注入代码
关于java字节码的处理,目前有很多工具,如bcel,asm。不过这些都需要直接跟虚拟机指令打交道。如果你不想了解虚拟机指令,可以采用javassist。javassist是jboss的一个子项目,其主要的优点,在于简单,而且快速。直接使用java编码的形式,而不需要了解虚拟机指令,就能动态改变类的结构,或者动态生成类。 下面通过一个简单的例子,通过javassist来实现如何动态注入...原创 2012-08-22 11:33:28 · 62 阅读 · 0 评论 -
JVM启动参数
一、标准参数1.-server-client虚拟机服务器模式/客户机模式,使用server模式可以提高性能,启动比client模式慢,长期运行则比client模式快。当该参数不指定时,虚拟机启动检测主机是否为服务器,如果是则以server模式启动,否则以client模式启动,J2SE5.0检测的根据是至少2个CPU和最低2GB内存2.-agentlib:=-agentpat...原创 2012-08-22 11:51:12 · 97 阅读 · 0 评论 -
走出类加载器迷宫
这是前几天在看类加载器机制时搜到的一篇旧文,网上搜了搜相应的中文资料,感觉很多意思没有翻译出来,这两天我试着自己翻译了一下,供同道参考。英文文章地址:Find a way out of the ClassLoader maze 走出类加载器迷宫(本人翻译,转载请注明出处) 系统类加载器, 当前类加载器, 上下文类加载器? 你应该用哪一个?By Vladimir R...原创 2013-10-16 14:22:04 · 95 阅读 · 0 评论 -
Java的JDBC数据库连接池实现方法
虽然J2EE程序员一般都有现成的应用服务器所带的JDBC数据库连接池,不过对于开发一般的Java Application、 Applet或者JSP、velocity时,我们可用的JDBC数据库连接池并不多,并且一般性能都不好。AD: 51CTO云计算架构师峰会 抢票进行中!Java程序员都很羡慕Windows ADO ,只需要new Connection 就可以直接从数据库连接...原创 2012-09-14 10:20:49 · 103 阅读 · 0 评论 -
Quartz学习
介绍QuartzQuartz是一个开源的任务调度系统,它能用来调度很多任务的执行。运行环境Quartz 能嵌入在其他应用程序里运行。 Quartz 能在一个应用服务器里被实例化(或servlet容器), 并且参与XA事务 Quartz能独立运行(通过JVM),或者通过RMI Quartz能被集群实例化 任务调度当一个指定给任务的触发器发生时,任务就被调度...原创 2012-04-22 23:06:48 · 72 阅读 · 0 评论 -
Quartz 进行作业调度
现代的 Web 应用程序框架在范围和复杂性方面都有所发展,应用程序的每个底层组件也必须相应地发展。作业调度是现代系统中对 Java 应用程序的一般要求,而且也是对 Java 开发人员一贯的要求。虽然目前的调度技术比起原始的数据库触发器标志和独立的调度器线程来说,已经发展了许多,但是作业调度仍然不是个小问题。对这个问题最合适的解决方案就是来自 OpenSymphony 的 Quartz API。...原创 2012-04-22 22:58:14 · 73 阅读 · 0 评论 -
Log4j使用
背景对于有经验的开发者来说,日志记录的重要性显而易见。例如程序中的异常处理和安全性都依赖于Logging的功能来帮助履行它们的指责。应用程序中的日志记录主要基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;跟踪代码运行时轨迹,作为日后审计的依据;担当集成开发环境中的调试器的...原创 2012-12-05 11:34:12 · 64 阅读 · 0 评论 -
javassist【动态改字节码】学习三
这里举个简单的例子,来记录下如何用CtClass创建一个类,并且往这个类里面新加方法,下面是代码,可以直接运行:Java代码package seeeyou.app.test; import java.io.IOException;import java.lang.reflect.InvocationTargetException;import java.lang...原创 2012-08-23 14:50:41 · 573 阅读 · 0 评论 -
log4j 获取行号
log4jjava 今天看log4j的日志,突然注意到log4j 可以打印行号.行号之类的信息一般调试的时候会用到,java API 猜测应该不会封装调试器API出来(不清楚调试器的实现)后来想到了异常堆栈的时候是可以打印行号的,所以是不是可以通过异常获取行号呢?查看API Java代码 收藏代码 StackTraceElement[] java.lang....原创 2012-08-23 14:50:12 · 460 阅读 · 0 评论 -
线程运行栈信息的获取
线程运行栈信息的获取一、问题的引入我们在Java程序中使用日志功能(JDK Log或者Log4J)的时候,会发现Log系统会自动帮我们打印出丰富的信息,格式一般如下:[运行时间] [当前类名] [方法名]INFO: [用户信息]具体例子如Tomcat启动信息:Jul 9, 2004 11:22:41 AM org.apache.coyote.http11.Http11Pro...原创 2012-08-23 14:49:50 · 157 阅读 · 0 评论 -
什么是线程安全和线程不安全
什么是线程安全和线程不安全 首先要明白线程的工作原理,jvm有一个main memory,而每个线程有自己的working memory,一个线程对一个variable进行操作时,都要在自己的working memory里面建立一个copy,操作完之后再写入main memory。多个线程同时操作同一个variable,就可能会出现不可预知的结果。根据上面的解释,很容易想出相应...原创 2012-08-23 14:49:15 · 116 阅读 · 0 评论 -
javassist【动态改字节码】学习二
写了个例子。有一个类:Java代码package seeeyou.app.test; public class HelloWorld { public static void sayHello(String hh) { try { Thread.sleep(3000); } catch (InterruptedException e...原创 2012-08-22 11:53:09 · 199 阅读 · 0 评论 -
javassist[动态改字节码]学习一
前段时间为了公司里的线上工程监控用到了这个小jar包,看起来挺有用,学习下,做个笔记。 Javassist 基础Javassist 使您可以检查、编辑以及创建 Java 二进制类。检查方面基本上与通过 Reflection API 直接在 Java 中进行的一样,但是当想要修改类而不只是执行它们时,则另一种访问这些信息的方法就很有用了。这是因为 JVM 设计上并没有...原创 2012-08-22 11:52:21 · 164 阅读 · 0 评论 -
rmi之codebase
一、为什么需要codebase 当我们用一个对象作为远程方法调用的参数时,对象是以序列化流来传输到远端,然后在远端重新生成对象。这样就可能在两个Java虚拟机中交换对象了。 但是序列化是这种传递对象的一部分。当你序列化对象时,你仅仅是把对象的成员数据转化成字节流,而实际实现 该对象的代码却没有。也就是说,传递的只是数据部分,而做为控制逻辑的程序代码部分却没有被传递。 这就是RMI初学者...原创 2012-04-30 11:54:44 · 715 阅读 · 0 评论 -
Runtime学习
1 JDK中Runtime的定义 http://blog.csdn.net/lysnow_oss/archive/2007/05/12/1606349.aspx<转载>那就首先说点Runtime类吧,他是一个与JVM运行时环境有关的类,这个类是Singleton的。我说几个自己觉得重要的地方。1、Runtime.getRuntime()可以取...原创 2012-04-26 23:07:55 · 98 阅读 · 0 评论 -
RCP中获取主机名称,mac等信息
SWT Win32 Extension 是Eclipse类库SWT的Win32本地原生扩展. 本项目提供了一个软件开发工具库,能够让您使用Java语言开发原生的Windows应用程序而不需要编写额外的JNI代码。使用SWT Win32 Extension,您将不需要创建原生的动态链接库来调用操作系统动态链接库的系统API或者方法。您仅仅需要做的就是编写Java代码,SWT W...原创 2011-12-22 16:43:16 · 99 阅读 · 0 评论 -
annotation定义字段默认值
java1.5引入了annotation,初看起来非常cool,但是仔细想想它可以被用在什么地方呢?什么样的需求才是用annotation的最佳方式呢? 偶先举几个例子吧: 1. O/R Mapping 比如EJB3的持久化映射, 具体就不用说了, 规范里面非常清楚了, 看代码:Java代码 @NamedQueries({ @NamedQuery( ...原创 2011-10-18 10:00:31 · 700 阅读 · 0 评论 -
Java Annotation入门
前言:在上篇文章《Java Annotation入门》中概要性的介绍了Annotation的定义、使用,范围涵盖较广,但是深度不够。所以作者在《Java Annotation入门》后,继续整理了Annotation的概念和知识点,与喜欢research的朋友们共享。阅读提示:文中提到的程序成员或者程序元素是一个概念,指组成程序代码的单元:如类、方法、成员变量。一、Annotation究竟是什么?...原创 2011-10-18 09:51:35 · 63 阅读 · 0 评论 -
使用javassist增强ValueObject对象功能——给ValueObject属性设置Get和Set方法
ValueObject是长天公司自己开发的数据操作对象,它提供了通过配置文件自动生成POJO对象的功能、自动生成简单SQL语句、动态读取配置文件中的SQL语句执行数据库操作等功能,给系统开发带了很大的便利,较大地提高了开发效率,减少了开发时间、缩短了项目周期,在各个项目中被广泛使用。 但是,ValueObject对象在给开发人员提供了便利的同时,也存在着一些缺陷,有时候给开发带了一些麻烦,...原创 2010-07-29 23:25:06 · 284 阅读 · 0 评论 -
DynaBean
DynaBean是BeanUtils里的宝贝之一。有了动态Bean,就不用写那么多VO出来了,特别那些只是为了和View交互而存在的bean,i hate Form Bean。 DynaBean的用法很简单,特别是有了LazyBynaBean之后. DynaBean car = new LazyDynaBean(); car.set("carNo...原创 2010-07-29 23:20:56 · 95 阅读 · 0 评论 -
ASM
下面这个是用 ASM 工具为 Student 类添加一个 public String 类型的 address 属性:1,需要添加属性的原始类:Student.javaJava codepublic class Student { private int age; private String name; public int getAge() ...原创 2010-07-29 08:39:14 · 95 阅读 · 0 评论 -
Java 中的常见错误和可能的错误
Java 中的常见错误和可能的错误0、 需要标识符a) 不在函数内1、 非法表达式开始b) 可能:丢失括号 .2. no data founda) 可能:setInt(1,100)中,没有100这个值3. 找不到符号a) 可能:没导入包4. 指定了无效URLa) 可能:数据库名或IP错误,即连接出错5. 类路径没有找到a) 可...原创 2010-07-24 19:58:15 · 618 阅读 · 0 评论 -
JAVA加密解密---自定义类加载器应用
JAVA加密解密---自定义类加载器应用 Posted on 2007-04-22 11:09 久城 阅读(2683) 评论(5) 编辑 收藏 所属分类: Java理解笔记 最近在研究JAVA CLASS LOADING技术,已实现了一个自定义的加载器。对目前自定义加载器的应用,还在探讨中。下面是自定义的CLASSLOADER在JAVA加密解密方面的一些研究。JAVA安全...原创 2010-07-24 19:49:04 · 89 阅读 · 0 评论 -
log4j中配置日志文件相对路径
方法一、 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs/app.log其中“${WORKDIR}/”是个变量,会被System Property中的“WORKDIR”的值代替。这样,我们就可以在log4j加载配置文件之前,先用System.setPr转载 2013-05-22 16:44:55 · 1205 阅读 · 0 评论 -
聊胜于无 Java之Caesar与Vigenere实现
1 背景介绍话说目前做所谓"企业"开发的语言基本就集中在运用.Net和J2EE上了。又话说,在下很不幸又和Java"同流合污"了一把。现在回想起来,真是感慨万千啊~遥想公瑾当年,小乔初嫁了,雄姿英发,羽扇纶巾,谈笑间,强虏灰飞烟灭。~额,下面插播一下正题。其实,目前国内用Java做真正的"企业级"得其实并不是很多,绝大多数都是用个SSH1就觉得这就是Java之企业级开发了,之后就开始沾沾自喜转载 2011-11-04 11:40:44 · 701 阅读 · 0 评论 -
Spring对注解(Annotation)处理源码分析1——扫描和读取Bean定义
1.从Spring2.0以后的版本中,Spring也引入了基于注解(Annotation)方式的配置,注解(Annotation)是JDK1.5中引入的一个新特性,用于简化Bean的配置,某些场合可以取代XML配置文件。开发人员对注解(Annotation)的态度也是萝卜青菜各有所爱,个人认为注解可以大大简化配置,提高开发速度,同时也不能完全取代XML配置方式,XML 方式更加灵活,并且发展的相对转载 2011-10-31 22:58:01 · 568 阅读 · 0 评论 -
Spring基于 Annotation 的简单介绍
1.使用 @Repository、@Service、@Controller 和 @Component 将类标识为 Bean:Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的开发。@Repository 注解便属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。具体只需将该注解标注在 DAO 类上即可。同时,为了让 Spr转载 2011-10-31 23:01:01 · 331 阅读 · 0 评论 -
java从入门到精髓 - 反射Annotation
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->import java.lang.annotation...原创 2011-10-18 10:03:03 · 90 阅读 · 0 评论