Java笔试

25 篇文章 0 订阅

1. Servlet的几种状态?

servlet生命周期也就是:servlet容器如何去创建servlet对象,如何去分配资源,并且调用其方法来处理请求,以及销毁servlet对象的过程。也就是说,servlet容器如何管理servlet
大致分以下4步骤-->
1,实例化:请求到来时servlet容器会创建一个servelt实例
2,初始化:容器在创建好servlet对象之后,会接着调用servlet对象的init方法。
          要注意:该方法只会执行一次。作用是,获取资源。
3,就绪:调用servlet对象的service()方法。
4,销毁:容器会依据自身的算法,删除servlet对象。在删除之前,会先调用servlet对象的
        destroy()方法

2. 抽象类与接口的区别?

对于问题领域的理解,正确的揭示我们的设计意图。其 实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系,大家在选择时可以作为一个依据,当然这是建立在对问题领域的理解上的,推荐使用:

abstract class Door{
abstract void open();
abstract void close()
}
interface Alarm{
void alarm();
}
class Alarm Door extends Door implements Alarm{
void open(){…}
void close(){…}
void alarm(){…}
}

而不是

abstract class Door{

abstract void open();

abstract void close()

abstract void alarm();

}

class AlarmDoor extends Door{
void open(){…}
void close(){…}
void alarm(){…}
}

也不是

interface Door{
void open();
void close();
void alarm();
}

class AlarmDoor implements Door
void open(){…}
void close(){…}
void alarm(){…}

面向对象设计中的一个核心原则 ISP (Interface Segregation Principle),在Door的定义中把Door概念本身固有的行为方法和另外一个概念"报警器"的行为方 法混在了一起

小结

  1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface

   2.abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是 static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。

  3.abstract classinterface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。 

  4.实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。

  5.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。

  6.抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。 

  7.接口中的方法默认都是 public,abstract 类型的。

8. 抽象类在定义类型方法的时候,可以给出方法的实现部分,也可以不给出;而对于接口来说,其中所定义的方法都不能给出实现部分。

9. 在抽象类中,新增一个方法的话,继承类中可以不用作任何处理;而对于接口来说,则需要修改继承类,提供新定义的方法。

10. 接口不光可以作用于引用类型,也可以作用于值类型。而抽象类来说,只能作用于引用类型。

 abstract class 和 interface 是 Java语言中的两种定义抽象类的方式,它们之间有很大的相似性。但是对于它们的选择却又往往反映出对于问题领域中的概 念本质的理解、对于设计意图的反映是否正确、合理,因为它们表现了概念间的不同的关系(虽然都能够实现需求的功能)。这其实也是语言的一种的惯用法,希望 读者朋友能够细细体会。 

参考:http://dev.yesky.com/436/7581936.shtml 

3. 经典的字符串匹配函数?KMP

4. 接口只能用public修饰,不能用protected, private, static修饰

interface中不能含有Static方法,属性,成员变量。

abstract中可以有Static方法,属性,成员变量。

1)static修饰一个属性字段,那么这个属性字段将成为类本身的资源,public修饰为共有的,可以在类的外部通过test.a来访问此属性;在类内部任何地方可以使用.如果被修饰为private私有,那么只能在类内部使用.

final而非static的时候,它属于类的实例对象的资源,当类被加载进内存的时候这个属性并没有给其分配内存空间,而只是定义了一个变量a,只有当类被实例化的时候这个属性才被分配内存空间,而实例化的时候同时执行了构造函数,所以属性被初始化了

2)final 用于声明属性,方法和类,分别表示属性一旦被分配内存空间就必须初始化并且以后不可变,方法一旦定义必须有实现代码并且子类里不可被覆盖,类一旦定义不能被定义为抽象类或是接口,因为不可被继承。被final修饰而没有被static修饰的类的属性变量只能在两种情况下初始化(被定义的时候+在构造函数里初始化); 同时被finalstatic修饰的类的属性变量只能在两种情况下初始化(被定义的时候+类的静态块里初始化)

被修饰为staticfinal的时候,他属于类的资源,那么就是类在被加载进内存的时候(也就是应用程序启动的时候)就要已经为此属性分配了内存,所 以此时属性已经存在,它又被final修饰,所以必须在属性定义了以后就给其初始化值.而构造函数是在当类被实例化的时候才会执行,所以用构造函数,这时 候这个属性没有被初始化.程序就会报错.static块是类被加载的时候执行,且只执行这一次

5. 实现用户登录(MyEclipseservlet, struts2, springMVC随便用哪一个

6. *组成的菱形打印程序实现

7. HashMap, HashTable的区别,List, Map, Set的区别?

8. doGet()doPost()的区别?

servlet开发中,以doGet()doPost()分别处理getpost方法。 
另外还有一个doService(), 它是一个调度方法,当一个请求发生时,首先执行doService(),不管是get还是post。在HttpServlet这个基类中实现了一个角度, 首先判断是请求时get还是post,如果是get就调用doGet(), 如果是post就调用doPost()。你也可以直接过载doService()方法,这样你可以不管是get还是post。都会执行这个方法。 
HttpServlet 类包含 init()destroy()service() 等方法。其中 init() 和 destroy() 方法是继承的。 

参考:http://qiaoxuan9206.iteye.com/blog/556606 

9. Jsp中几种动作?(没有import

jsp:include :在页面被请求的时候引入一个文件。 
   jsp:useBean :寻找或者实例化一个 JavaBean 。 
   jsp:setProperty :设置 JavaBean 的属性。 
   jsp:getProperty :输出某个 JavaBean 的属性。 
   jsp:forward :把请求转到一个新的页面。 
   jsp:plugin :根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记

10. 子类继承 阅读程序,static, 初始化的顺序?

static是在类加载就进行执行,分配内存空间,在实例化(构造函数执行)之前!

11. final修改的属性,是引用不能改动还是指向的内容不能改进?

当含有final属性的类被加载进内存并且被实例化的时候,就会为这个final属性分配内存,同时必须对该属性进行初始化,之后不可变。也就是说如果是基本类型的,那么它的值不能再改变;如果是对象,则引用不可变,而对象本身还是可以改变的 

12. 数学课程(学过fotran? 随机微分呢? 数值分析?概率统计熟悉吗?)掌握最好的哪一个?蒙特卡洛实验?

13. 语言熟悉顺序javassh , axis (web service),  php, mysql(能自行解决一般的问题)

14. 六级什么时候过的

15. 实现后端架构的思路(开启 某个端口的多个进程)

16. 如何理解web service?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值