A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 南烟 中级黑马   /  2015-10-29 11:05  /  365 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Java程序运行原理:
Java命令会启动java虚拟机,启动JVM,等于启动了一个应用程序,也就是启动了一个进程,
该进程会自动启动一个 “主线程” ,然后主线程去调用某个类的 main 方法.

JVM的启动是多线程的吗?
JVM启动至少启动了垃圾回收线程和主线程,所以是多线程的。

public class deno {

        /**
         * @param args
         */
        public static void main(String[] args) {
                for(int i = 1; i < 1000000; i++) {
                        new demo2();
                }
               
                for(int i = 1; i < 10000; i++) {
                        System.out.println("主线程执行");
                }
        }
}

class demo2 {
        @Override
        public void finalize() {
                System.out.println("垃圾清理");
        }
}

4 个回复

倒序浏览
jlq 中级黑马 2015-10-29 11:18:34
沙发
duide duide ne
回复 使用道具 举报
这个demo会输出"垃圾清理"吗??
回复 使用道具 举报
yuanjun52306 发表于 2015-10-29 11:25
这个demo会输出"垃圾清理"吗??

会出现的,就看你在堆内存中创建对象的多少了
回复 使用道具 举报
南烟 发表于 2015-10-29 18:19
会出现的,就看你在堆内存中创建对象的多少了

问题是你只new了,并没有调用finalize方法啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马