|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你总不能说你写框架吧,那无疑会加大工作量,现在大多企业采取的是折中的办法,就是改别人写好的框架,可要改框架,前提是你对这个框架足够的了解,这就更难了。
良多人在议论内存保守成绩,固然关于c/c++来讲,这个应当是老失落牙的成绩,可是良多Java职员也愈来愈多得会商这个成绩,我这里写个小结,但愿对人人有必定的参考代价。
内存泄露的慨念
1.c/c++是程序员本人办理内存,Java内存是由GC主动接纳的。
我固然不是很熟习C++,不外这个应当没有犯知识性毛病吧。
2.甚么是内存保守?
内存保守是指体系中存在没法接纳的内存,偶然候会形成内存不敷或体系溃散。
在C/C++平分配了内存不开释的情形就是内存保守。
3.Java存在内存保守
我们必需先供认这个,才能够接着会商。固然Java存在内存保守,可是基础上不必很体贴它,出格是那些对代码自己就不考究的就更不要往体贴这个了。
Java中的内存保守固然是指:存在无用可是渣滓接纳器没法接纳的对象。并且即便有内存保守成绩存在,也纷歧定会体现出来。
4.Java中参数都是传值的。
关于基础范例,人人基础上没有贰言,可是关于援用范例我们也不克不及有贰言。
Java内存保守情形
JVM接纳算法是很庞大的,我也不晓得他们怎样完成的,可是我只晓得他们要完成的就是:关于没有被援用的对象是能够接纳的。以是你要形成内存保守就要做到:
持有对无用对象的援用!
不要觉得这个很简单做到,既然无用,你怎样还会持有它的援用?既然你还持有它,它怎样会是无用的呢?
我其实想不到比谁人仓库更典范的例子了,乃至于我还要援用他人的例子,上面的例子不是我想到的,是书上看到的,固然假如没有在书上看到,大概过一段工夫我本人也想的到,但是当时我说是我本人想到的也没有人信任的。
publicclassStack{
privateObject[]elements=newObject[10];
privateintsize=0;
publicvoidpush(Objecte){
ensureCapacity();
elements[size++]=e;
}
publicObjectpop(){
if(size==0)
thrownewEmptyStackException();
returnelements[--size];
}
privatevoidensureCapacity(){
if(elements.length==size){
Object[]oldElements=elements;
elements=newObject[2*elements.length+1];
System.arraycopy(oldElements,0,elements,0,size);
}
}
}
<p>
学习JAVA的目的更多的是培养自身的工作能力,我觉得工作能力的一个核心就是:独立思考能力,因为只有独立思考后,才会有自己的见解 |
|