JAVA运行内部类的main方法
运行内部类的main方法
定义两个线程:
一个线程的名字“thread1”,线程功能输出1~10的阶乘。
另一个线程的名字“thread2”,线程功能输出线程的名字10次。
public class T1 extends Thread {
public T1(String s) {super(s);}
public void run() {
int sum=1;
for(int i=1;i<=10;i++) {
sum=sum*i;
System.out.println(sum);
}
}
}
class T2 extends Thread {
public T2(String s) {super(s);}
public void run() {
for(int i=0;i<19;i++) {
System.out.println(getName());
}
}
public static void main(String args[]) {
T1 t1=new T1("thread1");
T2 t2=new T2("thread2");
t1.start();
t2.start();
}
}
第一眼看到这个,我也有点蒙,按道理来说,用public修饰的不应该是主类吗?但是main方法却放在了内部类中?一时难以理解,直接放入myeclipse运行一下,果然报错了:
报错信息大致也是我上面分析的意思,找不到main方法,百度找了很多也没有找到原因,转念一想,也可能是myeclipse运行机制的问题,于是转变思路,直接用命令行!
首先在创建.java文件,名字一定要和主类名一样!这里是T1.java,然后编译生成.class文件
居然生成了两个.class文件,瞬间感觉对java一点都不了解,之前一直用myeclipse简直就是个错误(符合真香定律),接下来直接运行T2.class就可以了(T2是内部类)
运行成功!OVER!
JAVA运行内部类的main方法的更多相关文章
- 解决Java接口内部类的main()方法无法打印输出的问题
问题源自<Thinking in Java>关于内部类的章节,例子如下: public interface ClassInInterface{ void howdy(); public c ...
- Java程序入口:main()方法讲解
Java程序的入口---main()方法的签名为:public static void main(String[] args) {...} ,其中, ♦ public修饰符:Java类由JVM调用,为 ...
- java语言规范,main方法必须声明为public
注释: 根据java语言规范,main方法必须声明为public. 当main方法不是public时,有些版本的java解释器也可以执行java应用程序.有个程序员报告了这个bug. 如果感兴趣可以查 ...
- 第4篇-JVM终于开始调用Java主类的main()方法啦
在前一篇 第3篇-CallStub新栈帧的创建 中我们介绍了generate_call_stub()函数的部分实现,完成了向CallStub栈帧中压入参数的操作,此时的状态如下图所示. 继续看gene ...
- 第29篇-调用Java主类的main()方法
在第1篇中大概介绍过Java中主类方法main()的调用过程,这一篇介绍的详细一点,大概的调用过程如下图所示. 其中浅红色的函数由主线程执行,而另外的浅绿色部分由另外一个线程执行,这个线程最终也会负责 ...
- [Java] JVM 在执行 main 方法前的行为
JVM 执行一个 Java 程序时,先从某个指定的 Java 类的 main 方法开始执行代码,同时,传一个字符串数组作为 main 方法的参数.例如在 Unix 系统上,执行下面的命令 java T ...
- 简述java程序中的main方法
简述main方法: 在java语言程序编写时都会涉及到一个main方法,它的格式为: public static void main(String[] args)(一般必须这么定义,这是java规范) ...
- jmeter 的java请求代码在main方法里面执行
1.新建一个java请求执行加法类 public class TestDemo { public int Tdemo(int a,int b){ int sum = 0; sum = a+b; ret ...
- java 主类的main方法调用其他方法
方法1:A a=new test().new A(); 内部类对象通过外部类的实例对象调用其内部类构造方法产生,如下: public class test{ class A{ void fA(){ S ...
随机推荐
- Java初学心得(一)
Java中基本组成单元是类,在类中又包含属性和方法. 每个应用程序都包含一个main()方法,main方法里的称为主类. 一,基本变化 ①全局变量:在类中的属性 局部变量:在方法中的属性 ②基本数据类 ...
- 100天搞定机器学习|day39 Tensorflow Keras手写数字识别
提示:建议先看day36-38的内容 TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库.节点(Nodes)在图中表示数学操作,图中的线(edge ...
- ASP.NET Core on K8S深入学习(5)Rolling Update
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.什么是Rolling Update? 为了服务升级过程中提供可持续的不中断 ...
- cmd命令行界面运行python脚本显示的中文不正确
在notepad++中编写了一个脚本(如图一),在cmd命令行界面中运行却发现显示的中文不正确(如图2).图3显示的是cmd界面的默认编码. 解决方案:将脚本的注释语言改为GBK,编码格式改为ANSI ...
- Kali Linux无法访问网络的问题
首先 ping www.baidu.com ping: unkown host www.baidu.com 然后 ping 8.8.8.8 connect:network is unreachable ...
- 手撕ThreadPoolExecutor线程池源码
这篇文章对ThreadPoolExecutor创建的线程池如何操作线程的生命周期通过源码的方式进行详细解析.通过对execute方法.addWorker方法.Worker类.runWorker方法.g ...
- Java网络编程 -- BIO 阻塞式网络编程
阻塞IO的含义 阻塞(blocking)IO :阻塞是指结果返回之前,线程会被挂起,函数只有在得到结果之后(或超时)才会返回 非阻塞(non-blocking)IO :非阻塞和阻塞的概念相对应,指在不 ...
- python 14 装饰器
目录 装饰器 1. 开放封闭原则 装饰器 1. 开放封闭原则 扩展是开放的,增加新的功能:修改源码(修改已经实现的功能)是封闭的. 在不改变源码及调用方式的前提下额外增加新的功能. # 版一: imp ...
- javascript之操作数组方法
掌握如何操作数组,会让你的开发变得更加高效 1.栈和队列方法(以下四个方法都改变原数组) arr.push() //接受任意类型的参数,逐个添加到数组的末尾,并返回数组的长度 改变原数组 arr.po ...
- SpringBoot 2 快速整合 | 统一异常处理
统一异常处理相关注解介绍 @ControllerAdvice 声明在类上用于指定该类为控制增强器类,如果想声明返回的结果为 RESTFull 风格的数据,需要在声明 @ExceptionHandler ...