您的位置:首页 > 职场人生

java10道面试题

2013-03-07 23:41 267 查看
1、HashMap与HashTable的区别

都是Map借口的实现,都是实现了将唯一键值映射到一个值。HashMap允许有最多一个null键,或多个null值,但是HashTable既不允许null键也不允许null值,并且HashMap的值是不排序的;HashTable与HashMap还有一个区别是HashMap不是线程安全的,而HashTable是线程安全的。

2、sleep()方法与wait()方法的区别;

sleep()是线程(Thread) 的方法,调用该方法导致当前线程暂停执行指定时间,将CPU暂时让给其他应用程序,但是监控状态依然存在,到一定时间其会自动回复,并且该方法不会持有对象锁。而wait()是Object对象的方法,对象调用该方法会导致当前线程放弃对象锁,进入等待该对象的对象锁定池。只有针对本对象的notify或(notifyAll)方法才会使得先前那个等待线程进入对象锁定池准备获得对象锁进而进入运行状态。

3、Collection和Collections的区别。

Collection是java.util包下的接口,它是各种集合结构的父接口;

Collections是java.util包下的类,它定义了一系列操作接口的静态方法。

4、什么时候用assert?

assertion(断言)在软件开发中是一种常用的调试方法,许多编程语言都支持这种机制。现实中assertion就是一条语句,它对一个boolean表达式进行检查,一个正确的程序必须保证这个boolean表达式为true;若表达式为false,说明程序已经处于不正确状态,程序将发出警告或退出。一般来说assertion用来保证最基本、最关键的正确性,assertion一般在开发和测试时开启,在软件发布时,为了提高性能,需要将assertion关闭。

5、&和&&的区别?

&是位运算符,计算两个数相与的值;&&是逻辑运算符,链接两个表达式,当两个表达式都为真时,整个表达式才为真。

6、谈谈final、finally、finalize?

final:修饰符(关键字),如果一个类被修饰为final,则表明该类不可派生出其他子类,也不可作为父类被继承。因此一个类不可既被修饰为abstract(抽象类,可被继承),又被修饰为final。当变量或者方法被修饰为final,则表明该变量或方法在使用过程中不会被修改。被final修饰的变量必须初始化数据,在被引用时只可读取,不可修改。被声明为final的方法也同样只能使用,不能被重载。

finally:在异常处理时finally块提供处理任何清理工作。如果抛出一个异常,那么相应的能捕获到的catch块就会执行,最终一定会执行finally块(如果有定义finally块)。

finalize:方法名。java技术允许使用finalize()在垃圾收集器将对象从内存中清理出去之前做必要的清理工作。这个方法是在垃圾收集器确认该对象没有被引用时对该对象调用的。该方法是在Object中定义的,因此所有子类都继承了它。子类覆盖finalize()方法用以整理系统资源或做其他清理工作。finalize()是在垃圾回收器在删除对象前对这个对象的调用。

7、Anonymous(匿名)Inner(内部)Class(类)是否可以(extends)继承其他类?是否可以implements(实现)interface(接口)?

匿名内部类是没有名称的类,不可以继承其他类。但一个内部类可以作为接口被另一个匿名内部类实现。

8、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;因为返回最接近参数的long.通过加上1/2 将该结果舍入为整数,取结果的基数并将其强制转换为long 类型。换句话说,结果等于以下表达式的值:(long)Math.floor(a + 0.5d)

9、static nested class与inner class的区别?

static nested class(嵌套类),即声明了static的内部类。普通内部类对象inner class(内部类)隐式保存了一个引用,指向创建它的外围类,不能有static数据和static字段。嵌套类意味着:

1:要创建一个嵌套类,不需要其外围类;

2:不允许在嵌套类中访问非静态的外围类对象

10、Vector与ArrayList的区别?

1:同步性,Vector是同步的,也就是说是线程安全的;而ArrayList不是线程安全的;

2:增长性,当需要扩展空间时,Vector将增长为原来的一倍,而ArrayList增长为原来的一半。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面试 java