|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。在Thinkinginjava里,枚举了Java的六种存储范例
1.存放器
编写过汇编程序的应当对存放器十分熟习,当时候用的ax,bx,cx,dx等等。存放器在CPU内里,以是速率出格快,可是数目十分无限。在java中没法间接和存放器打交道,不外在c中是能够声明存放器变量的。
2.栈空间
写过汇编的一定感应十分亲热,在汇编程序里不就是压栈和出栈吗?有一个指针把持栈空间,分派空间是栈指针上移,就是push操纵,开释空间指针下移,就是pop操纵。固然C和C++也次要是经由过程栈分派空间的。由于只需压栈和出栈,以是速率出格快。java中的对象援用是经由过程栈分派的,而java对象不是经由过程栈分派的,这也是java效力绝对差一些的缘故原由吧。经由过程栈分派空间有一个限定就是必需在编译时断定空间巨细,也就是程序运转前就应当能够晓得运转时内存的情形。好比movax,4这条指令占用几个字节在编译时是断定的。
3.堆空间
就是一个年夜的内存块,必要的时分就请求分派,java中的对象都是在堆中非配的。可是堆空间的接纳是对照贫苦的,以是JVM的接纳算法都对照庞大。可是假如堆空间对照年夜,也就是内存没有面对用完的话,JVM一样平常不会启动渣滓接纳器。这类情形下堆的效力和栈应当差未几,只是堆没有接纳空间罢了。假如要不时的启动GC的话,能够设想效力会极为低下。
4.静态存储区
声明为static的变量由于他们一向存在(全部程序运转过程当中),以是他们被保留在一个静态存储区。
5.常量贮存区
声明为finalstatic的为常量,能够保留在常量贮存区,另有String范例的对象都是常量,体系保护了一个String常量池。
6.其他存储
非RAM存储器,次要就是磁带,磁盘等等。
这里最关头的应当是栈和堆,栈应当是使用最普遍的,在汇编中函数挪用的时分通常为如许的历程:
1.压栈(回护现场)
2.进进办法挪用
3.出栈(恢复现场)
这里只是复杂的形貌,下面的历程大概会有很多多少嵌套,不外大抵历程就是如许,在其他言语实在也是一样的。
在性能方面,在windows平台下,.net可能是占强项,要是把.net放在sun开发的操作系统上去运行呢?根本就运行不了,.net对其它操作系统的支持也很弱,性能也可能比不上java。 |
|