软件工程师电面题-IBM电话面试

程序员电面题---IBM电话面试

本次电话面试全长27:18秒!

今天上午和hr妹纸约定下午15:30进行第一轮的电话面试。

在15:12分的时候电话打了进来!好紧张的说。

首先面试官很客气的到了个歉,说自己有事情,所以提前打了,问我是否方便。

感觉很不错的一个面试官!

然后就开始了!

1.java的为什么使用序列化

一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才是可序列化的。因此如果要序列化某些类的对象,这些类就必须实现Serializable接口。而实际上,Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化。
序列化的好处:
a)比如说你的内存不够用了,那计算机就要将内存里面的一部分对象暂时的保存到硬盘中,等到要用的时候再读入到内存中,硬盘的那部分存储空间就是所谓的虚拟内存。在比如过你要将某个特定的对象保存到文件中,我隔几天在把它拿出来用,那么这时候就要实现Serializable接口;
b)在进行java的Socket编程的时候,你有时候可能要传输某一类的对象,那么也就要实现Serializable接口;最常见的你传输一个字符串,它是JDK里面的类,也实现了Serializable接口,所以可以在网络上传输。
c)如果要通过远程的方法调用(RMI)去调用一个远程对象的方法,如在计算机A中调用另一台计算机B的对象的方法,那么你需要通过JNDI服务获取计算机B目标对象的引用,将对象从B传送到A,就需要实现序列化接口。

2.jdk和jre的区别

jdk是Java Development Kit 也就是开发人员的SDK,提供了java的开发环境和运行环境。

jre是Java Runtime Environment 是指java的运行环境,是面向java程序的使用者,而不是开发者。只有你的电脑安装了jre,你才能运行java程序。

3.equals和==的区别

这道题请看本博客:Java中equals和==

4.Notify是什么

Notify是唤醒特定一个wait()的进程,NotifyAll是唤醒所有wait()的进程。

5.异常处理

分为两大类:Error和Exception

Exception分为:执行异常(RuntimeException)和检查异常(CheckedException)

RuntimeException在默认情况下会得到自动处理。所以通常用不着捕获RuntimeException,但在自己的封装里,也许仍然要选择抛出一部RuntimeException。

RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。它是unCheckedExcepiton。

Java.lang.ArithmeticException

Java.lang.ArrayStoreExcetpion

Java.lang.ClassCastException

Java.lang.EnumConstantNotPresentException

Java.lang.IllegalArgumentException

Java.lang.IllegalThreadStateException

Java.lang.NumberFormatException

Java.lang.IllegalMonitorStateException

Java.lang.IllegalStateException

Java.lang.IndexOutOfBoundsException

Java.lang.ArrayIndexOutOfBoundsException

Java.lang.StringIndexOutOfBoundsException

Java.lang.NegativeArraySizeException’

Java.lang.NullPointerException

Java.lang.SecurityException

Java.lang.TypeNotPresentException

Java.lang.UnsupprotedOperationException


除了runtimeException以外的异常,都属于checkedException,它们都在java.lang库内部定义。Java编译器要求程序必须捕获或声明抛出这种异常。

一个方法必须通过throws语句在方法的声明部分说明它可能抛出但并未捕获的所有checkedException。

Java.lang.ClassNotFoundException

Java.lang.CloneNotSupportedException

Java.lang.IllegalAccessException

Java.lang.InterruptedException

Java.lang.NoSuchFieldException

Java.lang.NoSuchMetodException


与异常不同的是Error及其子类的对象不应被抛出。

Error 是 Throwable 的子类,代表编译时间和系统错误,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath 错误是一个“正规”的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕获它。

在执行该方法期间,无需在其 throws 子句中声明可能抛出但是未能捕获的 Error 的任何子类,因为这些错误可能是再也不会发生的异常条件。

它是uncheckedExcepiton。

ArrayIndexOutOfBoundsException 

6.unCheckedException和CheckedException的区别,适用范围

如上题

7.final,finally和finalize的区别

final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。 
finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。 
finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

8.数据库union和union all的区别

都是将两个结果集合并为一个。union会删除重复的记录,保留一条;union all会将所有记录都查询出来,不进行重复数据的筛选。

9.forward内部跳转 和redirect重定向跳转的区别

1).从地址栏显示来说  forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.  redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.
2).从数据共享来说  forward:转发页面和转发到的页面可以共享request里面的数据.  redirect:不能共享数据.  
3).从运用地方来说  forward:一般用于用户登陆的时候,根据角色转发到相应的模块.  redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.  
4).从效率来说  forward:高.  redirect:低.

10.数据库连接,内连接,左连接,右连接,外连接的区别。

很简单,你懂的额!

11.简单介绍下MVC。

12.简单介绍下对关系型数据可和网络数据库的理解!

13.Comparator和Comparable在排序中的应用

Comparable 的类层次是:java.util;
Comparable 的类层次是:java.lang,
comparable&   Comparator    都是用来实现集合中的排序的,只是Comparable是在集合内部定义的方法实现的排序,Comparator是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义Comparator接口的方法带有两个参数compare(Object obj1,Object obj2)和方法equals(Object obj)或在集合内实现Comparable接口的方法带有一个参数compareTo(Object obj)。 
Comparable是一个对象本身就已经支持自比较所需要实现的接口(如String    Integer自己就可以完成比较大小操作) 而Comparator是一个专用的比较器,当这个对象不支持自比较或者自比较函数不能满足你的要求时,你可以写一个比较器来完成两个对象之间大小的比较。
一个类实现了Comparable接口则表明这个类的对象之间是可以相互比较的,这个类对象组成的集合就可以直接使用sort方法排序。
Comparator可以看成一种算法的实现,将算法和数据分离,Comparator也可以在下面两种环境下使用:
1、类的设计师没有考虑到比较问题而没有实现Comparable,可以通过Comparator来实现排序而不必改变对象本身
2、可以使用多种排序标准,比如升序、降序等

后面的英语面试:自我介绍,问了自己的出生年月日,家乡是哪里,什么时候毕业!能不能接受半年以上的实习!

hr妹纸说我的英语超烂!哎!肿么办!谁有好的练习方式啊!我的听力太他妈的差劲了哇!555555555

最后的英语面试,我支支吾吾,哎!我要提高英语交流能力!

12楼rjgcx24天前 08:39
哥们我把你的题目做了,第八题我懒得查,其他都是靠记忆做的,你可以看看第九题的答案。
Re: llhhyy19894天前 09:49
回复rjgcx2n第四题该如何回答呢?从那方面回答。有点像委托知识,通知呀
Re: llhhyy19894天前 11:32
回复llhhyy1989n union合二为一,去掉重复。效率低。n unionall 简单的合二为一,不去掉重复。效率高。
Re: qitian00084天前 11:40
回复rjgcx2n额,你的答案在哪里?
11楼laner05154天前 22:56
学习一下
10楼rjgcx24天前 22:30
http://blog.csdn.net/rjgcx2/article/details/7823999
Re: qitian00084天前 22:43
回复rjgcx2n呵呵!你做的答案很简洁呀!
9楼rjgcx24天前 21:09
你现在开始投简历了?在那个网站投那?
Re: qitian00084天前 21:52
回复rjgcx2n额。我也忘记在哪里投的简历了!好像是大街网!
8楼xiongdy4天前 20:07
我cao,我的E文也超烂。n活不下去了~~~~~~~
7楼Wentasy4天前 19:47
不错哈。加油!n1.推荐个网站:[url=http://www.tingclass.net/]听力课堂[/url]n2.多听、多读、多说;n3.贵在坚持。
Re: qitian00084天前 19:48
回复Wentasyn谢谢哈!
6楼rjgcx24天前 19:38
不是委托,是通知,调用notify, 处理器会从等待的线程中选一个,然后唤醒该线程。
Re: llhhyy19894天前 19:42
回复rjgcx2n至于java中的多线程东东,没有接触过
Re: llhhyy19894天前 19:46
回复rjgcx2n哦,是操作系统中的常识呀,我以为是程序设计中的呢
5楼xiaoyukid4天前 19:33
hr妹纸怎么样?
Re: qitian00084天前 19:35
回复xiaoyukidn额!电面的说!不知道长相!声音嘛,还是很甜美的!吼吼!
4楼lishehe4天前 19:00
英语加油啊
3楼qq1361852044天前 18:05
IBM 面试怎么这么简单啊!!
Re: qitian00084天前 18:59
回复qq136185204n这仅仅是第一轮的一个简单的电面!明天有技术总监进行二轮面!技术总监过了是老总,然后是美国方面的最后一轮面!
2楼rjgcx24天前 17:35
哥们不错。加油。
1楼xhf555554天前 17:02
学习了