JAVA网页编程之完成加强的java class hotswap (二) 面对的成绩仓酷云
在性能方面,在windows平台下,.net网页编程可能是占强项,要是把.net网页编程放在sun开发的操作系统上去运行呢?根本就运行不了,.net网页编程对其它操作系统的支持也很弱,性能也可能比不上java。要完成本人的classreload机制,起首必要分明我们面对甚么样的成绩,起首,假造机中利用到的Class都是由各类ClassLoader装载出去的,而尽年夜部分程序的开辟者都不必要体贴这个历程,我们面对的第一个成绩就是必要将class装载这个历程拦阻上去,让一切的必要reload的class的装载都经由我们的机制,我们才无机会往实行我们的reload机制,因而我们必要拦阻体系的ClassLoader,在class装载的时分完成本人的逻辑jdk供应JVMTI(JVMDI,JVMPI),能够从底层的假造机里猎取几近一切假造机里产生的事务,我们能够经由过程捕捉这些事务,加以处置,来完成我们的目标,可是操纵jvm外部的事务必需十分当心,不然十分简单形成假造机事情不一般,乃至溃散。同时,要利用JVMTI这些底层的api,我们必要利用c/c++来完成功效,关于我们要完成的目标来讲,太庞大了点,并且,关于我来讲,几近没正派写过c/c++代码,因而这条路不予思索。
从java5入手下手,jdk入手下手供应一种新的机制来匡助我们完成这类功效,javaagent能够方面的匡助我们完成这一功效,我们能够经由过程复杂的完成一个包括premain办法的类就能够作为javaagent在假造机里实行,详细能够参考文档。因而,我们能够经由过程完成一个agent,在体系起来的时分经由过程instrmentation修正体系的ClassLoader,到场我们本人逻辑的代码来拦阻class装载的历程。注重,这里只能修正已无方法的办法体,比方修正findClass办法,在这些办法体里能够到场挪用我们真正逻辑的类的办法挪用,来完成本人的class装载测律。
关于jdk1.4及之前的版本呢?没有更好的举措,只能完成将体系的ClassLoader等相干类举行静态的enhance,然后经由过程bootclasspath在rt.jar之前加载出去,用本人的类盖住体系本人的类,来完成我们的逻辑,除这个拦阻的体例纷歧样之外,其他的逻辑处置和jdk5没有区分,因而今后的会商不必要辨别jdk版本的区分。
class装载的历程由我们把持了,可是因为jvm本身的限定,关于已装载进假造机的类(正确的说是装载进某一个ClassLoader的类),是没法做太年夜的修正的,只能修正办法的代码段,关于类布局是没法变动的,因而,我们面对的又一个成绩就是怎样奇妙的绕过这个限定。
实在想一想也复杂,既然已装载出去的类没法做很年夜的修正,那我们就不让他装载出去!
嘿嘿,干活了,下次再说。罪恶吧?!
java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的), 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 是一种语言,用以产生「小应用程序(Applet(s)) 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
页:
[1]