20个高级Java面试题汇总

这篇博客总结了高级Java面试中的一些关键问题,包括可变参数的使用、断言的作用、垃圾回收的工作原理、初始化器的功能以及日期和日历的处理。通过实例详细解释了这些概念,帮助读者深入理解Java编程的核心知识点。
摘要由CSDN通过智能技术生成

这是一个高级Java面试系列题中的第一部分。这一部分论述了可变参数,断言,垃圾回收,初始化器,令牌化,日期,日历等等Java核心问题。


什么是可变参数?


可变参数允许调用参数数量不同的方法。请看下面例子中的求和方法。此方法可以调用1个int参数,或2个int参数,或多个int参数。

//int(type) followed ... (three dot's) is syntax of a variable argument. 
    public int sum(int... numbers) {        //inside the method a variable argument is similar to an array.
        //number can be treated as if it is declared as int[] numbers;
        int sum = 0;        
        for (int number: numbers) {
            sum += number;
        }       
        return sum;
    }    
    public static void main(String[] args) {
        VariableArgumentExamples example = new VariableArgumentExamples();        //3 Arguments
        System.out.println(example.sum(1, 4, 5));//10
        //4 Arguments
        System.out.println(example.sum(1, 4, 5, 20));//30
        //0 Arguments
        System.out.println(example.sum());//0
    }

断言的用途?


断言是在Java 1.4中引入的。它能让你验证假设。如果断言失败(即返回false),就会抛出AssertionError(如果启用断言)。基本断言如下所示。

private int computerSimpleInterest(int principal,float interest,int years){    
    assert(principal>0);    
    return 100;
}

什么时候使用断言?


断言不应该用于验证输入数据到一个 public 方法或命令行参数。IllegalArgumentException会是一个更好的选择。在 public 方法中,只用断言来检查它们根本不应该发生的情况。

什么是垃圾回收?


垃圾回收是Java中自动内存管理的另一种叫法。垃圾回收的目的是为程序保持尽可能多的可用堆(heap)。 JVM会删除堆上不再需要从堆引用的对象。

用一个例子解释垃圾回收?


比方说,下面这个方法就会从函数调用。

void method(){
    Calendar calendar = new GregorianCalendar(2000,10,30);
    System.out.println(calendar);
}


通过函数第一行代码中参考变量calendar,在堆上创建了GregorianCale

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值