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())、检测状态标识退出循环等。