总结2

来源:互联网 发布:珍珠丁子裤淘宝买家秀 编辑:程序博客网 时间:2024/04/29 11:49

面试笔试题总结2


1.jsp9大内置对象以及其方法?

request

response

session

out

exception

page

application

pageContext

config

2.字符、字节流;关系?IO?

我们可以简单的记这样一个结论:按照ANSI编码标准,标点符号、数字、大小写字母都占一个字节,汉字占2个字节。

按照UNICODE标准所有字符都占2个字节。


3.基本数据类型的取值范围?

8位二进制,最高位是符号位,所以0开头的是正数,1开头是负数

so,byte  1---->-2^7~2^7

 short 2

int 4

long 8

float 4

double 8

char 2

boolean 1

4.写一个singleton?


5.用sql读取第5页的前50条信息?


6.SSH、springMVC框架原理?流程?


7.软件开发的生命周期有哪些?


8.string、stringbuffer、stringbuilder有些什么区别?

string对象保存的字符数组是final修饰的,所以string对象是不可变的。而stringbuffer,stringbuilder是一般的字符数组保存的字符串,所以是可变的。

注意:

首先在栈中有个"s"变量指向堆中的"wo"对象...栈中"s1"变量指向堆中的"de"对象当执行到s = s + s1;系统重新在堆中new一个更大的数组出来,然后将"wo"和"de"都复制进去,然后栈中的"s"指向这个新new出来的数组...所谓的不可变是指:它没有在原数组“wo”上进行修改,而是新建了个更大数组进行扩展,也就是说,这时候堆里还是有“wo”这个对象数组存在的,只不过这个时候"s"变量不在指向"wo"这个数组了,而是指向了新new出来的数组,这就是和StringBuffered的区别,后者是在原数组上进行修改,改变了原数组的值,StringBuffered不是通过新new一个数组去复制,而是在原数组基础上进行扩展...再让变量指向原数组....
 String中的对象是不可变的,也就可以理解为常量,显然线程安全
StringBuffer对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的
StringBuilder并没有对方法进行加同步锁,所以是非线程安全的
StringBuilder与StringBuffer有公共父类AbstractStringBuilder(抽象类)。
StringBuilder、StringBuffer的方法都会调用AbstractStringBuilder中的公共方法,如super.append(...)。只是StringBuffer会在方法上加synchronized关键字,进行同步。

  最后,如果程序不是多线程的,那么使用StringBuilder效率高于StringBuffer。

9.一个对象到另外一个对象的克隆方法?


1.实体类实现cloneable() 接口

2.重写clone的方法

3.X x = null;x = (X)super.clone()

4.x.address = address.clone();   深度克隆,应用类型的克隆



10.数组赋值到List里面?collection原生方法.




11.匿名内部类?




12."asdoiu阿萨德鞍山地区123254" 获得其中文输出?




13.date,callender,sdf.....?“2014-2-12”减去10天怎么操作?




14.ssh,springMVC的前后台交互?参数什么的?




15.requestMapping("")?类似的?




16.同步与异步?


经常看到介绍 ArrayList 和HashMap是异步,Vector和HashTable是同步,这里同步是线程安全的,异步不是线程安全的,举例说明: 

当创建一个Vector对象时候, 

Vector ve=new Vector(); 
ve.add("1"); 

当在多线程程序中,第一个线程调用修改对象ve的时候,就为其上了锁,其他线程只有等待。 

当创建一个ArrayList对象时候, 

ArrayList list=new ArrayList(); 
list.add("1"); 

当在多线程程序中,第一个线程调用修改对象list的时候,没有为其上锁,其他线程访问时就会报错。 

eg:list.remove("1"),然后再由其他线程访问list对象的1时就会报错。 



17.ajax?其中的false,true参数的代表意义?




18.BS & CS 的区别,联系?




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

抽象类与接口的其中一个区别是:抽象类中可以定义一些子类的公共方法,子类只需要增加新的功能,不需要重复写已经存在的方法;而接口中只是对方法的申明和常量的定义。

接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承
20.throws,throw,try,catch,finally?
throws抛出多个异常,这些个异常都可以发生
throw抛出一个明确可能发生的异常
finally 结构使代码总会执行,而不管有无异常发生。使用 finally 可以维护对象的内部状态,并可以清理非内存资源
21.super关键字
JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象。怎么去引用里面的父类对象呢?使用super来引用,this指的是当前对象的引用,super是当前对象里面的父对象的引用。

0 0
原创粉丝点击