Java面试 | 002

Java面试

Posted by MySelf | 猫叔 on February 24, 2019

本博客 猫叔的博客,转载请申明出处

前言

本系列为猫叔综合整理的Java面试题系列,如有雷同不胜荣幸。

Java与C/C++的差异?

  • 1、java为解释性语言、而C/C++为编译型语言。
  • 2、java为面向对象语言,C++则兼具面向过程和面向过程编程的特点。
  • 3、就垃圾回收而言,C++中有析构函数,而Java则是finalize()方法。
  • 4、Java提供了JDBC、分布式对象的RMI等库。

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

  • 1、public权限修饰符,任何类、对象均可访问;
  • 2、static标记为静态方法,存储在静态存储区;
  • 3、main是JVM识别的特殊方法名;
  • 4、args为开发人员在命令行状态下雨程序交互提供的手段。
  • 5、即便如此,main函数也不是最先执行的方法!!!

如何在main函数之前输出“HELLO WORLD!”

由于静态块在类被加载时就会被调用,因此可以在main()方法执行前,利用静态块实现输出“HELLO WORLD”的功能。

Java程序初始化的顺序是怎么样的?

  • 1、静态对象(变量)优先于非静态对象(变量)的初始化,其中,静态对象只初始化一次,而非静态变量可以初始化多次;
  • 2、父类优先于子类进行初始化;
  • 3、按照成员变量的定义顺序进行初始化

Java作用域

作用域与可见性 当前类 同一package 子类 其他package
public YES YES YES YES
private YES NO NO NO
protected YES YES YES NO
default YES YES NO NO

一个java文件可否定义多个类

可以定义多个类,但是最多只能有一个类被public修饰,并且这个类的类名与文件名相同。

公众号:Java猫说

现架构设计(码农)兼创业技术顾问,不羁平庸,热爱开源,杂谈程序人生与不定期干货。

Image Text