【Java】JDK基础面试题

这篇博客涵盖了Java面试中的基础问题,包括String是否为基本数据类型、Collection与Collections的区别、String对象的intern()方法、final、finally、finalize的含义、error与exception的区别、运行时异常与受检异常的异同,以及static和final的多种用法。通过这些内容,可以帮助读者深入理解Java语言的关键概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问:String是基本数据类型吗?

答:不是,Java基本数据类型只有8种,byte、int、char、long、float、double、boolean和short


问:Collection和Collections的区别?

答:Collection是集合类的上级接口,他的子类有Set和List,而Collections是针对集合的一个帮助类,他提供的一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作、


问:String对象的intern()是指什么?

答:intern()方法会首先从常量池中查找是否存在该常量值,如果不存在则在常量池中创建,如果已经存在则直接返回

举例:

String s1="String";
String s2 = s1.intern();
System.out.print(s1==s2);//返回true

问:final、finally、finalize的区别是什么?

答:final用于声名属性,方法,类,分别表示不可变,不可重写不可重载,不可继承


问:error和exception有什么区别?

答:

error 通常是系统错误,表示回复不是不可能但是很困难,比如内存溢出,我们不可能去指望程序进行修改这样的情况。

exception 通常表示程序错误,通常表示一种设计或实现问题,也就是说,它表示程序运行正常,从不会发生的情况,我们是可以修改程序代码或者完成需求设计来完善的。


问:运行时异常与受检异常有何异同?

答:

运行时异常就是会在运行时因为代码错误会发生异常,很常见,只要代码上不编写错误,这种情况就可以避免。

受检查异常和程序运行的上下文环境相关,即使程序设计无误,仍然可能因使用的问题而引发,Java编译器要求方法必须声明抛出可能发生的受检异常,但是并不要求必须声明抛出未被捕获的运行时异常


问:列出一些你常见的运行时异常?

答:

  • ArithmeticException(算术异常)

  • ClassCastException (类转换异常)

  • IllegalArgumentException (非法参数异常)

  • IndexOutOfBoundsException (下标越界异常)

  • NullPointerException (空指针异常)

  • SecurityException (安全异常)


问:static都有哪些用法?

答:

  • 静态变量
  • 静态方法
  • 静态块,多用于初始化
  • 静态内部类.
  • 静态导向,即import static.import static是在JDK 1.5之后引入的新特性,可以用来指定导入某个类中的静态资源,并且不需要使用类名.资源名,可以直接使用资源名,例如:
  • import static java.lang.Math.sin;
    public class Test{
    public static void main(String[] args){
    //System.out.println(Math.sin(20));传统做法
    System.out.println(sin(20)); // 静态导包
    }
    }

问:final有哪些用法

  1. 被final修饰的类不可以被继承
  2. 被final修饰的方法不可以被重写
  3. 被final修饰的变量不可以被改变.如果修饰引用,那么表示引用不可变,引用指向的内容可变.
  4. 被final修饰的方法,JVM会尝试将其内联,以提高运行效率
  5. 被final修饰的常量,在编译阶段会存入常量池中.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值