<small>
1院尔、java中垃圾回收機制
java中的內存溢出現(xiàn)象
Dog[] dogs = new Dog[10000000];
for(int i=0; i<dogs.length; i++){
dogs[i] = new Dog();
}
java.lang.OutOfMemoryError內存溢出現(xiàn)象后频,
非常可怕宋雏,必須避免喇聊。
解決方案:
for(int i=0; i<dogs.length; i++){
dogs[i] = new Dog();
//dogs[i]的使用 start
//dogs[i]的使用 end
dogs[i] = null;
}
將使用完畢的引用盡快指向null恍风,便于
垃圾回收機制對沒有被引用指向的對象進行回收,
釋放內存空間誓篱,有效的避免內存的浪費使用導致
內存溢出現(xiàn)象朋贬。
2)、java中的垃圾回收機制(java自動完成)
System.finalize();
掃描堆中燕鸽,是否存在沒有被引用指向的對象兄世。
System.gc();
如果有此類對象,gc會自動“回收”對象
釋放其所占有的內存空間啊研。從而達到內存的
有效使用御滩,避免出現(xiàn)內存溢出現(xiàn)象。
有以下代碼
List dogs = new ArrayList();
for(int i=0; i<10000; i++){
Dog dog = new Dog();//10000個引用党远,及10000個對象削解。
dogs.add(dog);
}
System.out.println(dogs.size());//10000
將上述代碼優(yōu)化如下:
List dogs = new ArrayList();
Dog dog = null;
for(int i=0; i<10000; i++){
dog = new Dog();//1個引用、一個對象
dogs.add(dog);
}
System.out.println(dogs.size());//10000
找對象-歸類-特征沟娱、行為描述
創(chuàng)建類(屬性氛驮、方法)- 創(chuàng)建對象(屬性賦值、方法調用)
step1:找對象
-號對象:
屬性:
200個對象 - 1個
x济似、y軸的坐標(每個對象坐標固定)
組成元素:字符"-"
行為:打印
號對象
屬性:
1個
x矫废、y軸的坐標(不固定)
組成元素:字符""
行為:打印
左移、右移砰蠢、下落蓖扑、上移(不允許)
step2:歸類
-:Line
int x,y;//坐標
String CHARACTER = "-";//組成元素
printLine()//打印
*:Cell
int x,y;//坐標
String CHARACTER = "*";//組成元素
printCell()//打印
moveLeft()//左移
moveRight()//右移
drop()//下落
Wall:墻面
不需要再由200個 - 號對象組成。
因為 - 號對象是死的台舱,不僅不能給開發(fā)帶來好處律杠,
只能增加負擔。
屬性:
行數(shù)竞惋、列數(shù)
組成元素: -
方法:
打印柜去。