JAVA面试基础题

1.JDK和JRE的区别是什么?

JDK:Java Development Kit,Java开发工具包,包含了Java开发所需的各种工具和库,如编译器(javac)、Java虚拟机(JVM)、Java API类库、调试器等。主要用于Java程序的开发。

JRE:Java Runtime Environment,Java运行时环境,包含了Java应用程序运行所需的最小环境,包括JVM和Java类库。主要用于运行已编译的Java程序。

2.==和equals的区别是什么?

==:比较的是两个对象的引用是否相等,即是否指向同一个内存地址。对于基本类型,比较的是值是否相等。

equals():是Object类的方法,默认比较的是两个对象的引用是否相等。但很多类(如String、Integer等)重写了该方法,用于比较对象的内容是否相等。

3.final关键字在Java中有什么作用?

修饰类:表示该类不能被继承。

修饰方法:表示该方法不能被重写。

修饰变量:表示该变量只能被赋值一次,赋值后其值不能被改变。对于基本类型,表示其值不可变;对于引用类型,表示其引用不可变,但对象的内容可以修改。

4.String、StringBuffer和StringBuilder的区别是什么?

String:不可变类,每次对String进行操作都会生成新的String对象,适用于字符串内容不经常变化的场景。

StringBuffer:可变类,线程安全,适用于多线程环境下字符串内容频繁变化的场景。

StringBuilder:可变类,非线程安全,性能比StringBuffer高,适用于单线程环境下字符串内容频繁变化的场景。

5.Java中的异常体系是怎样的?

Java中的异常分为两大类:受检异常(Checked Exception)和非受检异常(Unchecked Exception)。

受检异常:继承自Exception类(不包括RuntimeException及其子类),必须在方法声明中显式抛出或在方法体内捕获处理。

非受检异常:包括RuntimeException及其子类和Error类,不需要在方法声明中显式抛出或在方法体内捕获处理。

6.抽象类和接口有什么区别?

抽象类:可以包含抽象方法和具体方法,可以有构造方法,可以定义成员变量,一个类只能继承一个抽象类。

接口:在JDK 1.8之前只能包含抽象方法,不能有构造方法,只能定义常量,一个类可以实现多个接口。JDK 1.8之后,接口可以包含默认方法和静态方法。

7.重载(Overload)和重写(Override)的区别是什么?

重载:在同一个类中,方法名相同,参数列表不同(参数类型、个数、顺序不同),与返回值和访问修饰符无关。

重写:子类继承父类后,方法名、参数列表、返回值类型(除基本类型外,子类的返回值类型可以小于或等于父类的返回值类型)和异常类型必须与父类相同,访问修饰符不能比父类更严格。

8.Java中的访问修饰符有哪些?它们的作用范围是什么?

public:对所有类可见。

protected:对同一包内的类和所有子类可见。

default(无修饰符):对同一包内的类可见。

private:只对当前类可见。

相关文章

天天用的开发环境,你真的了解吗?

无论你从事的是Donet,还是Java;无论你是架构师,还是编码的开发人员。可以这么说,几乎每个程序员,都或多或少的有自己的编程习惯。不管是VS,还是Eclipse、MyEclipse、NetBean...

Java SE Development Kit和Java SE Runtime Environment区别

Java SE Development Kit (JDK)、Java SE Runtime Environment (JRE) 和 Server JRE (Java SE Runtime Enviro...

玩转服务器之Java Web篇:手把手教你搭建Java Web环境

前言Java Web项目,简单来说就是我们在浏览器上可以看到的内容。就简单的Web来说,服务器上也同样需要有计算机上所需要的运行环境,如:java,tomcat,mysql 。Java Web环境可以...

Java反射机制详解及其应用场景:全面指南

Java反射机制详解及其应用场景:全面指南引言Java反射(Reflection)是Java编程语言中的一种强大特性,它允许程序在运行时访问、检测和修改类、接口、字段和方法等。这种动态性使得Java具...

Java从入门到放弃(2)搭建Java环境

在学习Java之前,我们需要了解并搭建好它所需要的开发环境。要编译和执行Java程序,在学习Java之前,我们需要了解并搭建好它所需要的开发环境。要编译和执行Java程序,必须下载并安装JDK,下面介...