前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java面试之Java基础知识第一季

Java面试之Java基础知识第一季

原创
作者头像
mySoul
修改2020-06-28 10:53:31
3670
修改2020-06-28 10:53:31
举报
文章被收录于专栏:mySoulmySoul

为什么需要public static void main (String[] args)这个方法

因为这个方法是Java程序的入口方法,JVM在运行程序的时候,会先查找main方法,其中public是权限修饰符,表明任何类和对象都可以访问这个方法,static表明main是一个静态方法,即,方法中的代码是保存在在静态保存区域中的,只要类被加载后,就可以使用该方法,而不需要通过实例化访问,可以直接通过类名,main直接访问,JVM在启动的时候,将会按照上述方法的签名,来查找方法的入口地址,若能找到就执行,找不到,则会报错。void 表明方法没有返回值,main是jvm识别的特殊方法名,是程序入口的方法,字符串数组参数args为开发人员在命令行状态下与程序交互提供了一种手段。

如何实现在main()方法执行前输出Hello World

众所周知,在Java语言中,main方法是程序的入口方法。在程序运行时,最先加载的就是main方法,但是这并不意味着main()方法,就是程序运行时第一个被执行的模块。

例如下方代码

代码语言:txt
复制
public class Test{
	static {
		System.out.println("Hello World");
	}
	public static void main(String args[]){
		System.out.println("Hello World2");
	}

}

程序运行的结果为

代码语言:txt
复制
hello world
hello world2

Java程序的初始化顺序如何

在Java语言中,当实例化对象时,对象所在的所有成员变量,首先要进行初始化,只有当所有类的成员完成初始化后,才会调用对象对象所在类的构造函数创建对象。

Java程序的初始化一般要有三个原则,

  1. 静态对象优先于非静态对象初始化,其中静态对象只初始化一次,而非静态对象可能会初始化多次,
  2. 父类优先于子类进行初始化,
  3. 按照成员变量的定义,顺序进行初始化,即使变量定义在方法中,他们依然会在任何方法, 包括构造函数被调用之前先被初始化。

Java 作用域有哪些

在计算机中,声明不同地方的变量具有不同的作用域,例如局部变量,全局变量,在Java语言中,作用域是由花括号位置决定的,它决定了其定义的变量名的可见性,以及生命周期。

java作用域有public private。protected,default。

  1. public 表明该成员变量或方法,对所有类或对象成员都是可见的,所有类或对象都可以直接访问。
  2. private 表明该成员变量或者方法是私有的,只有当前类对其具有访问权限,除此之外的其他类或者对象都没有访问权限。
  3. protected 表明成员变量或方法对该类自身,鱼它在同一个包中的其他类,在其他包中的子类,都可见
  4. default 表明该成员,或者方法,对该类的自身,与它在同一个包中的其他类,都可见,若父类与子类在同一个包中,则子类,对父类的default,成员变量或方法都有访问权限,若父类与子类位于不同的包内,则没有访问权限。

一个Java文件是否可以定义多个类

一个Java文件可以定义多个类,但是最多只能有一个类被public修饰,并且这个类的类名,与文件名必须相同,若这个文件中没有public类,则文件名随便一个类的名字即可。需要注意的是,当用Javac指令编译这个Java文件的时候,它会给每一个类生成一个对应的.class 文件。

什么是构造函数

构造函数是一种特殊的函数,用来在对象实例化时初始化对象的成员变量,

构造函数具有以下的特点。

  1. 构造函数必须与类的名字相同。
  2. 每个类可以有多个构造函数。
  3. 构造函数可以有0个,1个,或者一个以上的函数。
  4. 构造函数总是伴随着new操作一起调用,且不能由程序编写者直接调用,必须要由系统调用,构造函数在对象实例化时会被自动调用,且只能运行一次,而普通的方法则是在程序调用的时候调用,且可以被该对象调用多次。
  5. 构造函数主要作用是完成对象的初始化工作。
  6. 构造函数不能被继承,因此它不能被覆盖,但是构造函数能够被重载,可以使用不同的参数,个数或者参数类型来定义多个构造函数。
  7. 子类可以通过super关键字来显示的调用父类的构造函数,当父类没有提供无参数的构造函数的时候,子类的构造函数中必须显示的调用父类的构造函数。
  8. 当父类与子类没有定义构造函数的时候,编译器会为父类生成一个默认的无参数的构造函数,给子类也会生成一个默认的无参数的构造函数。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么需要public static void main (String[] args)这个方法
  • 如何实现在main()方法执行前输出Hello World
  • Java程序的初始化顺序如何
  • Java 作用域有哪些
  • 一个Java文件是否可以定义多个类
  • 什么是构造函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档