java程序员是企业级软件开发的核心,因此在Java程序员招募时,企业都要经过严格的甄选,其中包括面试和笔试环节,其核心在于检验Java程序员对技术的把握和在工作中解决问题的能力。并且通过面试问题,程序员也能了解到目前企业的核心技术需求是什么。因此,作为一个Java程序员,在学习新技术的同时,应该看看考试分享。以下将与你分享一些经典的Java面考题,Java程序员面试必不可少。
1.可变参数是什么?
volatile参数允许调用不同数目的参数。在下面的示例中查看求和方法。这个方法可以调用一个int参数,或者两个int参数,或者不止一个int参数。
//int(type)followed...(threedot's)issyntaxofavariableargument.
publicintsum(int...numbers){//insidethemethodavariableargumentissimilartoanarray.
//numbercanbetreatedasifitisdeclaredasint[]numbers;
intsum=0;for(intnumber:numbers){
sum+=数字;
}returnsum;
}publicstaticvoidmain(string[]args){
VariableArgumentExample=newVariableArgumentExamples();//3Arguments。
system.out.print(example.sum(1,4,5));//10。
//4字节。
println(example.sum(1,4,5,20));//30。
//0单元。
system.out.println(example.sum());//0。
}
2.主张的目的?
在Java1.4中引入了断言。这使您可以验证假设。若断言失败(即返回false),则抛出AssertionError(如果启用断言)。下面列出了基本的断言。
privateintcomputerSimpleInterest(intprincipal)floatinterestintyears){assert(principal>0);
}
3.何时使用断言?
对于public方法或命令行参数,不应使用断言验证输入数据。IllegalArgumentException将是更好的选择。使用public方法时,只使用断言检查那些不应该出现的情况。
问4.什么是垃圾收集?
废物收集是Java中的另一种自动内存管理叫法。使用垃圾收集是为了让程序尽可能多地保留可用堆(heap)。JVM将删除堆中不再需要从堆引用的对象。
问5.举例说明垃圾收集?
例如,下面的方法将由该函数调用。
voidmethod(){
Calendarcalendar=newGregorianCalendar(2000,10,30);
system.out.print(calendar);
}
通过引用calendar变量,该函数的首行代码将创建GregorianCalendar类的对象。
在函数执行完之后,引用变量calendar不再有效。结果,方法中并未创建引用对象。
JVM意识到了这一点,并删除堆中的对象。它被称为垃圾收集。
6.何时进行垃圾收集?
当JVM突然出现或一时兴起时,垃圾收集运行(并不坏)。在以下情况下运行垃圾收集:
没有足够的可用堆内存。
::CPU闲置。
7.垃圾回收实践?
通过编程,我们可以要求JVM(记住这只是一个请求,不是命令),它依赖于调用System.gc()方法来运行垃圾收集。
如果内存已满,并且堆上没有可用于垃圾收集的对象,JVM可能会抛出OutOfMemoryException。
该对象在通过垃圾收集从堆中删除之前运行finalize()方法。推荐使用finalize()方法编写任何代码。
什么是初始化数据块呢?
对数据块进行初始化——在创建对象或加载类时运行。
初始化数据块有两种类型:
static初始器:在类被加载时运行的代码。
实例初始器:在创建新对象时运行的代码。
静态初始化程序是什么?
查看以下示例:在static{和}之间的代码称为静态初始器。该类只在上次载入该类时运行。在static初始化程序中,只有静态变量可以访问。尽管创建了三个实例,静态初始器只运行一次。
/**
*java学习交流QQ群:589809992我们一起学习java!
/公共类实例{
staticintcount;inti;static{//Thisisastaticinitializers.RunonlywhenClassisfirstloaded.
//Onlystaticvariablescanbeaccessed。
System.out.println("StaticInitializer");//i=6;//COMPILERERROR。
System.out.println("CountwhenStaticInitializerisrunis"+计数);
}publicstaticvoidmain(String[]args){
InitializerExamplesexample=newInitializerExamples();
InitializerExample2=newInitializerExamples();
InitializerExample3=newInitializerExamples();
}
}
输出实例。
静态初始化。
CountwhenStaticInitializerisrunis0.
什么是实例初始化块呢?
再举个例子:每个。