文档介绍:Java程序员笔试题
说明:该份题目要求在1小时内答完
应聘人姓名:
一、 Java基础
比较Java 。?为什么?
答
String类是final类故不可以继承
String类代表不可变的字符序列(字符串常量) 而StringBuffer类代表可变的字符序列
而如果用StringBuffer类的话则直接加在S1的后面所以用的时间和空间都比较少
String的经常用的方法有提取字符串char charAt(int index)返回指定索引处的char值;
比较字符串、搜索字符串切割字符串等
StringBuffer常用的方法有 append和insert方法可重载这些方法,以接受任意类型的数据
String对象传递的时候是值传递,StringBuffer是引用传递.
String是一种强不变类型,它的值一旦被赋予之后,:concat(String str)和replace(char oldChar, char newChar)等等,所返回的值都是新创建的一个String类型,而不是在原内存地址上去更改,因此比如这样的一个赋值:
String s="Hello Baidu";
s=new String("Hello Baidu");
这样在内存中其实是开辟了两个内存空间来存放Hello Baidu,前面那个对象依然留在内存当中,而:
s=("!");
加上这样一句,s的值变为了Hello Baidu!,在内存中实际上是新创建了一个String对象装Hello Baidu!,而原有的Hello Baidu依然存在
StringBuffer就不同了,它是种可变类型,它的值被赋予之后,在运行期同样可以通过它的方法,如append(String str) 操作内存上的值,而不仅仅是它的引用而已,也就是说同样的对s的值进行修改
StringBuffer s="Hello Baidu";
("!");
这样的操作其实只创建了一个StringBuffer的对象,,显然StringBuffer对内存的消耗要小的多.
Jsp ()()区别?
从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,.
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
forward:高.
redirect:低.
forward可以屏蔽掉url,因此比redirect更security
forward传一个Object,redirect只能传String
说明Java中接口与抽象类的区别。
接口只能有公有非静态方法的定义,只能有公有最终静态变量。抽象类除了不能实例化(没有构造器),有抽象方法(如同接口的方法),其他跟普通类一样,也因此用于继承,而接口用于实现。获得实现接口或继承抽象类而实现其中的抽象方法的子类实例后的使用就没什么区别啦。
尽管抽象类能定义抽象和非抽象的方法,而接口只能有抽象方法。接口与抽象类的另一个不同之处在于接口中定义的方法和变量的声明方式的灵活性很小,规格非常严格:
所有接口方法隐含必须都是公共的和抽象的;换句话说,在方法声明中不必实际地输入public 或abstract修饰符,方法总是公共的和抽象的;
接口中定义的所有变量必须是公共的、静态的和最终的--换句话说,接口只能声明常量,而不能声明实例变量;
接口方法一定不能是静态的;
因为接口方法是抽象的,所以不能将其标识为final、strictfp或native;
接口可以扩展除了其他接口之外的任何内容;
接口不能实现另一个接口或类;
必须使用关键字interface声明接口;接口类型能够被多态使用。
读下面一段程序,写出运行结果