導航:首頁 > 編程語言 > java清除對象

java清除對象

發布時間:2024-07-30 04:18:39

java遍歷list 並刪除相同值對象

用一個for循環遍歷List時,不能刪除其中的元素。

用Iterator操作即可。

還有 Pro類要重寫一下 toString方法。這樣System.out.println里才能列印出來。

import java.util.*;

public class ListTest {
public static void main(String[] args) {

List<Pro> list = new ArrayList();
Pro p1 = new Pro("1000","1000");
Pro p2 = new Pro("1001","1002");
Pro p3 = new Pro("1003","1004");
Pro p4 = new Pro("1005","1006");
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);

for (Iterator<Pro> i = list.iterator(); i.hasNext();) {
Pro o = i.next();
if(o.getProid().equals(o.getProName())){
i.remove();
}
}
System.out.println(list);
}
}

class Pro{
private String proid;
private String proName;

public String getProid() {
return proid;
}
public void setProid(String proid) {
this.proid = proid;
}
public String getProName() {
return proName;
}
public void setProName(String proName) {
this.proName = proName;
}
public Pro(String proid, String proName) {
super();
this.proid = proid;
this.proName = proName;
}
public Pro() {
}

public String toString() {
return proid + ":" + proName;
}
}

⑵ Java里的對象在程序結束後會被立刻清除嗎

虛擬機銷毀對象是隨機的,不可預測的,沒有辦法強制銷毀;
System.gc()只是通知虛擬機可以進行銷毀了,銷不銷毀都是看虛擬機,它自己並不會做什麼清除的工作;
fianlise()方法只是當虛擬機在清除對象之前調用,人為控制不了;
總之一句話,銷毀對象完全由虛擬機控制,程序員能做的就是通知虛擬機可以銷毀了,但不能控制。

⑶ JAVA,servlet頁面里怎樣清除存在session中的某一個對象

HttpSession ht=req.getSession(true);
session的刪除:版
//從session中刪權除user屬性
//ht.removeAttribute(要刪除的attribute的name);
ht.removeAttribute("user");

⑷ c++ c# java鍒涘緩鍜屽垹闄ゅ硅薄鐨勫尯鍒

銆愬師鍒涖
榪欎釜鏄鎴戣嚜宸卞啓鐨勬葷粨閲岀殑涓閮ㄥ垎錛屾憳鍑烘潵浜嗭紝鏈鏉ュ啓鐨勬槸鎵鏈夌殑鍒濆嬪寲鎬葷粨錛屽寘鎷鍙橀噺銆傚洜涓轟綘闂鐨勬槸鏋勯犲拰鏋愭瀯錛屾墍浠ュ氨鎽樹簡涓閮ㄥ垎銆

=====鏋勯犲嚱鏁板拰鏋愭瀯鍑芥暟鐨勮皟鐢ㄩ『搴=====

璁ㄨ鴻繖涓闂棰樻槸寰堟湁鎰忎箟鐨勶紝鏇村叧閿鐨勬槸錛屽紕娓呮欳++鍜孞AVA閲屾瀯閫犲嚱鏁板拰鏋愭瀯鍑芥暟鐨勮皟鐢ㄩ『搴忓悗錛屽氨浼氭繁鍒繪劅瑙夊埌鍏跺疄闈㈠悜瀵硅薄鏄鏍囧噯錛岃孋++鍜孞AVA鏄鎸夌収榪欎釜鏍囧噯鐨勪笉鍚岀殑鎵ц岃咃紝
鎴栬呰達紝闈㈠悜瀵硅薄鏄涓涓綾伙紝鑰孋++鍜孞AVA鏄榪欎釜綾葷殑涓や釜瀵硅薄~~~

濂戒簡錛屼笉搴熻瘽浜嗭紝璇存d簨錛

褰撴垜浠鐪嬪埌涓涓瀵硅薄錛屽彲鏄榪欎釜瀵硅薄鐨勭被鏄鏄涓澶ф5緇ф壙鏍戜腑鐨勪竴鍛橈紝鑰屼笖姣忎釜緇ф壙鑰呴噷榪樻湁濂藉氱粍鍚堢殑瀛愬硅薄錛
鏁頒竴鏁幫紝浼拌′篃宸涓嶅氬埌浜嗙浜屻佷笁鍗佷唬鎺岄棬浜嗭紝閭f垜鍒涘緩璇ョ被鐨勪竴涓瀵硅薄鏃訛紝榪欎簺鏋勯犲拰鍒濆嬪寲欏哄簭
鏄鎬庢牱鐨勶紵涓嶈佹儕鎱岋紝鍏跺疄鍙鏄涓涓鏈綆鍗曠殑瑙勫垯錛

瀵逛竴涓綾繪潵璇達紝鎬繪槸鏈変袱姝ワ紝
絎涓姝ワ紝鍒濆嬪寲綾婚噷鐨勬暟鎹鎴愬憳錛
絎浜屾ワ紝璋冪敤綾葷殑鏋勯犲櫒錛
鏄涓嶆槸寰堢畝鍗曪紵浣嗘敞鎰忥紝鐜板湪璁ㄨ虹殑涓滆タ鍙涓嶅寘鍚玸tatic綾誨瀷鐨勬垚鍛橈紝static鎴愬憳鐨勪紭鍏堢駭鍙鏄楂樹簡鍘諱簡錛
榪瀖ain鍑芥暟閮借繕娌¤繘灝卞厛鍒濆嬪寲浜嗭紝鍥犱負榪欎簺涓滆タ涓嶄細鍥犱負綾誨硅薄鐨勫壋寤鴻屽壋寤猴紝鏄鍦ㄦ暣涓紼嬪簭榪愯屽墠
灝卞湪闈欐佹暟鎹鍖洪噷鍒嗛厤濂戒簡錛
濂斤紝鐜板湪璇磋翠笂闈㈢殑涓や釜姝ラわ紝
榪欎袱涓姝ラよ窡C++榪樻槸JAVA鏄娌℃湁鍏崇郴鐨勶紝鍙瑕佹槸闈㈠悜瀵硅薄鐨勮璦錛岄兘閬靛驚榪欎釜瑙勫垯錛
絎涓姝ワ紝綾婚噷鐨勬暟鎹鎴愬憳錛屼緥濡 int i;C++鍜孞AVA閮芥槸榪欎箞瀹氫箟鐨勶紝
浣咼AVA鏈夌偣涓嶅悓錛屽彲浠ュ啓鎴恑nt i = 9;鍦–++閲岃繖涔堜竴鍐欏氨緙栬瘧鍑洪敊浜嗭紝
閭C++閲屾庝箞鎵嶈兘杈懼埌int i=9榪欐牱涓涓鏁堟灉鍛錛
榪樿板緱涓婇潰璁ㄨ虹殑鍒濆嬪寲鍒楄〃鍚楋紝鐜板湪鍐嶆妸渚嬪瓙鍐欒︾粏鐐癸紝

JAVA鐗堟湰鐨勶細
class C
{
int i = 9;
char c;
}

C++鐗堟湰鐨勶細
class C
{
int i;
char c;
public:
C() : i(9) {}
};

璁╂垜浠鐪嬬湅榪欎袱涓鐗堟湰紼嬪簭鐨勪笉鍚岋紝
JAVA鐗堟湰閲屽畾涔変簡i鍜宑錛屼絾i緇欎簡涓鍒濆9錛岃宑娌℃湁錛
C++鐗堟湰閲屼篃瀹氫箟浜唅鍜宑錛屼絾鍦ㄥ垵濮嬪寲鍒楄〃閲岀粰浜唅鍒濆礆紝鑰宑娌℃湁錛
鍙戠幇綾諱技鐐逛簡涔堬紝鍏跺疄C++鐨勫垵濮嬪寲鍒楄〃騫朵笉鏄璁捐¤呯獊鍙戝囨兂鎯沖紕涓榪欑嶈娉曞嚭鏉ョ帺鐜╋紝
C++榪欐牱鍋氫笉灝變負浜嗚揪鍒拌祴涓鍒濆肩殑鐩鐨勪箞錛屾垨鑰呰碕AVA鐪嬪埌C++寮勮繖涔堝嶆潅錛屾墍浠ュ氨鏉ヤ釜綆鍖栫偣鐨勶紝
濂斤紝鍒版や負姝錛屾垜浠宸茬粡寮勬竻妤氱涓涓姝ラや簡錛屾垚鍛樺彉閲忕殑鍒濆嬪寲錛屼篃灝辨槸璇村湪綾誨壋寤烘椂錛岃繘鍏ユ瀯閫犲櫒
涔嬪墠錛屽厛鎶婃垚鍛樺彉閲忓仛涓涓鍒濆嬪寲錛岃繖涓鍒濆嬪寲榪囩▼灝辨槸浠g爜涔﹀啓鑰呭畾鐨勶紝鎴戜滑緇欏摢浜涘彉閲忚祴浜嗗垵鍊礆紝
榪愯屾椂灝辯粰鍝浜涘彉閲忚祴鍒濆礆紝鍙鏄涓ょ嶈璦璧嬪垵鍊肩殑鏂瑰紡涓嶅悓鑰屽凡錛

絎浜屾ワ紝璋冪敤鏋勯犲櫒錛
榪欏洖瑕佹潵涓鏇村嶆潅鐐圭殑浠g爜錛
JAVA鐗堟湰鐨勶紝
class Parent
{
public Parent(){}
public Parent(int i){}
}
class Child : extends Parent
{
int i;
public Child() {}
}
C++鐗堟湰鐨勶紝
class Parent
{
public:
Parent(){}
Parent(int i){}
};
class Child : public Parent
{
int i;
public:
Child(){}
};

榪欐椂鍒涘緩涓涓狢hild瀵硅薄錛屽皢鍙戠敓浠涔堜簨鎯咃紵鎴戜滑騫舵病鏈夎皟鐢ㄥ熀綾葷殑鏋勯犲嚱鏁幫紝浣嗗疄闄呬笂緙栬瘧鍣ㄥ凡緇忕粰鎴戜滑璋冪敤浜
鍩虹被閭d釜榛樿ょ殑鍗蟲病鏈変換浣曞嚱鏁扮殑鏋勯犲嚱鏁頒簡錛屾敞鎰忎負浠涔堟垜浠瑕佷負Parent綾誨啓涓や釜鏋勯犲嚱鏁幫紝鍥犱負鍙瑕佸畾涔夎繃
鏋勯犲嚱鏁幫紝緙栬瘧鍣ㄥ氨涓嶄細鑷鍔ㄧ敓鎴愰粯璁ゆ瀯閫犲嚱鏁頒簡錛屾墍浠ユ垜浠蹇呴』鎶婇粯璁ら偅涓涔熸樉寮忕殑鍐欏嚭鏉ワ紝
濡傛灉鎴戜滑鏄懼紡鐨勮皟鐢ㄦ瀯閫犲嚱鏁板憿錛
渚嬪傚湪JAVA鐗堟湰鐨凜hild鏋勯犲嚱鏁扮涓鍙ラ噷鍐檚uper(5)錛
鎴栬呭湪C++鐗堟湰鐨凜hild鐨勫垵濮嬪寲鍒楄〃閲屽啓Parent(5)錛
榪欏張鍙戠敓浠涔堜簨鎯咃紵姝ゆ椂緙栬瘧鍣ㄥ氨涓嶄細緇欐垜浠璋冪敤鍩虹被閭d釜榛樿ゆ瀯閫犲嚱鏁幫紝鍥犱負鎴戜滑璋冪敤榪囦簡錛

榪欎釜浼間箮寰堟竻妤氫簡錛

瀵笴++鏉ヨ達紝鎴戜滑鍙浠ュ湪鍒濆嬪寲鍒楄〃閲屾樉寮忕殑鎸囧畾瑕佽皟鐢ㄥ摢涓鏋勯犲嚱鏁幫紝濡傛灉涓嶆寚瀹氾紝鍒欏熀綾婚粯璁ら偅涓灝嗚璋冪敤錛
瀵笿AVA鏉ヨ達紝鎴戜滑涔熷彲浠ュ湪鏋勯犲嚱鏁扮殑絎涓鍙ラ噷鏄懼紡鐨勬寚瀹氳佽皟鐢ㄥ熀綾葷殑鍝涓鏋勯犲嚱鏁幫紝鍚﹀垯緙栬瘧鍣ㄤ嬌鐢ㄩ粯璁ょ殑錛
寰堟竻妤氫簡鍚э紵浣咰++鍜孞AVA鐨勭暐寰鏈夌偣涓嶅悓錛屽洜涓篊++鏈変釜鍒濆嬪寲鍒楄〃錛岃繖鏄璺熸瀯閫犲嚱鏁板畬鍏ㄧ嫭絝嬬殑涓滆タ錛
鎴戜滑涓嶄細鎶婁簩鑰呮販璧鋒潵錛屽洜涓烘垜浠閮界煡閬擄紝鍦ㄨ繘鍏ユ瀯閫犲嚱鏁頒箣鍓嶏紝鍒濆嬪寲鍒楄〃閲岀殑涓滆タ宸茬粡琚鎵ц岃繃浜嗭紝鍖呮嫭
鍩虹被鐨勬瀯閫犲嚱鏁扮殑璋冪敤錛屽彲JAVA灝變笉涓鏍蜂簡錛岃繖鍩虹被鐨勬瀯閫犲嚱鏁拌皟鐢ㄦ庝箞瑕佸埌鏋勯犲櫒閲屽幓璋冪敤鍛錛岃繖涔熸槸鍒濆嬪寲鐨
涓閮ㄥ垎鍟婏紝榪欐椂瑕佹兂璧蜂竴涓涓滆タ錛欽AVA瑙勫畾錛屽傛灉瑕佹寚瀹氬瑰熀綾葷殑鏋勯犲櫒鐨勮皟鐢錛岃繖涓璇鍙ヤ竴瀹氬彧鑳藉啓鍦ㄦ瀯閫犲櫒
鍑芥暟閲岀殑絎涓鍙ワ紝濂戒綘涓涓滀笢錛屽綋鏃跺垵鐪婮AVA榪樼湡濂囨浜嗭紝鎬庝箞浼氭湁榪欐牱涓涓瑙勫畾錛
鐜板湪鏄庣櫧浜嗗惂錛屽洜涓篔AVA娌℃湁鍒濆嬪寲鍒楄〃榪欑嶄笢瑗匡紝鎵浠ュ彧鑳芥斁鍒版瀯閫犲櫒閲屼簡錛岃屽瑰熀綾繪瀯閫犲櫒鐨勮皟鐢ㄦ槸瑕佸彂鐢
鍦ㄦ垚鍛樺彉閲忕殑鍒濆嬪寲涔嬪悗錛屽強瀛愮被鏋勯犲櫒鐨勬墽琛屼箣鍓嶏紝鎵炬潵鎵懼幓錛屼篃鍙鏈夎繖涓浣嶇疆鏈鍚堥備簡~~~
濂戒簡錛岀幇鍦ㄥ規瀯閫犲櫒鐨勮皟鐢ㄥ緢娓呮氫簡錛

浣嗗規垚鍛樺彉閲忕殑鍒濆嬪寲榪樿佸啀璇翠竴涓嬶紝
濡傛灉鎴戝畾涔夌殑鏃跺欏啓鎴
int i;
char c;
浣嗘槸鎴戝湪鍒濆嬪寲鍒楄〃閲屽啓鐨勬槸
c('a'),i(9)
涔熷氨鏄璇村垵濮嬪寲鍒楄〃鍐欑殑欏哄簭鍜屽彉閲忛『搴忎笉涓鏍鳳紝鏀懼績錛屽垵濮嬪寲榪囩▼鏄鎸夌収瀹氫箟鐨勯『搴忔潵鍐欑殑錛
瀹氫箟鏃舵槸鍏堝畾涔塱鎵嶅畾涔塩錛屽垯緙栬瘧鍣ㄧ紪璇戞椂姘歌繙鍙浼氬厛鍒濆嬪寲i鍚庡垵濮嬪寲c錛
鍒濆嬪寲鍒楄〃閲岀殑欏哄簭鏃犳墍璋擄紝鍙鏄鍛婅瘔緙栬瘧鍣錛岃繖浜涘彉閲忔槸鏈夊垵鍊肩殑錛屼粎姝よ屽凡~~
鍚屾牱錛屾妸瀵瑰熀綾繪瀯閫犲櫒鐨勮皟鐢ㄥ拰鎴愬憳鍙橀噺鍒濆肩殑瀹氫箟涔熷彲浠ユ墦涔憋紝涓嶄細寮曡搗闂棰橈紝
緙栬瘧鍣ㄤ細瀵繪壘鍦ㄥ垵濮嬪寲鍒楄〃閲屾湁娌℃湁鎴戜滑瀵瑰熀綾繪瀯閫犲櫒鐨勮皟鐢錛屾湁鐨勮瘽灝辮皟鐢ㄦ垜浠鎸囧畾鐨勶紝娌℃湁鍒
璋冪敤榛樿ょ殑錛岃繖璺熼『搴忔槸娌℃湁鍏崇郴鐨剘

濂斤紝涓嬮潰鎶婅繖涓ゆョ粨鍚堣搗鏉ワ紝鍦ㄤ竴媯電戶鎵挎爲閲屾潵璁詫紝
褰撴垜浠鍒涘緩緇ф壙鏍戦噷絎琻浠f帉闂ㄧ殑瀵硅薄鏃訛紝
灝嗘寜鐓т笅闈㈢殑姝ラよ繘琛岋細

浠庣琻浠f帉闂ㄥ紑濮嬪悜涓婅拷婧錛屼竴鐩村埌鍒涙淳紲栧笀涔熷氨鏄鏈欏跺眰鐨勫熀綾伙紝
濂斤紝灝變粠榪欎釜紲栧笀寮濮嬶紝榪涜屾垚鍛樺彉閲忕殑鍒濆嬪寲鍜屾瀯閫犲櫒鐨勮皟鐢錛
褰撶劧錛屽熀綾葷殑鏋勯犲櫒鏄鐢卞瓙綾誨喅瀹氳皟鐢ㄧ殑錛屽傛灉瀛愮被娌℃湁璋冪敤鍩虹被鐨勬瀯閫犲櫒錛屽垯鍩虹被鐨勯粯璁ゆ瀯閫犲櫒灝嗚璋冪敤錛
鎸夌収緇ф壙鏍戦『搴忎緷嬈″悜涓嬶紝
濡備笅鎻忚堪錛
鍒涙淳紲栧笀鐨勬垚鍛樺垵濮嬪寲瀹屼簡錛岀劧鍚庣湅絎涓浠f帉闂ㄦ湁娌℃湁鎸囧畾榪囪佽皟鐢ㄧ栧笀鐨勫摢涓鏋勯犲櫒錛
濡傛灉鎸囧畾浜嗭紝姝ゆ椂灝辮皟鐢ㄦ寚瀹氱殑閭d釜鏋勯犲櫒錛屽惁鍒欙紝灝辮皟鐢ㄧ栧笀鐨勯粯璁ょ殑閭d釜鏋勯犲櫒錛
鐒跺悗鍚戜笅錛
鍒頒簡絎涓浠f帉闂錛屽悓鏍鳳紝鍏堝硅ユ帉闂ㄧ殑鎴愬憳鍙橀噺鍋氬垵濮嬪寲錛岀劧鍚庣湅絎浜屼唬鎺岄棬閭f湁娌℃湁鎸囧畾榪囪佽皟鐢ㄧ涓浠f帉闂
鐨勫摢涓鏋勯犲櫒錛屽傛灉鎸囧畾榪囷紝鍒欒皟鐢ㄧ涓浠f帉闂ㄨ鎸囧畾鐨勯偅涓鏋勯犲櫒錛屽惁鍒欙紝灝辮皟鐢ㄧ涓浠f帉闂ㄧ殑榛樿ゆ瀯閫犲櫒錛
鐒跺悗鍚戜笅錛
鍒頒簡絎浜屼唬鎺岄棬錛....
鐒跺悗鍚戜笅錛
鍒頒簡絎涓変唬鎺屼滑錛...
鐒跺悗鍚戜笅錛
鍒頒簡絎琻浠f帉闂ㄨ繖錛屽氨鏄綾籄錛屽厛鍒濆嬪寲A閲岀殑鎴愬憳錛岀劧鍚庤皟鐢ˋ鐨勬瀯閫犲櫒錛岃皟鐢ˋ鐨勫摢涓鏋勯犲櫒灝變笉鐢ㄨ翠簡鍚э紝
浠g爜閲屽彲鍐欏緱娓呮氬憿錛屼緥濡侫 a;鍒欒皟鐢ㄧ殑鏄榛樿ら偅涓錛孉 a(1,'b')錛屽垯璋冪敤鐨勬槸鍙﹀栦竴涓獈
榪欏氨鏄鏁翠釜榪囩▼錛
鑰屾瀽鏋勯『搴忓憿錛熺紪璇戝櫒璁板綍鐫鍒濆嬪寲鐨勯『搴忥紝
鏋愭瀯鏃朵笉綆′笁涓冧簩鍗佷竴錛屽氨鎸夌収鍒濆嬪寲鐨勯『搴忔潵鍙嶅悜渚濇¤皟鐢ㄦ瀽鏋勫櫒~~~~

⑸ 在Java中如何主動的去釋放無用對象,從而使得系統GC可以盡早釋放內存在編程上需要注意些什麼

1、與C語言相比,垃圾回收器是JAVA的一大優勢。其功能在於自動釋放違背佔用的內存,但何時去釋放有其自身的演算法,不支持使用者直接釋放內存。
2、使用者所能做的只是使用System.gc()通知JAVA垃圾回收器在「合適」的時間逐個使用Object.finalize()清除未為程序引用的各個對象。
3、使用著調用Object的finalize()方法不會啟動任何作用,只能是重寫該方法執行寫對象銷毀前應做的操作,如關閉IO等。
4、使用者還可以做到的就是指定那些對象佔用的內存會被釋放,方法就是將對象的值賦為NULL。
5、編程用使用者應做的就是提高對象的復用性,盡量少的聲明對象。

⑹ java for循環生成的對象,如何批量刪除

從你給的代碼中可以看出,五次循環中,new出的對象都是賦值給了mod這個變數,結束循環,mod的值就是最後一次new出的對象,你通過mod自然只能刪除最後一個new出的對象,不管你調用mod.remove()多少次。
想要全部刪除,這就要看你是否有對「5次循環中前4次生成的那些對象」的引用,比如放在了一個數組或者容器中,如果有,就可以遍歷數組或者容器來刪除,否則你無法刪除,因為你都沒有對它們的引用。
如果還需幫助,你可以把全部的代碼粘貼出來看看~

⑺ java中如何顯式刪除對象

根據介紹Java的書籍的敘述,Java沒有任何方式可以顯式地刪除一個對象(即Java沒有提供任何辦法讓你能立即釋放一個不使用的內存)。Java虛擬機有垃圾回收機制幫助管理內存,垃圾回收機制的原則是:如果一個內存地址沒有被任何地方引用,則垃圾回收器會在運行的時候將它釋放掉。
所以如果你要釋放一個對象所佔用的內存的話,只有一個辦法:將這個對象的所有引用置為空,然後等待垃圾回收器下一次運行時將它回收掉。

閱讀全文

與java清除對象相關的資料

熱點內容
超值貓qq群購秒殺群 瀏覽:138
pdf文件能備注嗎 瀏覽:174
html可視化數據源碼在哪裡 瀏覽:387
adobereader專用卸載工具 瀏覽:28
vivo手機數據如何備份 瀏覽:888
ithmb文件轉換器 瀏覽:66
看病找什麼網站好 瀏覽:579
linux如何查看文件系統 瀏覽:581
linux統計點頻率 瀏覽:627
全民泡泡大戰安琪兒升級 瀏覽:620
編程scratch如何保存 瀏覽:750
aspnetmvc傳json 瀏覽:132
如何下載看神片的狐狸視頻app 瀏覽:579
怎樣將木紋文件添加到cad 瀏覽:223
java中的hashset 瀏覽:70
mate8升級emui50嗎 瀏覽:396
網路怎麼校線 瀏覽:546
會玩app稀有寶箱裡面有什麼 瀏覽:718
打開icloud備份文件在哪裡看 瀏覽:602
一個表格多個數據怎麼樣查找數據 瀏覽:466

友情鏈接