岗位面试题库合集-IT工程师面试题-java面试题全攻略

VIP免费
2024-12-15 4 0 125.5KB 29 页 5.9玖币
侵权投诉
JAVA 程序员面试 32 问
第一,谈谈 final, finally, finalize 的区别。
final-修饰符(关键字)如果一个类被声明为 final,意味着它不能再派生出新的子类,不能
作为父类被继承。因此一个类不能既被声明为 abstract 的,又被声明为 final 的。将变量或方
法声明为 final,可以保证它们在使用中不被改变。被声明为 final 的变量必须在声明时给定
初值,而在以后的引用中只能读取,不可修改。被声明为 final 的方法也同样只能使用,不
能重载
finally-再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配
catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize-方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之
前做必要的清工作。这个方法是由垃圾收集器在确这个对象没有被引时对这个对象
调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整
理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象
调用的。
第二,Anonymous Inner Class ( 匿名内部类) 是否可以 extends()其它类,是否可以
implements(实现)interface(接口)?
匿名的内部类是没有名字的内部类。不能 extends(继承) 其它类,但一个内部类可以作为一
个接口,由另一个内部类实现。
第三,Static Nested Class Inner Class 的不同,说得越多越好(面试题有的很笼统)
Nested Class (一般是 C++的说法),Inner Class (一般是 JAVA 的说法)Java 内部类与 C++
嵌 套 类 最 大 的 不 同 就 在 于 是 否 有 指 向 外 部 的 引 用 上 。 具 体 可 见 http:
//www.frontfree.net/articles/services/view.asp?id=704&page=1
注: 静态内部类(Inner Class)意味着 1创建一个 static 内部类的对象,不需要一个外部类
对象,2不能从一个 static 内部类的一个对象访问一个外部类对象
第四,&&&的区别。
&是位运算符。&&是布尔逻辑运算符。
第五,HashMap Hashtable 的区别。
都属于 Map 接口的类,实现了将惟一键映射到特定的值上。
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同
步的。
第六,Collection Collections 的区别。
Collections 是个 java.util 下的类,它包含有各种有关集合操作的静态方法。
Collection 是个 java.util 下的接口,它是各种集合结构的父接口。
第七,什么时候用 assert
断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true如果表达式计
算为 false,那么系统会报告一个 AssertionError。它用于调试目的:
assert(a > 0); // throws an AssertionError if a <= 0
断言可以有两种形式:üüüüü
assert Expression1 ;
assert Expression1 : Expression2 ;
Expression1 应该总是产生一个布尔值。
Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息 String
消息
断言在默认情况下是用的。要在编译用断言,需要使用 source 1.4 标记:üü
javac -source 1.4 Test.java
要在运行时用断言,可使用 -enableassertions 或者 -ea 标记
要在运行时选择禁用断言,可使用 -da 或者 -disableassertions 标记
要系统类中用断言,可使用 -esa 或者 -dsa 标记可以在包的基础用或者用断言。
可以下不会到达的任何放置断言断言可以用于传递
法的参数,断言不该用传递有方法的参数因为用了断言
有方法都必须检查既可有方中,也可以在方法
试后置条件。另外,断言不应该以任何方式改变程序的态。
GC 是什么? 为什么要有 GC? (基础)
GC 是垃圾收集器。Java 程序员不用担心内存理,因为垃圾收集器会自动进行理。
垃圾收集,可以调用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
String s = new String("xyz");创建了String Object?
两个对象,一个是xyx”,一个是指向xyx”的引用对象 s
Math.round(11.5)等於? Math.round(-11.5)等於?
Math.round(11.5)返回long12Math.round(-11.5)返回long-11;
一,short s1 = 1; s1 = s1 + 1;有什么? short s1 = 1; s1 += 1;有什么?
short s1 = 1; s1 = s1 + 1;s1 short s1+1 int ,不能转化short 可修改
s1 =(short)(s1 + 1) short s1 = 1; s1 += 1 确。
二,sleep() wait() 有什么区别? 搞线程的最
sleep()方法是使线停止的方法。在 sleep 间间隔期满后,线程不一立即恢
执行。这是因为在那个时,其它线程可能在运行而没有被调执行,除
(a)“线程具有更高优先级
(b)在运行的线程因为其它因而阻塞
wait()线交互时,如果线程对一个同步x 一个 wait()用,线
被调对象进入等待状态,到被唤醒等待到。
三,Java 有没有 goto?
Goto-java 中的保字,现在没有在 java 中使用。
四,数组有没有 length()这个方法? String 有没有 length()这个方法
数组没有 length()这个方法,有 length 的属
String 有有 length()这个方法。
15 Overload Override 的区别。Overloaded 的方法是否可以改变返回值的类?
方法的重Overriding 和重Overloading Java 多态同表现。Overriding 是父
类与子类之多态的一种表现,重载 Overloading 是一个类中多态的一种表现。如果在
子类中定义方法与其父类有相同的名参数们说该方法被重 (Overriding)。子类
的对象使用这方法时,将调用子类中的定义,对它言,父类中的定义同被“屏蔽”
了。如果在一类中定义了多个同名的方法,它们或不同有不
则称为方法的重载(Overloading)Overloaded 的方法是可以改变返回值的类
Set 是不能重的,那么用什么方法来区分重? ==
equals()? 它们有何区别?
Set 元素是不能重的,那么用 iterator()方法来区分重与否。equals()读两个 Set
是否相
equals()==定引用值对象 equals()
的对象的内和类相配的话,返回真值。
七,给一个最常见到的 runtime exception
ArithmeticException, ArrayStoreException, BufferOverflowException,
BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException,
CMMException, ConcurrentModificationException, DOMException, EmptyStackException,
IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException,
IllegalStateException,
ImagingOpException, IndexOutOfBoundsException, MissingResourceException,
NegativeArraySizeException, NoSuchElementException, NullPointerException,
ProfileDataException, ProviderException, RasterFormatException, SecurityException,
SystemException, UndeclaredThrowableException, UnmodifiableSetException,
UnsupportedOperationException
十八error exception 有什么区别?
error 示恢复不是不可能但很困难情况下的一种重问题。比如说内存出。不可能指
程序能处理这样的情况
exception 一种计或实现问题。也就是说,它表如果程序运行常,从不会生的
情况
十九List, Set, Map 是否继承Collection 接口?
ListSet
Map 不是
第二abstract class interface 有什么区别?
象类面可以有非抽象方法
但接口只能有象方法
声明方法的存在而不去实现它的类被象类(abstract class),它用于要创建一个体现
某些基本行为的类,为该类声明方法,但不能在该类中实现该类的。不能创建
abstract 类的。然而可以创建一个变量,其类一个象类,并让它指向具体子类的
一个实不能有象构造函数象静态方法。Abstract 类的子类为它们父类中的所有
象方法提供实现,否它们也是象类为。取而之,在子类中实现该方法。知道其行为的
其它类可以在类中实现这方法。
接口(interface)是象类的变体。在接口中,所有方法都是象的。多继承通过实现
这样的接口而得。接口的所有方法都的,没有一个有程序体。接口只以定
static final 员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。
类实现特口时,它定义程序)所这种接口的方法。后,它可以在
实现了该接口类的任何对象上调用接口的方法。由类,它允许使用接口名
引用变量的类。引用可以到接口类或从接口类型转换
instanceof 运算符可以用来对象的类是否实现了接口。
abstract method static,native
synchronized?
都不能
第二二,接口是否可继承接口? 象类是否可实现(implements)? 象类是否可继承
实体类(concrete class)?
接口可以继承接口。类可以实(implements)接口象类是否可继承实体类,但前提
是实体类必须有明确的构造函数
第二三,启动一个线程是用 run()start()?
线start()使线虚拟处理
它可以由 JVM 度并执行。这不意味着线程就会立即运行。run()方法可以产生必须退
标志停止一个线程。
第二四,构Constructor 是否可被 override?
Constructor 不能被继承,因此不能重Overriding,但可以被重载 Overloading
第二五,是否可以继承 String ?
String 类是 final 不可以继承。
线一个 synchronized 法后线
对象的其它方法?
不能,一个对象的一个 synchronized 方法只能由一个线程访问。
第二try {}有一个 return 语句,那么紧跟在这个 try 后的 finally {}code 会不会
被执行,什么时候被执行,在 return 是后?
会执行,在 return 前执行。
第二十八程题: 用最有效率的方法算出 28等於几?
C背景的程序员特别喜欢问这种问题。
2 << 3
第二十九,两个对象值相同(x.equals(y) == true),但可有不同的 hash code,这句话对不对?
不对,有相同的 hash code
第三一个对象数传到一个方后,此方法可改变这个对象的属
返回后的结果,那么这是值传递还是引用传递?
是值传递Java 程语言只由值传递参数一个对象实作为一个参数传递到方法中时,
参数的值就是该对象的引用。对象的可以在被调用的方中改变,但对的引用是
永远不会改变的。
第三一,swtich 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String ?
switchexpr1)中,expr1 是一个整表达式。因此传递 switch case 语句的参数应该是
int short char 或者 bytelong,string 都不能作用于 swtich
第三二,程题: 一个 Singleton 出来。
Singleton 要作用是保证在 Java 应用程序中,一个类 Class 只有一个实存在。
一般 Singleton 常有种种形式:
第一种形式: 定义一个类,它的构造函数private 的,它有一个 static private 的该类变量
在类初始化话,通过一个 public getInstance 方法取对它的引用,继而调用其中的
方法。
public class Singleton {
  private Singleton(){}
  //自己内部定义自己一个实,是不是很奇怪?
  //注意这是 private 只供内部调用
  private static Singleton instance = new Singleton();
  //提供了一个供外部访问class 的静态方法,可以接访问  
  public static Singleton getInstance() {
    return instance;   
   }
}
第二种形式:
public class Singleton {
  private static Singleton instance = null;
  public static synchronized Singleton getInstance() {
  //这个方法比上面有所改进,不用每次都进行生对象,只是第一次     
  //使用时生,提效率!
  if (instance==null)
    instancenew Singleton();
return instance;   }
}
其他形式:
定义一个类,它的构造函数private 的,所有方法为 static 的。
一般为第一种形式要更加安全些
第三 Hashtable HashMap
Hashtable 继承Dictionary 类,而 HashMap Java1.2 引进的 Map interface 的一个实现
HashMap 允许将 null 作为一个 entry key 或者 value,而 Hashtable 不允许
有就是,HashMap Hashtable contains 方法去了,改containsvalue
containsKey。因为 contains 方法容易让人起误解
最大的不同是,Hashtable 的方法是 Synchronize 的,而 HashMap 不是,在
多个线程访问 Hashtable 时,不需要自己为它的方法实现同步,而 HashMap
就必须为之提供外同步。
Hashtable HashMap 用的 hash/rehash 算法都大一样,所以能不会有很大的异。
v10362.Java 程序员面试题
第一,谈谈 final finally finalize 的区别。
üüü
final?修饰符(关键字)如果一个类被声明为 final,意味着它不能再派生出
新的子类,不能作为父类被继承。因此一个类不能既被声明为
abstract 的,又被声明为 final 的。将变量或方法声明为 final,可以保证它们
在使用中不被改变。被声明为 final 的变量必须在声明时给定初值,而在以后的
摘要:

JAVA程序员面试32问第一,谈谈final,finally,finalize的区别。final-修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载finally-再异常处理时提供finally块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入final...

展开>> 收起<<
岗位面试题库合集-IT工程师面试题-java面试题全攻略.doc

共29页,预览6页

还剩页未读, 继续阅读

声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
分类:人力资源/企业管理 价格:5.9玖币 属性:29 页 大小:125.5KB 格式:DOC 时间:2024-12-15

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 29
客服
关注