仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 412|回复: 9
打印 上一主题 下一主题

[学习教程] 来看JVM调优总结(五)-分代渣滓接纳胪陈1

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:03:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。
为何要分代
分代的渣滓接纳战略,是基于如许一个现实:分歧的对象的性命周期是纷歧样的。因而,分歧性命周期的对象能够接纳分歧的搜集体例,以便进步接纳效力。
在Java程序运转的过程当中,会发生大批的对象,个中有些对象是与营业信息相干,好比Http哀求中的Session对象、线程、Socket毗连,这类对象跟营业间接挂钩,因而性命周期对照长。可是另有一些对象,次要是程序运转过程当中天生的一时变量,这些对象性命周期会对照短,好比:String对象,因为其稳定类的特征,体系会发生大批的这些对象,有些对象乃至只用一次便可接纳。
试想,在不举行对象存活工夫辨别的情形下,每次渣滓接纳都是对全部堆空间举行接纳,消费工夫绝对会长,同时,由于每次接纳都需要遍历一切存活对象,但实践上,关于性命周期长的对象而言,这类遍历是没无效果的,由于大概举行了良多次遍历,可是他们仍旧存在。因而,分代渣滓接纳接纳分治的头脑,举行代的分别,把分歧性命周期的对象放在分歧代上,分歧代上接纳最合适它的渣滓接纳体例举行回收。
怎样分代
如图所示:

假造机中的共分别为三个代:年老代(YoungGeneration)、大哥点(OldGeneration)和耐久代(PermanentGeneration)。个中持久代次要寄存的是Java类的类信息,与渣滓搜集要搜集的Java对象干系不年夜。年老代和大哥代的分别是对渣滓搜集影响对照年夜的。
年老代:
一切重生成的对象起首都是放在年老代的。年老代的方针就是尽量疾速的搜集失落那些性命周期短的对象。年老代分三个区。一个Eden区,两个Survivor区(一样平常而言)。年夜部分对象在Eden区中天生。当Eden区满时,还存活的对象将被复制到Survivor区(两其中的一个),当这个Survivor区满时,此区的存活对象将被复制到别的一个Survivor区,当这个Survivor往也满了的时分,从第一个Survivor区复制过来的而且此时还存活的对象,将被复制“大哥区(Tenured)”。必要注重,Survivor的两个区是对称的,没前后干系,以是统一个区中大概同时存在从Eden复制过去对象,和夙昔一个Survivor复制过去的对象,而复制到大哥区的只要从第一个Survivor往过去的对象。并且,Survivor区总有一个是空的。同时,依据程序必要,Survivor区是能够设置为多个的(多于两个),如许能够增添对象在年老代中的存在时间,削减被放到大哥代的大概。
<p>
j2EE和asp比较,其实也没什么比的,原因和我上面说那些比较差不了多少,也是稳定性,安全性,J2EE比asp高,速度上比不过asp,asp也是延续着它的拖拽控件的方法,提高速度。
小妖女 该用户已被删除
沙发
发表于 2015-1-20 13:17:07 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
飘灵儿 该用户已被删除
板凳
发表于 2015-1-21 07:52:12 来自手机 | 只看该作者
是一种突破用户端机器环境和CPU
不帅 该用户已被删除
地板
发表于 2015-1-24 23:45:10 | 只看该作者
是一种使用者不需花费很多时间学习的语言
再见西城 该用户已被删除
5#
发表于 2015-2-2 16:55:14 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
若相依 该用户已被删除
6#
发表于 2015-2-8 01:50:56 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
精灵巫婆 该用户已被删除
7#
发表于 2015-2-23 23:44:58 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
深爱那片海 该用户已被删除
8#
发表于 2015-3-7 10:26:16 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
萌萌妈妈 该用户已被删除
9#
 楼主| 发表于 2015-3-14 21:29:56 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
山那边是海 该用户已被删除
10#
发表于 2015-3-21 14:09:42 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-18 06:32

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表