北京神州泰嶽軟件股份有限公司java筆試題

地點:浦東新區郭守敬路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>() {
				@Override
				public 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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章