java可以没有主类吗 java程序可以没有主类吗_java可以没有主类吗


1. 什么是Java程序的主类?应用程序和小程序的主类有何不同?

  • 一个程序中可以有多个类,但只能有一个类是主类。在Java应用程序中,这个主类是指包含main()方法的类。而在Java小程序中,这个主类是一个继承自系统类JApplet或Applet的子类。应用程序的主类不一定要求是public类,但小程序的主类要求必须是public类。主类是Java程序执行的入口点。

2. Java应用程序和小程序之间有哪些差别?

  • 简单说应用程序是从主线程启动(也就是main()方法)。applet小程序没有main()方法,主要是嵌在浏览器页面上运行(调用init()或者run()来启动),嵌入浏览器这点跟flash小游戏类似

3. Java是如何支持正则表达式操作的?

  • Java中的String类提供了支持正则表达式操作的方法,包括:matches()、replaceAll()、replaceFirst()、split()。此外,Java中可以用Pattern类表示正则表达式对象,它提供了丰富的API进行各种正则表达式操作,如:
package otherDemo;
	
	import java.util.regex.Matcher;
	import java.util.regex.Pattern;
	
	public class RegDemo {
	    public static void main(String[] args) {
	        String str = "成都市(成华区)(武侯区)(高新区)";
	        Pattern p = Pattern.compile(".*?(?=\\()");
	        Matcher m = p.matcher(str);
	        if (m.find()) {
	            System.out.println(m.group());
	        }
	    }
	}

java可以没有主类吗 java程序可以没有主类吗_面试_02


4. Java是否支持多继承?

  • Java中类不支持多继承,只支持单继承(即一个类只有一个父类)。但是Java中的接口支持多继承,即一个子接口可以有多个父接口。(接口的作用是用来扩展对象的功能,一个子接口继承多个父接口,说明子接口扩展了多个功能,当类实现接口时,类就扩展了相应的功能)

5. 讲讲Java中有哪些特性,并举一个和多态相关的例子

  • 特性:封装、继承、多态。
  • 多态:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采取多种不同的行为方式。(发送消息就是函数调用)

6. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?

  • Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者重新编译。Java虚拟机让这个称为可能,因为它知道底层硬件平台的指令长度和其他特性

7. 列举Java虚拟机中哪些对象可作为ROOT对象

  • 虚拟机栈中的引用对象
  • 方法区中类静态属性引用的对象
  • 方法区中常量引用对象
  • 本地方法栈中JNI引用对象

8. Java一点补充

  • Java属于静态类型语言(静态类型,编译时就能够知道每个变量的类型,编程的时候也需要给定类型),对于静态类型,在编译后会大量利用已知类型的优势,如int类型,占4个字节,编译后的代码就可以用内存地址加偏移量的方法存取变量,而地址加偏移量的算法汇编很容易实现
  • Java语言,分为两个阶段:
  1. 首先像C++语言一样,经过编译器编译。和C++不同,C++编译生成本地代码,Java编译后,生成字节码,字节码与平台无关
  2. 第二阶段,由Java的运行环境也就是Java虚拟机运行字节码,使用解释器执行这些代码。一般情况下,Java虚拟机都引入了IT技术,将字节码转换成本地代码来提高执行效率

9. Java nextLine和next两个方法的区别?

  • next不会接收回车符,tab或者空格键,在接收有效数据之前会忽略这些符号,若已经读取了有效数据,遇到这些符号会直接退出
  • nextLine可以接收空格或者tab键,其输入以enter键结束

10. 什么是JavaConfig?

  • Spring JavaConfig是Spring社区的产品,它提供了配置Spring IoC容器的纯Java方法,因此它有助于避免使用XML配置。使用JavaConfig的优点在于:
  1. 面向对象的配置。由于配置被定义为JavaConfig中的类,因此用户可以充分利用Java中的面向对象功能。一个配置类可以继承另一个,重写它的@Bean方法等
  2. 减少或消除XML配置。基于依赖注入原则的外化配置的好处已经被证明。但是,许多开发人员不希望在XML和Java之间来回切换。JavaConfig为开发人员提供了一种纯Java方法来配置与XML配置概念相似的Spring容器。从技术角度来讲,只使用JavaConfig配置类来配置容器是可行的,但实际上很多人认为将JavaConfig与XML混合匹配是理想的
  3. 类型安全和重构友好。JavaConfig提供了一种类型安全的方法来配置Spring容器。由于Java5.0对泛型的支持,现在可以按类型而不是按名称检索bean,不需要任何强制转换或基于字符串的查找



如果觉得封面图片还行,请顺手点个赞😍

java可以没有主类吗 java程序可以没有主类吗_面试_03