2023年最新java对象循环引用java循环对象属性大全.docx
《2023年最新java对象循环引用java循环对象属性大全.docx》由会员分享,可在线阅读,更多相关《2023年最新java对象循环引用java循环对象属性大全.docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023年最新java对象循环引用java循环对象属性大全 人的记忆力会随着岁月的消逝而衰退,写作可以弥补记忆的不足,将曾经的人生经验和感悟记录下来,也便于保存一份美妙的回忆。信任很多人会觉得范文很难写?接下来我就给大家介绍一下优秀的范文该怎么写,我们一起来看一看吧。 java对象循环引用 java循环对象属性篇一 优化一般意义上说是提高已有系统的性能,削减如内存、数据库、网络带宽等资源的占用,是在系统开发告一段落的前提下进行。yjbys我共享一篇j2ee系统优化之对象与循环给大家,希望大家仔细阅读! 条例一:尽量重用对象,避开创建过多短时对象 对象在面对对象编程中随处可见,甚至可以毫不夸张的
2、说是:“一切都是对象”。如何更好的创建和运用对象,是优化中要考虑的一个重要方面。笔者将对象按运用分为两大类:独享对象和共享对象。独享对象指由某个线程单独拥有并维护其生命周期的对象,一般是通过new 创建的对象,线程结束且无其它对这个对象的引用,这个对象将由垃圾收集机制自动gc。共享对象指由多个线程共享的对象,各线程保持多个指向同一个对象的引用,任何对这个对象的修改都会在其它引用上得到体现,共享对象一般通过factory工厂的getinstace()方法创建,单例模式就是创建共享对象的标准实现。独享对象由于无其它指向同一对象的引用,不用担忧其它引用对对象属性的修改,在多线程环境里,也就不须要对其
3、可能修改属性的方法加以同步,削减了出错的隐患和困难性,但由于须要为每个线程都创建对象,增加了对内存的需求和jvm gc的负担。共享对象则须要进行适当的同步(避开较大的同步块,同时防止死锁)。 还有几种特别对象:不变对象和方法对象。不变对象指对象对外不含有修改对象属性的方法(如set方法),外部要修改属性只能通过new新的实例来实现。不变对象最大的好处就是无需担忧属性被修改,避开了潜在的bug,并能无需任何额外工作(犹如步)就很好的工作在多线程环境下。如jdk的 string对象就是典型的不变对象。方法对象简洁的说就是仅包含方法,不含有属性的对象。由于没有对象属性,方法中无需进行修改属性的操作,
4、也就能采纳 static方法或单例模式,避开每次运用都要new对象,削减对象的运用。 那么该如何确定创建何种对象,这就要结合对象的运用方式和生命周期、对象大小、构建花销等方面来综合考虑。假如对象生命周期较长,会存在修改操作,不能容忍其它线程对其的修改,就应当采纳独享对象,如常见的bean类。而假如对象生命周期较长,且能为各个线程共享,就可以考虑共享对象。共享有2 种常见状况,一种是系统全局对象,如配置属性等,各个线程应当引用同一对象,任何对这个对象的修改都会影响其它线程;另一种是由于对象创建开销较大,各线程对此对象是瞬时访问,且无需再次读取其属性,如常见的date 对象,一般这种对象的运用是瞬
5、时的,比如把它format成string,假如每次创建然后等待gc就会奢侈大量内存和cpu时间,较好做法就是做成共享对象,各个线程先set再运用,留意对进行set并访问的方法要同步。不变对象一般运用在对象创建开销较小(属性较少,类层次较少),且须要能自由共享的情形。如一个对象里的常量对象,运用public static final aaa=new aaa() 创建。方法对象运用较广,如util类、dao类等,这些对象供应操作其它对象(一般是bean对象)的接口,能对系统在层次和功能上进行解耦合。 条例二:在循环处,多下功夫 循环作为程序编写的基本语法,可以说是随处可见。一些小的细微环节能带来性
6、能上的提升,而对循环体的一些改写,能带来性能的大幅提升。 比如最简洁的list遍历,会有这样的写法:for(int i=0;i 同样是对list的操作,假如要在遍历同时进行增加和删除操作,代码如下:for(int i=0,j=();i=0;i-)(i);。经过测试,假如采纳arraylist,两种写法在循环次数较少时没有太大的区分,循环次数为1000,均为1ms以内,次数为10000,前一种为60ms左右,后一种为1ms以内,而次数上到100000,前一种为 6000ms左右,后一种为15ms,随着循环次数的增多,后一种较前一种的效率优势明显提高。 这是由collection库arraylis
7、t的实现确定的,以下是jdk1.3的arraylist源码: public object remove(int index) rangecheck(index); modcount+; object oldvalue = elementdataindex; int nummoved = size - index - 1; if (nummoved > 0) opy(elementdata, index+1, elementdata, index,nummoved); elementdata-size = null; / let gc do its workreturn oldvalue;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 最新 java 对象 循环 引用 属性 大全
限制150内