- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2021年java面试题大全〔整理版〕
1.面向对象的特征有哪些方面?
|抽象和行为抽象两抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括娄 方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。
|抽象和行为抽象两
-继承:继承是从已有类得到继承信息创立新类的过程。提供继承的类叫父类〔超类、基类〕、 得到继承的类叫子类〔派生类〕。
-封装:通常认为封装是把数据和操作数据的方法绑走起来,对数据的访问只能通过已定义 的接口。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口〔可以 想想普通洗衣机和全自动洗衣机的差异,明显全自动洗衣机封装更好因此操作起来更简单; 我们如今使用的智能手机也是封装得足够好的■因为几个按键就搞走了所有的事情]。
-多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用 同样的对象弓I用调用同样的方法但是做了不同的事情。实现多态需要做两件事:1).方法重 写〔子类继承父类并重写父类中的方法〕;2).对象造型〔用父类型引用引用子类型对象, 这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为〕
2.访问修饰符publiQprivate^rotected,以及不写〔默认〕时的区glj ?
修饰符
当前类
同包
子类
其他包
public
V
V
V
V
修饰符 protected default
当前类
V
V
同包
V
V
子类
V
X
其他包
X
X
private
V
X
X
X
3、String是最根本的数据类型吗?
答:不是。Java中的根本数据类型只有8个:byte、short、int、long、float、double, char、boolean ;除了根本类型〔primitive type)和枚举类型(enumeration type), 剩下的都是引用类型(reference type) e
4、 float f= 3.4;是否正确?
答:不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型
(down-casting也称为窄化〕会造成精度损失,因此需要强迫类型转换float f =(float)3.4; 或者写成 float f =3.4F;O
5、 short si = 1; si = si + 1;有错吗?short si = 1; si += 1;有错吗?
答:对于short si = 1; si = si + 1;由于1是int类型,因此sl+1运算结果也是int型,
需要强迫转换类型才能赋值给short型。而short si = 1; si+= 1;可以正确编译因为si+ =
1;相当于si = (short)(sl + 1);具中有隐含的强迫类型转换。
6、int和Integer有什么区别?答:Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了根本数据 类型,但是为了可以将这些根本数据类型当成对象操作Java为每一个根本数据类型都引 入了对应的包装类型(wrapper class) , int的包装类就是Integer,从Java 5开场引入 了自动装箱/拆箱机制,使得二者可以互相转换。
class AutoUnboxingTest {
public static void main(String[]
public static void main(String[]
Integer a = new Integer(3);
Integer b = 3; int c = 3;
System ? out ? prirrtlnCa == b);
System ?011七?卩厂1.门 tln(a == c); 比拟
}
}
args) {
//将3自动装箱成Integer类型
// false两个引用没有引用同一对象
// true a自动拆箱成int类型再和c
最近还遇到一个面试题,也是和自动装箱和拆箱有点关系的,代码如下所示:
public class Test03 {
public static void mai门(5七厂ing[] args) {
Integer fl = 100, f2 = 100, f3 = 150, f4 = 150;
System ? out ? prirrtln (fl == f2);
System ? out ? pnirrtln == f4);
}
}
假如不明就里很容易认为两个输出要么都是true要么都是false。首先需要注意的是fl、f2、 f3、f4四个变臺都是Integer对象引用,所以下面的==运算比扌以的不是值而是引用。装箱 的本质是什么呢?当我们给一个Integer对象赋一个int值的时候,会调用
文档评论(0)