java 题集(一)(二)

2014-11-23 23:42:00 · 作者: · 浏览: 26
D)。
ReturnType method(byte x, float y)
{
return (short)x/y*2;
}
A、byte B、short C、int D、float
因为参数里有一个float 16、在编写Java Applet程序时,需要在程序的开头写上(B )语句。
A、import java.awt.* ; B、import java.applet.* ;
C、import java.io.* ; D、import java.awt.event.* ; 17、C++或Java中的异常处理机制的简单原理和应用。
当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括
2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问
null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员
可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable
的子类。 18、Java中所有的类都继承了java.lang.Object类,而在C++中没有像java.lang.Object这样的类,这是为什么呢?都是面向对象,Java这样做有什么好处呢?
解析:Java采用的是单根结构,所有的类都继承了java.lang.Object类。对于Java这种纯面向对象的语言来说,这种设计具有很好的灵活性,比如对垃圾收集来说很有利,所有的类都具有java.lang.Object类具有的方法等。C++没有更多这样的方法,大概是为了向后兼容。向C兼容,满足它设计上最大的灵活性。
C++面向对象的部分会去考虑"和C兼容"?举个例子,MFC里面虽然不是完全的单根结构,基本也算基于CObject构建了一个类层次结构吧?懂点C++的人也应该知道可以给它增加垃圾回收器吧?跟单根结构有什么关系?再说C++0x也会引入一个可选的垃圾回收器了
答案:C++的特点是指针,一个指针可以指向任何的对象、结构、基本类型、函数。强,估计到处是void*才行
Java没有指针类型,所以Java用Object基础类的共同特征来实现所有对象类型之间的转换。18、对象与实例有什么区别?
解析:在Java的内存分配中,对象和实例是不同的,前者分配在内存堆里,后者分配在堆栈里,至于为什么要这样分,参考一下其他的资料。对象是不变的东西,它是对客观事物的抽象,实例是对操作对象的引用,你不能直接操作对象。
答案:对象和实例从宏观的角度看,区别是:对象是同类事物的一种抽象表现形式,而实例是对象的具体化,一个对象可以实例化很多实例,对象就是一个模型,实例是照着这个模型生产的最终产品。实际上就是这样,一个对象可以实例化N个实例。就像根据一个模型可以制造多个实际的产品一样。
从内存分配的角度来看,对象是保存在堆中的,而实例是存储在栈中的,实例其实只是对象的一个引用,也就是指向对象的指针。
新鲜吧,原来对象和实例还有这么大的差别,估计你要这么跟面试的人解释,走先!20. Error与Exception有什么区别?
Error表示系统级的错误和程序不必处理的异常,
Exception表示需要捕捉或者需要程序进行处理的异常。21、HashMap如何变成线程安全的?
Map m = Collections.synchronizedMap(new HashMap(…)); 22、作用域public,private,protected,以及不写时的区别
答:区别如下:
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly23、char型变量中能不能存贮一个中文汉字 为什么
答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的24、float型float f=3.4是否正确
答:不正确。精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4
25、抽象类和接口的区别  (1)接口可以被多重implements,抽象类只能被单一extends
(2)接口只有定义,只是一种标识,抽象类可以有定义和实现
(3)接口的字段定义默认为:public static final, 抽象类字段默认是”friendly”(本包可见)26、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized
都不能 27、接口是否可继承接口 抽象类是否可实现(implements)接口 抽象类是否可继承实体类(concrete
class)
接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类
必须有明确的构造函数。
28、J2EE是什么?
答:Je22是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。29、谈谈final, finally, finalize的区别。
final 修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父
类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,
可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能
读取,不可修改。被声明为final的方法也同样只能使用,不能重载。
finally 再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的
catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize 方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前
做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在
Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其
他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。 30、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实
现)interface(接口)
匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,
由另一个内部类实现。


31、Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。
Nested Class (一般是C++的说法),Inner Class (