【Java面试题】经典Java面试题分享

发布时间:2021-12-17 10:05:28

  java程序员是企业级软件开发的核心,因此在Java程序员招募时,企业都要经过严格的甄选,其中包括面试和笔试环节,其核心在于检验Java程序员对技术的把握和在工作中解决问题的能力。并且通过面试问题,程序员也能了解到目前企业的核心技术需求是什么。因此,作为一个Java程序员,在学习新技术的同时,应该看看考试分享。以下将与你分享一些经典的Java面考题,Java程序员面试必不可少。

经典<a href=https://www.tulingxueyuan.cn/tlzx/javamst/ target=_blank class=infotextkey>java面试题</a>

  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.

  什么是实例初始化块呢?

  再举个例子:每个。

上一篇 【Java面试题】类的加载过程是什么?
下一篇 【Java面试题】如何保障同一资源被多个线程并发方位时的完整性?
标签: Java面试题