Java面试题大全(答案版)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?

可以,但是只能有一个类用public修饰,并且用public修饰的类名与文件名要一致

2、&和&&勺区别。

&和&&都可以用作逻辑与;

&&还具有短路功能,即如果第一个表达式的结果为false,则不再计算第二个表达式;

&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操

作。

3、Java 有没有goto?

java中的保留字,现在没有在java中使用。

4、在JAVA中,如何跳出当前的多重嵌套循环?

break+变量控制与return

5、switch是否能作用在byte(拜特)上,是否能作用在long上,是否能作用在String上?

Switch可以作用在int上,而byte可以隐式转换为int 所以能作用在byte上不能作用在long上,也不能作用在String上

6、short s1 = 1; s1 = s1 + 1; 有什么错? short s1 = 1; s1 += 1; 有什么错?

1在java中为int数据类型,short+int=int ,大类型转为小类型,编译时,会报告需

要强制转换类型的错误。s1+=1不会报,因为JVM会对它特殊处理(自动强转)

7、char型变量中能不能存贮一个中文汉字?为什么?

可以,char型变量是用来存储unicode(依妮Q特)编码的,而unicode编码包含了中文,所以是可以保存的

8、编程题:用最有效率的方法算出2乘以8等於几?

2<<3,表示将2左移3位;一个数左移几位就表示这个数乘以了2的几次方,左移运算,CPU直接支持,所以是最有效率的

9、请设计一个一百亿的计算器

思路:用两个数组分别保存两个操作数,再新建一个数组保存结果。

10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?引用变量不能变

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

==和equals方法都可以用来比较两个对象是否是同一个对象。

==还可以比较两个变量的值是否相等。

equals是Object类中的方法,可以由子类重写此方法,实现内容相等。

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

语法上不同:静态变量前要加static 关键字,实例变量不需要

程序运行时不同:实例变量是属于某个对象的,只有创建了对象,才会为这个对象的实例变量分配空间。静态变量是属于类的,当程序加载了这个类的字节码文件,就会为静态变

量分配空间,并且所有对象共享这个变量

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

不可以,非static 方法需要与对象关联在一起的,而static 方法调用时不需要对象,

可以直接调用,也就是说调用static方法时,可能还没有创建任何实例

14、Integer 与int 的区别

int是java中的8种基本数据类型之一,默认值是0, Integer是int的包装类,默认

值是null,即Integer可以表示未赋值和赋值为0

15、(麦死)Math.round (乱的)(11.5)等於多少? Math.round(-11.5)等於多少?

12,-11,Math.round() 方法的实现是:Math.floor(n+0.5);

16、作用域public , private , protected ,以及不写时的区别

本类同包子类其他类

public

protected frien

dly

private ? ? ? ?

17、Overload(喔我楼的)和Override的区别。Overloaded的方法是否可以改变返回值的类型?

Overload是重载,Override是重写。

Overload是指在一个类中,方法名相同,参数列表不同,那么这些方法之间构成重载。Override 是指在父子类之间,子类的方法签名和父类的方法签名完全一样,那么这两个方法构成重写。

Overload的方法可以改变返回值。因为调用方法时,返回值可以接受也可以不接受,所以编译器无法根据返回值来判断是否重载。

18、构造器Constructor( 看似爪克特)是否可被override?

Con structor 不能被继承,所以不能override

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

接口可以继承接口,抽象类可以实现接口,抽象类可以继承具体类,抽象类中可以有静

态的main方法

20、写cione()方法时,通常都有一行代码,是什么?

super.clo ne(); 克隆时,首先得将父类的成员克隆完。

21、面向对象的特征有哪些方面

封装

封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

继承

继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类) ,而原始类称为新类的基类(父

类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方

法使之更适合特殊的需要。

抽象

抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分

细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

多态

多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应

相关文档
最新文档