java笔试面试题

 

1.面向对象的特征
 1抽象 抽象就是忽略一个主题中与当前目标无关的方面,充分注意与当前目标有关的的方

面。抽象不了解全部内容,而只是选择其中的一部分。抽象包括,过程抽象和数据抽象。
 2继承。一个新类可以从现有类中派生出来,这就是继承,子类可以从基类中继承方法和

实例变量 ,子类可以修改和新增新的方法。
 3封装。把过程和数据包装起来,对数据的访问只能通过已定义的界面、
 4 多态性 多态包括,参数的多态和包含的多态性。

2 String 是基本数据类型吗?
  String 不是基本数据类型。它是一个final 类。不可以继承,不可以修改。
  建议使用StringBuffer .
  其中,基本数据类型包括: int byte char short long double boolean float .
3 int 和Integer 的区别
  int 是基本数据类型。Integer 是java 为int提供的封装类。
4 String 和StringBuffer 的区别
  都可以存储字符串,string 定义的字符串不可变。而stringBuffer 则可变,他可通过 

append 方法来,修改字符串。
5 运行时异常和一般异常的区别
  运行时异常是指虚拟机操作遇到的异常,我们一般无法控制。
  一般异常则是java编译器要求方法必须申明抛出可能发生的异常。这种异常如果程序正

确运行的话,一般是不会出现的异常。
6 servlet 的生命周期
  1 实例化-->init()---> service()-->doGet()或者doPost().----->destory();
  与cgi(common Gate Interface 通用网关接口)区别:servlet处于服务器进程中,通

过多线程运行service方法。一个实例服务多个请求,而且实例不销毁。cgi是每个请求都

产生新的进程,服务完马上销毁。效率低。
7、说出ArrayList,Vector, LinkedList的存储性能和特性
ArrayList和Vector 使用数组方式存储,故他们插入元素要涉及到数组元素的移动和内存

的操作,所以,索引速度快而插入数据慢。vector是线程安全的(synchronized),性能

上比ArrayList差。linkList 则相反,插入快,索引慢。
8 collection 和collections 的区别。
  collection 是一个接口,继承它的接口有Set List。
  collections 是一个辅助类。里面有很多静态方法,排序、搜索等
9 &和&&的区别
  前者是位运算后者是逻辑运算。
10 hashMap 和hashtable 的区别
 hashMap是非线程安全的,而hashtable是线程安全的,都实现了map接口。hashMap允许

key和value为null,而hashtable不可以,另外hashtable继承了Dictionary类。
11 final, finally, finalize的区别
final 用来申明属性,方法,类。表示的是属性不可变,方法不可覆盖,类不可继承
finally 是异常处理的一部分,表示总是会执行。
finalize 是object 的一个方法,在垃圾回收的时候调用。
12 sleep 和wait 的区别:
sleep是线程类(Thread)的方法。sleep只是暂停当前执行时间,让其他线程执行,但是

到时侯它会自动恢复,继续执行,调用sleep不会释放对象锁.
 wait 是object的方法,调用wait方法会使本线程放弃对象锁,进入等待对象的等待池中,当

对象调用notify方法后,本线程才进入对象锁池,当获得了对象锁后,就才能进入运行状态.

13 overload和override的区别.
 都是多态性的表现.overload 重载,是指一个类中,可以定义相同的方法名.只是其参数个

数或者参数类型不同,或者其返回值类型不同.
override 重写,是指子类覆盖父类的方法.他的返回值和参数要和父类一样才叫重写.
14 error和exception 的区别:
error是一种程序是无法处理的严重的问题.比如虚拟机的错误,内存溢出等.而exception是

一种程序设计上的问题,如果程序运行正常,则exception是不会发生的.
15 同步和异步有何异同,在什么情况下分别使用他们?举例说明。
 在存在数据共享的情况下,要使用同步.比如说银行转账.
 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待

方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率
16 abstract class 和接口的区别
  抽象类,是只申明方法不去实现.抽象类的方法都是抽象方法.它也可以实现部分方法.但

是它不能实例化.抽象类没有构造方法,也没有静态方法.
接口是抽象类的变体.他只能声明public abstract方法.接口只能定义static final成员变

量.之类只能是impelement Inteface ,extends abstract class.
17堆(heap)栈(stack)的区别/
  栈是一个线性集合.其添加删除元素的操作应在同一时段完成,栈是按照后进先出的方式

进行处理.堆只是栈的一个组成元素.
18 forward 和redirect的区别。
  forward是像服务器请求资源,服务器直接访问url 。然后把那个url的响应内容读取出

来,再显示在浏览器上,故url地址不变,因为浏览器根本不知道服务器发过来的东西是从

哪里来的,地址栏是不变的。而redirect则,是服务器告诉浏览器,让浏览器去请求那个

url。所以session,requst参数都可以获取。
19 getParameter()和getAtrribute()的区别。
前者是取得前台form 属性中的值,后者是取得在后台通过setAtrribute进去的值。
20、Static Nested Class 和 Inner Class的不同。
Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被

实例化。而通常的内部类需要在外部类实例化后才能实例化。
21 JSP中动态INCLUDE与静态INCLUDE的区别?
动态jsp 《jsp:include >它会去检查所包含页面的的变化,适合用于包含动态页面,并可

带参数。而静态页面则不能,值适合包好静态页面。
22 short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
前者有错,当运行s1+1时系统自动转换成int 型。故要强制类型转换。
23Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12
Math.round(-11.5)==-11
round方法返回与参数最接近的长整数,参数加1/2后求其floor.
26、String s = new String("xyz");创建了几个String Object?
两个
27应用服务器有那些?
bea weblogic server ibm webSphere application server Oracle9i application

Server ,jboss , tmocat
28、List, Set, Map是否继承自Collection接口?
List,Set是,Map不是
29说出数据连接池的工作机制是什么?
J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端

程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有

空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用

的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接
37、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
都不能
38、数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()这个方法,有length的属性。String有有length()这个方法。
37、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
都不能
38、数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()这个方法,有length的属性。String有有length()这个方法。
39、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
40、构造器Constructor是否可被override?
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。
41、是否可以继承String类?
String类是final类故不可以继承。
42、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
43、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
会执行,在return前执行。
44、编程题: 用最有效率的方法算出2乘以8等於几?
2 << 3

你可能感兴趣的:(java,编程,应用服务器,面试,浏览器)