北京神州泰岳软件股份有限公司java笔试题

来源:互联网 发布:2016nba西部决赛数据 编辑:程序博客网 时间:2024/04/29 06:58
地点:浦东新区郭守敬路498号浦东软件园7号楼4层【北京神州泰岳软件股份有限公司上海分公司】

1. forward和redirect区别
forward方式:request.getRequestDispatcher("/somePage.jsp").forward(request, response);
redirect方式:response.sendRedirect("/somePage.jsp");
a.从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容
再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.所
以redirect等于客户端向服务器端发出两次request,同时也接受两次response。
2.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
参考文章:http://blog.csdn.net/tenor/article/details/4077079

2.abstract class和interface有什么异同
抽象类,使部分抽象,它是可以带有一些有方法体的方法的
接口,的所有方法都是抽象的
抽象类是模板,接口是规范
相同点:
a.不能实例化;
b.包含未实现的方法声明;
c.派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员);
不同点:
a.接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。
b.接口可以多继承,抽象类不行
c.接口定义方法,不能实现,而抽象类可以实现部分方法。
d.接口中基本数据类型为static 而抽类象不是的
抽象类中可以有成员变量(包含静态成员变量)、属性、常量和静态方法,并且他们可以是非公共的;而接口中不能有成员变量、常量、静态方法,只能有公共的属性。
参考文章:
http://wenku.baidu.com/link?url=GvMSf6IEn9zBOMtAuCgSrgVJWaNcYHiOeYmedLjkDOk-MxMjfVW_gmu8y3joFWmBQsLVMNLubf6eNv8K9E76kVJeAWFUoBqZChYDnBu1huS
http://blog.csdn.net/fenglibing/article/details/2745123

3. 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 
接口可以继承接口;
抽象类可以实现(implements)接口;
抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数;

4. 列数据以逗号分隔
group_concat()可用来行转列
select id,group_concat(name) from aa group by id;
Oracle 10g开始提供wmsys.wm_concat,它可以帮助我们把行的值以逗号隔开
select t.rank, WMSYS.WM_CONCAT(t.Name) TIME From t_menu_item t GROUP BY t.rank;

5. 符号意义
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
alert('0'==0);//true
alert('0'===0);//false
alert(undefined==null);//true
alert(null===0);//false
两个等于会自动类型转换后比较;三个等于必须是同样的类型同样的值进行比较。
Java的位运算符:与(&)、非(~)、或(|)、异或(^)
~ 按位非(NOT)(一元运算) 
& 按位与(AND) 
| 按位或(OR) 
^ 按位异或(XOR) 
>> 右移 
>>> 右移,左边空出的位以0填充 
<< 左移 
&= 按位与赋值 
|= 按位或赋值 
^= 按位异或赋值 
>>= 右移赋值 
>>>= 右移赋值,左边空出的位以0填充 
<<= 左移赋值
> 表示大于,如:if(a>b)...结果是boolean类型
>> 表示带符号右移,如:int i=15; i>>2的结果是3,移出的部分将被抛弃。
转为二进制的形式可能更好理解,0000 1111(15)右移2位的结果是0000 0011(3),0001 1010(18)右移3位的结果是0000 0011(3)。
>>> 无符号右移:
按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。其他结构和>>相似

6. 关于飞机绕地球飞行一圈的加油问题
http://blog.csdn.net/hinyunsin/article/details/6632062

7. 读取文件内容并排序

File file = new File("C:\\Users\\user\\Desktop\\a.txt");try {BufferedReader br = new BufferedReader(new FileReader(file));String value = null;Set set = new TreeSet<String>(new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {if(Integer.valueOf(o1)>Integer.valueOf(o2)){return 1;}else if(Integer.valueOf(o1)<Integer.valueOf(o2)){return -1;}return 0;}});try {while((value=br.readLine())!=null){System.out.println(value);String[] t = value.split(" ");for(String s1:t){set.add(s1);}}System.out.println("排序后结果:");StringBuffer res = new StringBuffer("");Iterator iterator = set.iterator();        while(iterator.hasNext()){            res.append(iterator.next()).append(" ");        }        System.out.print(res);        FileWriter fw = new FileWriter("C:\\Users\\user\\Desktop\\a_res.txt");        fw.write(res.toString());        fw.close();        } catch (IOException e) {e.printStackTrace();}} catch (FileNotFoundException e) {e.printStackTrace();}


8.  js中的escape、unescape功能

escape: 对String对象编码以便它们能在所有计算机上可读,escape方法返回一个包含了charstring内容的字符串值(Unicode格式)
unescape: 解码用escape方法进行了编码的String对象
参考文章:http://yowukesa.iteye.com/blog/573588



0 0
原创粉丝点击