葵花宝典 六

说一下==和equals的区别
咱们先说==
==运算符是专门用来比较两个变量的值是否相等,也就是比较内存中存储的数据是否相同,如果是基本数据类型和引用变量,基本上用==判断两个值是否相同。

如果一个变量指向的数据是对象类型的,这时候就会涉及到两片内存,一个是变量所在的栈内存,还有一个是对象本身所占的堆内存,
例如 Object obj=new Object(),此时,obj所占内存的数据就是对象内存的首地址,要判断两个变量是否指向同一个对象 ,即要看两个变量所占的内存中的数据是否一致,这时候就要用==比较两个数值了。

equals
equals方法是用来比较两个独立对象的内容是否相同,在实际开发中,我们一般要比较传入的两个字符串是否相同。
如果一个类自己没有定义equals方法的话,那么它将继承Object中的equals方法,那么Object中的equals方法也就是使用==操作符,也是在比较两个变量是否指向同一个对象,这时候equals和==使用的是一个效果。
这是后你比较覆盖equals,由你自己写代码由你来决定什么情况认为两个对象的内容是相等的。

静态变量和实例变量的区别?
在语法定义上面的区别:静态变量前要加static关键字,而实例变量前不加。

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

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

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

Integer与int的区别

int是java提供的8种原始数据类型之一。java为每个原始类型提供了封装类型,Integer是java为int提供的封装类。int的默认值是0,而Integer的默认值是null,即Integer可以区分出未赋值和值为0的区别。

在hibernate中,如果将OID定义为Integer类型,那么hibernate就可以根据其值是否为null而判断一个一个对象是否是临时的,如果将OID定义为了int类型,还需要在hbm映射文件中设置其unsaved-value属性为0

15、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

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

 同一个类  同一个包中 子孙类  其他包

public . . . .
prodected . . .
friendly . .
private .
如果在修饰的元素上面没有写任何访问修饰符 则表示friendly

18、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

overload 是重载的意思
override 是重写的意思
重载表示同一个类中可以有多个名称相同的方法名,但是这些方法的参数列表各不相同 。 个数 类型 顺序

重写表示子类的方法中的方法可以与父类中的某个方法的方法签名完全一致。通过子类创建的实例对象调用这个方法时,将调用子类中定义的方法,多态的一种体现。

这里写图片描述

override可以翻译为覆盖,从字面意思就可以知道,它是覆盖了一个方法并且对其重写了,以求达到不同的效果。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现的时候,就需要实现接口声明中的所有方法,
1.覆盖的方法的标志必须要和被覆盖的方法标志完全匹配,才能达到覆盖的效果。
2.覆盖的方法的返回值必须和被覆盖的返回值一致。
3.覆盖的方法抛出的异常必须和被覆盖抛出的异常一致。
4.被覆盖的方法不能为private 否则知识在子类中重新定义了一个方法,并没有对其所覆盖。
19、构造器Constructor是否可被override?
构造器不能被继承,所以不能被重写,只能重载

20、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?

接口可以继承接口,抽象类可以实现接口,抽象类可以继承具体类,抽象类中可以有静态的main方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值