java面试题

"=="和 equals 方法究竟有什么区别?

==操作符专门用了比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个应用变量是否相等,只能用==操作符,

如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块 内存(堆内存),变量也占用一块内存,例如 Objet obj=newObject();变量 obj 是一个内存, newObject()是另一个内存,此时,变量 obj 所对应的内存中存储的数值就是对象占用的那块 内存的首地址。对于指向对象类型的变量,如果要比较两个变量是否指向同一个对象,即要 看这两个变量所对应的内存中的数值是否相等,这时候就需要用==操作符进行比较。 equals 方法是用于比较两个独立对象的内容是否相同,
 

String a=new String("foo"); 

String b=new String("foo"); 
a==b //false
a.equals(b) //true

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

语法上的区别:静态变量前要加static关键字,而实例变量前不加

程序运行时的区别:实例变量属于某个对象的属性,不洗创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了累的字节码,不用创建任何实例对象,静态变量就对被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

是否可从一个 static 方法内发出对非 static 方法的调用?

不可以,因为static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用

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.ceil(11.6)的结果为 11,Math.ceil(-11.6)的结果是-12;最难掌握的是 round 方法,它表示“四舍五入”,算法为 Math.floor(x+0.5),即将原来的数字加上 0.5 后再向下取整,所以, Math.round(11.5)的结果为 12,Math.round(-11.5)的结果为-11。

请说出作用域 public,private,protected,以及不写时的区别

说明:如果在修饰的元素上面没有写任何访问修饰符,则表示 friendly。 作用域 当前类 同一 package 子孙类 其他 package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 备注:只要记住了有 4 种访问权限,4 个访问范围,然后将全选和范围在水平和垂直方向上 分别按排从小到大或从大到小的顺序排列,就很容易画出上面的图了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值