java銷毀
A. java怎樣去銷毀一個標簽
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author daniel
*/
public class Demo extends JFrame {
private int count = 0;
Timer timer;
public Demo() {
setLayout(null);
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
timer = new Timer(1000, new TimerListener());
timer.start();
}
public void mouseReleased(MouseEvent e) {
timer.stop();
{
getContentPane().removeAll();
System.gc();
}
getContentPane().repaint();
}
});
// 創建窗體
this.setTitle("按下滑鼠不動信息交替出現..松開消失");
this.setSize(400, 400);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
class TimerListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
{
getContentPane().removeAll();
System.gc();
}
getContentPane().repaint();
if ((count % 2) == 0) {
JLabel lal_1 = new JLabel("JAVA is fun");
lal_1.setSize(100, 100);
getContentPane().add(lal_1);
lal_1.setLocation(100, 100);
lal_1.setVisible(true);
} else {
JLabel lal_2 = new JLabel("JAVA is powerful");
lal_2.setSize(100, 100);
getContentPane().add(lal_2);
lal_2.setLocation(250, 100);
lal_2.setVisible(true);
}
count += 1;
}
}
public static void main(String[] args) {
Demo d = new Demo();
}
}
java的特點是「永遠不需銷毀對象」,也似乎沒有手動銷毀對象的機制。它有一個垃圾回收站,當一個對象出了作用域,且引用數為0時,就可能被垃圾回收。System.gc()用於強制進行終結動作,可加速清理。
為了能夠及時清理某個對象,就將它的作用域設置得盡量小。將對象作為類成員的話,作用域太大,要等類銷毀時才有機會被回收。
如果覺得getContentPane().removeAll()會同時remove掉其它對象的話,將lal_1和lal_2用一個小一點的容器裝起來。
B. java如何主動銷毀Dialog面板
Dialog出現後會阻塞後面的程序,但只是阻塞調用處的處理進程,而Dialog本身的代碼卻不受限制。因此,銷毀的代碼可以放在Dialog裡面。
我的方法是在Dialog類裡面添加一個Timer控制項,用於計時,時間一到,dispose()銷毀Dialog,下面是我的代碼(好用的話請採納):
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Test extends JFrame implements ActionListener
{
JButton btnTest=new JButton("Test");
public Test()
{
setTitle("Test");
setSize(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(btnTest,BorderLayout.NORTH);
btnTest.addActionListener(this);
}
public static void main(String... args)
{
new Test().setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
new AutoDialog(this).setVisible(true);
}
private class AutoDialog extends JDialog //implements ActionListener
{
JLabel lblMsg=new JLabel("5");
Timer timer=new Timer(1000,new ActionListener()
{
int count=5;
public void actionPerformed(ActionEvent e)
{
count--;
if(count<0)
{
timer.stop();
AutoDialog.this.dispose();
}
else lblMsg.setText(""+count);
}
});
public AutoDialog(Frame owner)
{
super(owner,"Dialog demo",true);
setSize(100,100);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
add(lblMsg,BorderLayout.CENTER);
timer.start();
}
}
}
C. java怎麼讓一個類在銷毀前關閉資料庫鏈接
你真是個菜鳥
銷毀的是對象,銷毀是把內存中的數據刪除掉,內存中存取的是對象的信息,
關閉資料庫連接 用一個try{}finally{}把要關閉的資料庫和要銷毀的類都寫在裡面(你說類就是類把)
例如:一個類 它的名字是person
try{
一些其它代碼
}finally{
要銷毀的類(比如person)
關閉資料庫
}
不懂再問》》》
D. 銷毀對象在java中怎麼用
java中的對象是由java自動銷毀的。當對象不存在引用時,它就會被java自動銷毀。
System.gc()可以提醒java去回收無用的對象,但是什麼時候銷毀該對象還是由java自己決定
E. 如何正確的創建和銷毀Java對象
除非一些必要手動銷毀的對象,比如Bitmap,其他的對象不需要人為操控。
銷毀對象就是置空
Object c=xxxxx;
c=null:
F. Java的JFrame怎麼銷毀啊
JFrame有一個
public
void
dispose()可以撤銷窗口,並且釋放窗口使用的資源。直接調用就可以了,例如:
JFrame
frame
=
new
JFrame();
frame.dispose();
不過更加一般的方法是在創建窗體時調用frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);這樣就可以直接點擊關閉按鈕時撤銷窗體並且釋放窗體所使用的資源。
G. java銷毀線程池
你是用Java自帶的ExecutorService這個線程池么?如果是的話,ExecutorService自身會管理池中的線程,不需外界手動干預。
如果是自己寫的話,必須在線程池內的線程加入退出判定,要不然的話是沒法從線程外結束線程的。(你也不應該這樣做,因為這樣會導致驗證的資源泄漏)
H. Java靜態變數可以銷毀嗎
1. jvm所有的堆和方法區對象都是由GC機制清除的,無法通過程序GC(system.gc()只是發出一個信號,具體GC執行由虛擬機完成),所以肯定不能通過程序控制銷毀對象。
2. 靜態變數應該是存在方法區的,我記得看深入JAVA虛擬機中有說,類載入後,如果沒有任何new出對象存活,並且靜態變數沒有被任何引用的話,在fullGC時,類是有可能會被回收掉的,自然靜態變數也就被回收了。(具體頁數我再去翻翻)
I. 怎麼銷毀java中的線程
Thread可以用destroy方法銷毀,但它不保證資源被釋放,所以只能用在無資源的情況下。一般都自行控制代碼邏輯讓run()方法正常執行完,常用的方法包括可以被打斷(在代碼里檢測interrupted())、檢測狀態標識退出循環等。