admin 管理员组文章数量: 887021
2024年1月12日发(作者:exprot default)
Java面试题大全(答案版)
一个".java"源文件中是否可以包括多个类(不是内部类)?有
什么限制?
可以,但是只能有一个类用public修饰,并且用public修饰的类名与文件名要一致
2、&和&&的区别。
&和&&都可以用作逻辑与;
&&还具有短路功能,即如果第一个表达式的结果为false,则不再计算第二
个表达式;
&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作。
3、J ava有没有goto?
java中的保留字,现在没有在java中使用。
4、在JAVA中,如何跳出当前的多重嵌套循环?
break+变量控制与return
5、s witch是否能作用在byte(拜特)上,是否能作用在long上,是否能作用在Stri ng 上?
Switch可以作用在int上,而byte可以隐式转换为int所以能作用在byte 上
不能作用在long上,也不能作用在String上
6、s hort s1 = 1; s1 = s1 + 有什么错? short s1 = 1; s1 += 有什么错?
1在java中为int数据类型,short+int=int,大类型转为小类型,编译时,会报告需要强制转换类型的错误。s1+=1不会报,因为JVM会对它特殊处理(自动强转)
7、char型变量中能不能存贮一个中文汉字?为什么?
可以,char型变量是用来存储uni code(依妮Q特)编码的,而uni code编码包含了中文,所以是可以保存的
&编程题:用最有效率的方法算出2乘以8等於几?
2<<3,表示将2左移3位;一个数左移几位就表示这个数乘以了2的几次方,
左移运算,CPU直接支持,所以是最有效率的
9、请设计一个一百亿的计算器
思路:用两个数组分别保存两个操作数,再新建一个数组保存结果。
0、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
引用变量不能变
1、"=="和equals方法究竟有什么区别?
==和equals方法都可以用来比较两个对象是否是同一个对象。
==还可以比较两个变量的值是否相等。
equals是Object类中的方法,可以由子类重写此方法,实现内容相等。
2、静态变量和实例变量的区别?
语法上不同:静态变量前要加static关键字,实例变量不需要
程序运行时不同:实例变量是属于某个对象的,只有创建了对象,才会为这个对象的实例变量分配空间。静态变量是属于类的,当程序加载了这个类的字节码文件,就会为静态变量分配空间,并且所有对象共享这个变量
3、是否可以从一个static方法内部发出对非static方法的调用?
不可以,非static方法需要与对象关联在一起的,而static方法调用时不需要对象,可以直接调用,也就是说调用static方法时,可能还没有创建任何实例
4、Integer与int的区别
int是java中的8种基本数据类型之一,默认值是0, Integer是int的包装类,
默认值是null,即Integer可以表示未赋值和赋值为0
5、(麦死) (乱的)(11.5)等於多少?
(-11.5)等於多
少? 12,-11,()方法的实现是:(n+0.5);
6、作用域public,private,protected,以及不写时的区别
本类同包子类其他类
public
protected
frien dly
private ? ? ? ?
7、Overload(喔我楼的)和Override的区别。Overloaded的方法是否可以改变
返回值的类型?
Overload是重载,Override是重写。
Overload是指在一个类中,方法名相同,参数列表不同,那么这些方法之间构成重载。
Override是指在父子类之间,子类的方法签名和父类的方法签名完全一样, 那么这两个方法构成重写。
Overload的方法可以改变返回值。因为调用方法时,返回值可以接受也可以不接受,所以编译器无法根据返回值来判断是否重载。
&构造器Constructor(看似爪克特)是否可被override?
Constructor不能被继承,所以不能override
9、接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?抽象类中是否可以有静态的main方法?
接口可以继承接口,抽象类可以实现接口,抽象类可以继承具体类,抽象类中可以有
静态的main方法
0、写clone()方法时,通常都有一行代码,是什么?
ne();克隆时,首先得将父类的成员克隆完。
1、面向对象的特征有哪些方面
封装
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
继承
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量, 并且类可以修改或增加新的方法使之更适合特殊的需要。
抽象
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
多态
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
2、j ava中实现多态的机制是什么?
靠的是父类或接口能够指向子类或实现类。程序运行时,JVM会根据内存
中实际的对象调用方法。
3、abstract (抽象)c lass 和in terface 有什么区别?
1、a bstract class 本质是类,用abstract 修饰类,而in terface
是接口,将class 替换为in terface
2、abstract class可以有构造方法,in terface不能有
3、abstract class中可以包含普通变量,in terface所有的变量都是final static 的
4、abstract class中可以包含普通方法,in terface中所有的方法都是抽象的。
5、a bstract class中除抽象方法不可以是private修饰符外,其它成员任意;而in terface中所有成员的修饰符都为public
6、abstract class可以继承一个类实现多个接口,in terface只能继承接口
4、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
abstract的方法不可以是static,abstract方法必须由子类去实现,而static 方法可以由当前类调用。
abstract的方法不可以是native,abstract方法必须由子类去实现,而native 是调用其它程序语言的代码,所以不存在由子类去实现的问题,矛盾。
关于abstract和synchronized同用的问题,我觉得也不行,因为在这几年的开发中,从没见过这种情况,而且我觉得syn chro
nized应该是作用在一个具体的
方法上才有意义。
5、什么是内部类?
在一个类的内部定义的类叫做内部类。
6、内部类可以引用外部类的成员吗?有没有什么限制?
如果不是静态内部类,完全可以。
7、S tatic Nested Class和Inner Class的不同。
Nested Clas「般是C++勺说法,Inner Class一般是Java的说法,指的是同一意思。
内部类分为静态内部类和非静态内部类。
静态内部类中可以包含静态成员,非静态内部类中不可以包含静态成员。
静态内部类中不能引用外部类中的实例成员。非静态内部类则没有这个限制。
8、A nonymous Inner Class匿名内部类)是否可以extends
(继承)其它类,是否可以implements(实现)interface(接口)?
可以继承其它类,可以实现接口
9、S tring是最基本的数据类型吗?
不是,基本数据类型是:byte short int long float double char
boolean
0、String s = "Hello";s = s + " world!"这两行代码执行后,原始的String对象中的内容到底变了没有?
没有,String类被设计为不可变的类。所以它的所有对象都不可变。
1、是否可以继承String类?
不可以。Stri ng被fin al修饰,被fin al修饰的类不可被继承。
2、String s = new String("xyz")创建了几个String Object?二者之间有什么区别?
2个对象。一个放在常量区,不管写多少遍,永远只有一个。一个放在堆内存中。每次new String就产生一个新的。
3、S tring 禾口StringBuffer 的区另U
String和StringBuffer都是操作字符串的类。
String类被设计为不可变,而StringBuffer可变。
4、如何把一段逗号分割的字符串转换成一个数组?
第一种用正则表达式的方式:String类的split方法
第二种方式:StringTokenizerStringTokenizer( “ 1,2,3,4 ” , ” , ”);
5、数组有没有length()这个方法? String有没有length()这个方法?
数组是length属性,String有length()这个方法
6、try {}里有一个return语句,那么紧跟在这个try后的fin ally
{}里的code 会不会被执行,什么时候被执行,在return前还是后?
会,retur n 前
8、fin al, fin ally, fin alize 的区别。
final用来修饰类,变量,方法的。修饰类表示类不可被继承,修代码为:new
饰变量表示变量的引用不可变,修饰方法表示方法不可被重写。
fin ally是异常处理结构中的一部分,表示一定会执行。
finalize是Object类的方法,当垃圾收集器执行的时候会调用此对象的这个方法。
9、运行时异常与一般异常有何异同?
一般异常强制要求捕获或声明。
运行时异常可以捕获,也可以不捕获。
0、error和exception有什么区别?
error表示恢复不是不可能但是很困难的情况下的一种严重问题。例如:内存溢出
exception表示程序的设计或实现有问题。也就是说如果程序正常运行,不会发生的情况。
1、J ava中的异常处理机制的简单原理和应用。
当Java程序违反了Java的语义规则时,JVM就会将发生的错误表示为一个异常。违
版权声明:本文标题:Java面试题大全(答案版) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1705049931h471218.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论