JAVA面试题目(一)
水平一流,但往往栽在基础知识的问题上
1、final,finally,finalize的区别
final--修饰符(关键字)如果一个类被声明为final,意味着该类断子绝孙,不能被继承。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
finally-异常处理时用来执行清除操作,通常是关闭文件或者释放内存。无论有没有抛出异常,如果有finally块,最终都会被执行。
finalize-方法名。通常,finalize用于一些不容易控制、并且非常重要资源的释放,例如一些I/O的操作,数据的连接。这些资源的释放对整个应用程序是非常关键的。在这种情况下,程序员应该以通过程序本身管理(包括释放)这些资源为主,以finalize函数释放资源方式为辅,形成一种双保险的管理机制,而不应该仅仅依靠finalize来释放资源。
2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
匿名的内部类是没有名字的内部类,不能extends(继承) 其它类。但一个内部类可以作为一个接口,由另一个内部类实现。
3、Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。
Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。
静态内部类(Inner Class)意味着
1、创建一个static内部类的对象,不需要一个外部类对象,
2、不能从一个static内部类的一个对象访问一个外部类对象。
4、HashMap和Hashtable的区别
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。
当需要同步时,用Hashtable,反之用HashMap。但是,因为在需要时,HashMap可以被同步,HashMap的功能比Hashtable的功能更多,而且它不是基于一个陈旧的类的,所以有人认为,在各种情况下,HashMap都优先于Hashtable。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。
5、Collection 和 Collections的区别
Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
6、GC是什么? 为什么要有GC?
GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
7、String s = new String("xyz");创建了几个String Object?
两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。
8、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;
9、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正确。
10、sleep() 和 wait() 有什么区别
sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级,(b)正在运行的线程因为其它原因而阻塞。
wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。
11、Java有没有goto?
12、数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()这个方法,有length的属性。
String有有length()这个方法。
13、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
14、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。
15、给我一个你最常见到的runtime exception
NullPointerException
ClassCastException
ArithmeticException
ArrayStoreException
BufferOverflowException
BufferUnderflowException
CannotRedoException,
CannotUndoException
CMMException
ConcurrentModificationException,
DOMException
EmptyStackException
IllegalArgumentException
IllegalMonitorStateException,
IllegalPathStateException
IllegalStateException
ImagingOpException,
IndexOutOfBoundsException
MissingResourceException
NegativeArraySizeException
NoSuchElementException,
ProfileDataException
ProviderException
RasterFormatException
SecurityException
SystemException,
UndeclaredThrowableException
UnmodifiableSetException
UnsupportedOperationException
分享到:
相关推荐
Java面试经典算法 Java 面试经典算法是指在 Java 面试中经常会被问到的算法题目,这些题目涵盖了数据结构、算法设计、编程语言基础知识等方面的知识。本文总结了 17 道 Java 面试经典算法题目,并对每道题目进行了...
1. **java面试笔试题大汇总.doc**:这可能是一个Word文档,里面详细列出了各种Java面试和笔试题目,按照不同的主题分类,可能包括了答案解析,帮助求职者理解和学习。 2. **www.pudn.com.txt**:这可能是一个文本...
该系列课程中的很多题目都是我求职时所遇到的及我面试求职者时所提出的,另外也从网上和很多公司的笔试、面试题目中摘选了一定数量的典型题,相信大家在学习完本课程后,对今后很多笔试、面试中所遇到的问题都会有...
猴子吃桃问题是一个经典的递归问题,在计算机科学领域被广泛用作面试题目,用于考察应聘者对递归算法的理解与应用能力。该问题的基本描述是:猴子第一天摘了一些桃子,吃了一个;之后每天吃掉前一天剩下的桃子数量...
在Java中,我们可以使用循环结构来模拟猴子吃桃子的过程,从第十天开始反推,直到找到第一天猴子摘桃子的数量。 首先,我们知道第十天早上,猴子只剩下1个桃子。根据题目描述,这意味着在第九天晚上,他有1个桃子...
假设猴子第一天摘下的桃子数量为`n`,那么按照题目描述,我们可以列出以下的等式序列: 1. 第一天结束时:`n - (n/2 + 1) = 剩余桃子` 2. 第二天结束时:`n/2 - ((n/2 + 1)/2 + 1) = 剩余桃子` 3. ... 4. 第九天...
这个问题涉及到了动态规划和贪心策略,是程序员面试中常见的题目。在这个问题中,一只猴子每天晚上可以从桃树上偷一定数量的桃子,但它不能吃当天摘的所有桃子,必须留下一部分供第二天吃。如果猴子第一天吃掉所有的...
在给应届生的编程题目中,有两个常见难题经常困扰着同学们。本文档分享了解决这两个问题的方法,旨在帮助大家更好地理解和解决此类问题。 首先,第一个问题是字符串反转。任务是编写一个函数`reverseString(String ...
在Java编程语言中,"猴子偷桃"是一个经典的算法问题,通常被用来教授动态规划或者贪心算法。...无论哪种情况,这个简单的“猴子偷桃”问题都是编程练习和面试中常见的题目,有助于提升解决问题的能力。
4. 摘苹果理论强调设立高远目标的重要性。这启示我们在职业生涯规划中应设定具有挑战性的目标,以促进个人成长。 5. 面对员工的虚假行为,作为领导者应当如何处理?题目中选择了诚实面对并教育员工的策略,强调诚信...