JAVA面试题
第一,谈谈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
1内部类的第一个好处就体现出来了——隐藏你不想让别人知道的操作,也即封装性。
2非静态内部类对象有着指向其外部类对象的引用
和普通的类一样,内部类也可以有静态的。不过和非静态内部类相比,区别就在于静态内部类没有了指向外部的引用。这实际上和C++中的嵌套类很相像了,Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用这一点上,当然从设计的角度以及以它一些细节来讲还有区别。
除此之外,在任何非静态内部类中,都不能有静态数据,静态方法或者又一个静态内部类(内部类的嵌套可以不止一层)。不过静态内部类中却可以拥有这一切。这也算是两者的第二个区别吧。
真正的原因是这样的,java中的内部类和接口加在一起,可以的解决常被C++程序员抱怨java中存在的一个问题——没有多继承。实际上,C++的多继承设计起来很复杂,而java通过内部类加上接口,可以很好的实现多继承的效果。
注: 静态内部类(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)返回(long)12,Math.round(-11.5)返回(long)-11;
第十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
都不能
分享到:
相关推荐
IBM面试题(附带所有答案!!) 1,分金条问题: 你让某些人为你工作了七天, 你要用一根金条作为报酬。这根金条要被分成七块。你必须在每天的活干完后交给他们一块。如果你只能将这根金条切割两次,你怎样给这些工人...
IBM的Java笔试题主要考察应聘者对于Java基础知识的掌握程度,包括类的继承、多态性、访问修饰符、异常处理以及字符串处理等方面的知识。下面将详细解释这些题目涉及的关键知识点。 1. **Overload 和 Override 的...
【JAVA面试题】Java语言是IT领域广泛应用的编程语言,面试中经常涉及到其核心概念和技术。以下是基于给定内容的一些详细知识点: 1. **面向对象的特征**:面向对象编程的四大特征是抽象、继承、封装和多态。 - ...
对于这些文档《Java笔试大IBM 全.doc》和《IBM JAVA面试.doc》,可以仔细研读,了解IBM对候选人的具体要求和常见问题,以确保充分准备。同时,通过实践项目和编码练习来巩固理论知识,将大大增加面试成功的可能性。
【IBM公司JAVA程序员笔试面试题汇总及答案】 在IBM公司的JAVA程序员招聘过程中,常见的笔试和面试题涵盖了面向对象编程的基本概念、数据类型、异常处理、字符串处理、集合框架以及企业级Java应用(EJB)等多个核心...
华为与IBM等公司JAVA面试题大汇总,看了就知道进这公司有多难
这个名为"华为与IBM等公司JAVA面试题大全.rar"的压缩包文件,很可能是为准备这两家公司面试的Java开发者提供的一份宝贵的参考资料。它包含了aybook.cn_hudicjuemshice1101.doc文档、更多电子书下载.html链接以及E书...
本资源摘要信息涵盖了Java编程语言的多个方面,包括Java的基本语法、对象oriented编程、Java中的变量、运算符、控制流语句、方法、数组、继承、多态、Java中的static关键字等。 1. Java的基本语法 Java的基本语法...
2. **java面试题及答案(基础题122道,代码题19道).doc** - 这文档提供了122个基础理论问题和19道编程题目,覆盖了Java语言的基本概念、语法特性、API使用等,是复习基础的宝贵资料。 3. **IBM技术笔试题%2B包括...
提供的文档和网页资料,如"java面试题.doc"、"JAVA面试题最全集.htm"、"中远面试题.txt"、"ibm笔试题"等,应包含大量具体的题目和解析,可以作为复习和准备的重要参考资料。记得结合实际编码练习,巩固理论知识,...
Java面试题是评估应聘者技术水平和知识深度的重要方式,尤其对于IBM、交通银行等大型企业或外包公司,面试过程往往严谨且深入。以下是一些基于Java的常见面试知识点,涵盖了编程基础、数据结构、算法、多线程、集合...
【标题】:“C++与Java面试题(综合)” 这篇资料集合了C++和Java两个主要编程语言的面试题目,适合准备技术面试的求职者。综合性的面试题库旨在覆盖这两个语言的基础概念、核心特性、高级用法以及编程实践。 ...
华为与IBM等公司JAVA面试题大全.rar 华为与IBM等公司JAVA面试题大全.rar 华为与IBM等公司JAVA面试题大全.rar华为与IBM等公司JAVA面试题大全.rar 华为与IBM等公司JAVA面试题大全.rar 华为与IBM等公司JAVA面试题大全....
### 华为IBM的java面试题关键知识点解析 #### 1. AWT和Swing组件的GUI设计的关键 - **AWT**: Abstract Window Toolkit(抽象窗口工具包),是Java最早提供的用于图形用户界面(GUI)开发的类库。AWT依赖于本地平台的...
本篇文章将详细探讨IBM的经典面试题,重点围绕Java编程语言,同时也会涉及到更广泛的面试技巧和行业知识。 首先,Java是IBM面试中常见的核心技术。Java作为一种多平台、面向对象的编程语言,其强大之处在于它的可...
这个压缩包文件"JAVA面试题,华为与IBM等公司JAVA面试题大全.rar"包含了这些公司在招聘Java工程师时可能会问到的问题,帮助求职者更好地准备面试。下面,我们将深入探讨一些Java面试中常见的知识点。 1. **Java基础...
SUN,IBM等公司java面试题,里面全是经典的面试题,也是常常被问的面试题