- 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,在堆上创建了GregorianCalendar类的一个对象。
函数停止履行后,引用变量calendar不再有效。是以,在办法中没有创建引用到对象。
JVM熟悉到这一点,会大年夜堆中删除对象。这就是所谓的垃圾收受接收。
什么时刻运行垃圾收受接收?
垃圾收受接收的最佳做法?
用编程的方法,我们可以请求(记住这只是一个请求——不是一个敕令)JVM经由过程调用System.gc()办法来运行垃圾收受接收。
当内存已满,且堆膳绫腔有对象可用于垃圾收受接收时,JVM可能会抛出OutOfMemoryException。
对象在被垃圾收受接收大年夜堆上删除之前,会运行finalize()办法。我们建议不要用finalize()办法写任何代码。
什么是初始化数据块?
初始化数据块——当创建对象或加载类时运行的代码。
有两种类型的初始化数据块:
- 静态初始化器:加载类时运行的的代码
- 实例初始化器:创建新对象时运行的代码
什么是静态初始化器?
请看下面的例子:static{ 和 }之间的代码被称为静态初始化器。它只有在第一次加载类时运行。只有静态变量才可以在静态初始化器中进行拜访。固然创建了三个实例,但静态初始化器只运行一次。
- public class InitializerExamples {
- static int count;
- int i;
- static{
- //This is a static initializers. Run only when Class is first loaded.
- //Only static variables can be accessed
- System.out.println("Static Initializer");
- //i = 6;//COMPILER ERROR
- System.out.println("Count when Static Initializer is run is " + count);
- }
- public static void main(String[] args) {
- InitializerExamples example = new InitializerExamples();
推荐阅读
【51CTO.com原创稿件】在数字经济高速成长,人工智能进步神速的时代,云计算已经为家当、经济甚至社会带来了深刻的变革。当传统企业加快向云端迁徙,政务机关“上云”迫在眉睫之>>>详细阅读
本文标题:20个高级Java面试题汇总
地址:http://www.17bianji.com/lsqh/37008.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示