小言_互联网的博客

日常_JAVA_面试题集13(含答案)

586人阅读  评论(0)

往期文章
 日常_JAVA_面试宝典多线程2(含答案)
 第一章:日常_JAVA_面试题集1(含答案)
 第二章:日常_JAVA_面试题集2(含答案)
 第九章:日常_JAVA_面试题集9(含答案)
 第十章:日常_JAVA_面试题集10(含答案)
 往期文章大全……



前言

作为一个真正的程序员,首先应该尊重编程,热爱你所写下的程序,他是你的伙伴,而不是工具。
——王文峯


提示:以下是本篇文章正文内容

71、静态变量和实例变量的区别?

在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。
在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
例如,对于下面的程序,无论创建多少个实例对象,永远都只分配了一个staticVar变量,并且每创建一个实例对象,这个staticVar就会加1;但是,每创建一个实例对象,就会分配一个instanceVar,即可能分配多个instanceVar,并且每个instanceVar的值都只自加了1次。

public class VariantTest{
   
		public static int staticVar = 0; 
		public int instanceVar = 0; 
		public VariantTest()	{
   
			staticVar++;
			instanceVar++;
			System.out.println(“staticVar=+ staticVar +,instanceVar=+ instanceVar);
		}
}

备注:这个解答除了说清楚两者的区别外,最后还用一个具体的应用例子来说明两者的差异,体现了自己有很好的解说问题和设计案例的能力,思维敏捷,超过一般程序员,有写作能力!

72、谈谈你对static关键词的理解

通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法,声明为static的方法有以下几条限制:

  1. 它们仅能调用其他的static 方法。
  2. 它们只能访问static数据。
  3. 它们不能以任何方式引用this 或super。
    声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。静态变量与静态方法类似。所有此类实例共享此静态变量,也就是说在类装载时,只分配一块存储空间,所有此类的对象都可以操控此块存储空间。

73、是否从static方法内部发出对非static方法的调用?

不可以。
因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用。

74、Integer与int的区别

int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况。
另外,Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数Integer.parseInt(“数字字符串”);
Integer中还定义了表示整数的最大值和最小值的常量。

75、Math.round(11.5)等于多少?

Math.round(-11.5)等于多少?
Math类中提供了三个与取整有关的方法:ceil、floor、round,这些方法的作用与它们的英文名称的含义相对应,例如,ceil的英文意义是天花板,该方法就表示向上取整(就是往大值靠拢),所以,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;floor的英文意义是地板,该方法就表示向下取整,所以,Math.floor(11.6)的结果为11,Math.floor(-11.6)的结果是-12;最难掌握的是round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。

总结

以上就是今天的内容,本文仅仅简单介绍了几个面试题,关注我,每天五道面试题。


转载:https://blog.csdn.net/Feng_wwf/article/details/108648497
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场