java基础笔记(三)——main方法
1.解析public static void main(String[] args)方法
JVM在运行程序时,会首先查找main()方法作为入口,main是JVM识别的特殊方法名。
public是权限修饰符,表明任何类或对象均可访问此方法。
static表明main()方法是一个静态方法,即方法中的代码是存储在静态存储区的,只有类被加载后,即可使用该方法而不需要实例化对象来访问,可以直接通过类名.main()访问。
字符串数组参数args接收开发人员在命令行状态下与程序交互的代码。
此例为调用main()方法时传递参数的方法:
public class Test{
public static void main(String[] args){
for(int i=0;i<args.length;i++){
System.out.println(args[i]);
}
}
}
在控制台下,使用javac Test.java指令编译上述程序,使用java Test arg1 arg2 arg3指令运行程序,程序运行结果为:
arg1
arg2
arg3
注:
(1)不管哪种定义方式,除了不能用abstract关键字修饰,必须保证main()方法的返回值为void,并有static与public关键字修饰。
(2)同一个.java文件中是否可以有多个main()方法?
虽然每个类中都可以定义main()方法,但是只有与文件名相同的用public修饰的类中的main()方法才能作为整个程序的入口方法。
如下例,创建了一个名为Test.java的文件:
class T{
public static void main(String[] args){
System.out.println(“T main”);
}
}
public class Test{
//程序入口函数
public static void main(String[] args){
System.out.println(“Test main”);
}
}
程序运行结果为:
Test main
(3)在java语言中,静态块在类被加载时就会被调用,会在main()方法执行之前执行。
public class Test{
public static void main(String args[]){
System.out.println(“Hello World2”);
}
static{
System.out.println(“Hello World1”);
}
}
程序运行结果:
Hello World1
Hello World2
2.一个Java文件中是否可以定义多个类?
一个Java文件中可以定义多个类,但是最多只能有一个类被public 修饰,并且这个类的类名与文件名必须相同,若这个文件中没有public的类,则文件名随便是一个类的名字即可。当用javac指令编译这个.java文件时,它会给每一个类生成一个对应的.class文件。
定义Derived.java为:
class Base{
public void print(){
System.out.println(“Base”);
}
}
public class Derived extends Base{
public static void main(String[] a){
Base c=new Derived();
c.print();
}
}
使用javac Derived.java指令编译上述代码,会生成两个字节码文件:Base.class与Derived.class,然后使用java Derived指令执行代码,此时,控制台的输出结果为:Base。
java基础笔记(三)——main方法的更多相关文章
- Java基础 return 退出main方法的示例
JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code ...
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 | 被围观 25,969 views+ 1.Anno ...
- Java基础:三步学会Java Socket编程
Java基础:三步学会Java Socket编程 http://tech.163.com 2006-04-10 09:17:18 来源: java-cn 网友评论11 条 论坛 第一步 ...
- 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错
原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...
- Java实习生常规技术面试题每日十题Java基础(三)
目录 1.是否可以从一个static方法内部发出对非static方法的调用? 2.Integer与int的区别? 3.Overload和Override的区别.参数列表相同,返回值不同的方法,是否是重 ...
- java 基础知识三 java变量
java 基础知识 三 变量 1.作用域 {} 包围起来的代码 称之为代码块,在块中声明的变量只能在块中使用 2.常量 就是固定不变的量,一旦被定义,它的值就不能再被改变. 3.变量 变量必须在程序 ...
- 斐波那契数列-java编程:三种方法实现斐波那契数列
题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行 斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 这个数列 ...
- Java基础 之 System.getProperty()方法
Java基础 之 System.getProperty()方法大全 public static void main(String[] args) { System.out.println(" ...
- JAVA基础(三)—— 输入输出处理
JAVA基础(三)-- 输入输出处理 1 输入解析 //Scanner获取输入 import java.util.Scanner; Scanner s = new Scanner(System.in) ...
- JAVA基础语法:函数(方法)、类和对象(转载)
4.JAVA基础语法:函数(方法).类和对象 函数 在java中函数也称为方法,是一段具备某种功能的可重用代码块. 一个函数包括这几部分: 函数头 函数头包括函数访问修饰符,函数返回值类型, 函数名, ...
随机推荐
- latex 技巧汇总
最近打算详细的学习一下latex,所以在学习的过程中遇到了一些问题.随时出问题,随时记录更新. 我是萌萌的Latex, x_0. 再写具体的技巧之前,先说一个关于打公式的小技巧.有时候你不知道怎么设置 ...
- C++配置Opencv
https://blog.csdn.net/qq_17550379/article/details/78201442
- 简洁多用途SuperSlide插件—tab标签样式
简洁多用途SuperSlide插件—tab标签切换代码样式,由huiyi8素材网提供. 源码:http://www.huiyi8.com/tab/
- 初识Spacy
之所以想接触Spacy,是看到其自称为工业级的应用,所以想尝试下 windows下安装Spacy: 直接安装pip install spacy是会报错的 解决方法: 到 htt ...
- PC样式reset参考
/* html5doctor.com Reset Stylesheet */ * { padding:; margin:; list-style: none; } html, body, div, s ...
- linux命令学习笔记-md5sum 命令详解
前言 在网络传输.设备之间转存.复制大文件等时,可能会出现传输前后数据不一致的情况.这种情况在网络这种相对更 不稳定的环境中,容易出现.那么校验文件的完整性,也是势在必行的. 使用说明 md5sum命 ...
- 小程序写tab和swiper切换结合效果
实现代码如下: wxml页面 <scroll-view scroll-x="true" class="weui-navbar"> <block ...
- 「P4994」「洛谷11月月赛」 终于结束的起点(枚举
题目背景 终于结束的起点终于写下句点终于我们告别终于我们又回到原点…… 一个个 OIer 的竞赛生涯总是从一场 NOIp 开始,大多也在一场 NOIp 中结束,好似一次次轮回在不断上演.如果这次 NO ...
- bzoj 2626: JZPFAR k-D树
题目大意: 平面上n个点,每次给出一个点,求这个点的k远点 题解: 什么叫做k远点呢... 1 2 3 4 5中5是第一远,4是第二远... 看来我语文学的不好 那么我们直接上k-D Tree求k邻近 ...
- MySQL整体架构与内存结构
一 mysql 整体框架: MySQL是由SQL接口,解析器,优化器,缓存,存储引擎等组成的. 1. Connectors指的是不同语言中与SQL的交互. 2. Management Serveic ...