...............讨论HelloWorld,进来都给分,说的明白的,给高分.......在线等.......... 不是写了吗,都是一样的类呀,类名一样呀,,都是Hello.java呀 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1 是直接执行的main函数的程序2。3 都是通过java文件的执行顺序都是从他的构造方法来实现的!4 则是使用实例化一个类的对象来实现的,然后通过调用类中的方法来实现!关于它的回收是有jvm自动来实现的,没有必要考虑的!在C,C++ 或其它语言中,程序员负责取消分配存储器。有时,这是一件很困难的事情。因为你并不总是事先知道存储器应在何时被释放。当在系统中没有能够被分配的存储器时,可导致程序瘫痪,这种程序被称作具有存储器漏洞。Java编程语言解除了程序员取消分配存储器的责任,它可提供一种系统级线程以跟踪每一存储器的分配情况。在Java虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的存储器。 垃圾收集在Java技术程序的生命周期中自动进行,它解除了取消分配存储器的要求,并避免了存储器漏洞。然而,垃圾收集可在JVM实现的周期中,产生意想不到的变化。 也就是说,我想在这个时候回收那个one所占的内存, JVM在三种时刻收集垃圾:1.受到请求时(On request)——方法System.gc为JVM提出建议,现在是垃圾收集的好时机。此方法并不要求一定进行垃圾收集,不过事实上他一般会导致垃圾收集立即开始。此方法的确切操作要视JVM而定。2.受到要求时(On demand)——唯一能够要求进行垃圾收集的就是new函数。如果new需要内存,它会调用垃圾收集器并发出请求,要求释放至少能够满足当前分配请求的足够内存。3.后台(Background)——JVM有一个优先级的线程用以检测系统空闲状态。该现成大部分时间都在睡眠。每次运行时,它会检查自从他上次巡查以来是否有线程运行过。当JVM已空闲了若干周期,空闲检测现成将会触发垃圾收集。这里有一项假定就是:如果一段时间以来除了空闲检测者以外没有其他程序运行,将来就会有一段时间内没有很重要的程序打算运行。——摘自《实时JAVA平台变成》 错了,是《实时JAVA平台编程》 好呀,谢谢大家,这个问题有一个缺点,没有问明白,报歉,是这样的, A有一个方法a(),B有一个方法b()当A的对象去使用a()方法的时候要大内存,但是结果却要送给B对象的b()方法,我担心在使用的过程中,由于A产生多个对象,去调用a()方法时,传给B的多个对象的b()方法,我想为了能快,想将B的对象一但调用过b()方法后,就清空这个B的对象所用的内存! 当你的对象处于eligible for garbage collection的状态时,虚拟机会根据当前的情况来选择是否回收内存.他会根据你的操作系统还有多少内存可以用,现在是不是很忙,等等来决定.因为回收内存是一件很耗时间的事情.但是你可以用System.gc();来建议虚拟机回收当前 eligible for garbage collection的对象。你只能建议,但是不能保证虚拟机一定会做。在你的3.4两个类的main方法结束后,你new的对象已经都是eligible for garbage collection了。但是在你退出main方法前,两个对象还是不会给回收的。 to maowu(猫呜) ( ) 信誉:100 : 如果这样说的话,那就是说,最好只使用一个对象,用这个对象调用不同的方法,是最快的了,直到这个程序结束了? to maowu(猫呜) ( ) 信誉:100 : "但是在你退出main方法前,两个对象还是不会给回收的"我说的就是这个.也就是说,如果没有退出这个main方法,那么如果在程序中会不断的产生一个新对象,那么这些产生的新对象如何消亡呢,? 你的问题是这样啊。那就在你认为这个对象没有用后赶紧把这个对象的引用清空啊 public static void main(String args[]) { Hello one=new Hello(); one.display(); one = null; //过了这一行,这个对象就可以被回收了。 } Java 如何复制对象(不是复制引用) StrictMath中的函数返回值异常 请问这个怎么无法排序呢、? java中内部类的各种写法包括修饰 请大侠帮我看看??? 求教JAVA初级高级编程练习题 求:数据结构JAVA版电子书下载地址 循环求帮助 frame 窗口的改变问题 哪里能下载jdk1.4,我在sun的网站下载不下来 初学求教!一道练习题 急!急!急!大虾们来帮忙啊!JBoss的问题......
2。3 都是通过java文件的执行顺序都是从他的构造方法来实现的!4 则是使用实例化一个类的对象来实现的,然后通过调用类中的方法来实现!
关于它的回收是有jvm自动来实现的,没有必要考虑的!在C,C++ 或其它语言中,程序员负责取消分配存储器。有时,这是一件很困难的事情。因为你并不总是事先知道存储器应在何时被释放。当在系统中没有能够被分配的存储器时,可导致程序瘫痪,这种程序被称作具有存储器漏洞。
Java编程语言解除了程序员取消分配存储器的责任,它可提供一种系统级线程以跟踪每一存储器的分配情况。在Java虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的存储器。
垃圾收集在Java技术程序的生命周期中自动进行,它解除了取消分配存储器的要求,并避免了存储器漏洞。然而,垃圾收集可在JVM实现的周期中,产生意想不到的变化。
1.受到请求时(On request)——方法System.gc为JVM提出建议,现在是垃圾收集的好时机。此方法并不要求一定进行垃圾收集,不过事实上他一般会导致垃圾收集立即开始。此方法的确切操作要视JVM而定。
2.受到要求时(On demand)——唯一能够要求进行垃圾收集的就是new函数。如果new需要内存,它会调用垃圾收集器并发出请求,要求释放至少能够满足当前分配请求的足够内存。
3.后台(Background)——JVM有一个优先级的线程用以检测系统空闲状态。该现成大部分时间都在睡眠。每次运行时,它会检查自从他上次巡查以来是否有线程运行过。当JVM已空闲了若干周期,空闲检测现成将会触发垃圾收集。这里有一项假定就是:如果一段时间以来除了空闲检测者以外没有其他程序运行,将来就会有一段时间内没有很重要的程序打算运行。
——摘自《实时JAVA平台变成》
当A的对象去使用a()方法的时候要大内存,但是结果却要送给B对象的b()方法,我担心在使用的过程中,由于A产生多个对象,去调用a()方法时,传给B的多个对象的b()方法,我想为了能快,想将B的对象一但调用过b()方法后,就清空这个B的对象所用的内存!
虚拟机会根据当前的情况来选择是否回收内存.
他会根据你的操作系统还有多少内存可以用,现在是不是很忙,等等来决定.
因为回收内存是一件很耗时间的事情.
但是你可以用System.gc();来建议虚拟机回收当前 eligible for garbage collection的对象。
你只能建议,但是不能保证虚拟机一定会做。
在你的3.4两个类的main方法结束后,你new的对象已经都是eligible for garbage collection了。但是在你退出main方法前,两个对象还是不会给回收的。
如果这样说的话,那就是说,最好只使用一个对象,用这个对象调用不同的方法,是最快的了,直到这个程序结束了?
"但是在你退出main方法前,两个对象还是不会给回收的"
我说的就是这个.也就是说,如果没有退出这个main方法,那么如果在程序中会不断的产生一个新对象,那么这些产生的新对象如何消亡呢,?
那就在你认为这个对象没有用后赶紧把这个对象的引用清空啊
public static void main(String args[])
{
Hello one=new Hello();
one.display();
one = null; //过了这一行,这个对象就可以被回收了。
}