漢王JAVA筆試題javascript
1,jsp中動態include與靜態include的區別?html
(1)動態包含老是會檢查文件中的變化,適合用於包含動態頁面,而且能夠帶參數。java
(2)靜態包含不會檢查所含文件的變化,適用於包含靜態頁面。面試
2.short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?ajax
s1+1之後轉換爲了int型,賦給short型報錯,須要強制轉換類型。正則表達式
沒錯,s1+=1,會自動轉換成short型。算法
3.數組有沒有length()這個方法?String有沒有length()這個方法?sql
數組沒有,有length屬性,String有length()方法。編程
4.List,Map,set三個接口,存取元素,各有什麼特色?json
List:能夠重複,有序
Set:不能重複,無序
Map:鍵值對的形式。
5.有錯誤嗎?
public class Something { void doSomething(){ private String s=" "; int l=s.length(); } }
有,不能定義爲私有的,正確的應該是
public class Something { void doSomething(){ String s=""; int l=s.length(); } }
6.下列哪幾行會報錯?
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List pList=new ArrayList();
pList.add("A");//第五行
pList.add("B");//第六行
for(int i=0;i<pList.size();i++){//第七行
String str=pList.get(i);//第八行
System.out.println(str);
}
}
}
第八行報錯,返回的是一個object類型不能賦給string類型。
7.請倒序遍歷arraylist
import java.util.*;
public class Test3 {
public static void main(String[] args) {
ArrayList list=new ArrayList();
for (int i = 0; i < 10; i++) {
list.add("list"+i);
}
System.out.println(list);
//倒序遍歷1
/*for (int i = list.size()-1; i >=0; i--) {
System.out.println(list.get(i));
}
*/
//倒序遍歷2
Collections.reverse(list);
System.out.println(list);
}
}
8.js中同步和異步的區別,ajax請求時同步和異步如何設置?
(1)同步就是代碼按順序執行。
異步就是代碼不按順序執行,跳過執行。每個任務有一個或多個回調函數(callback),前一個任務結束後,不是執行後一個任務,而是執行回調函數,後一個任務則是不等前一個任務結束就執行,因此程序的執行順序與任務的排列順序是不一致的、異步的。
參考資料:
異步編程的方式:回調函數、時間監聽、發佈/訂閱、Promises對象
http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html
(2)async參數設置爲true就是異步,設置爲false就是同步。
9.列舉你使用過的js操做字符串的函數
concat
將兩個或多個字符的文本組合起來,返回一個新的字符串。
indexOf
返回字符串中一個子串第一處出現的索引(從左到右搜索)。若是沒有匹配項,返回 -1 。
charAt
返回指定位置的字符。
lastIndexOf
返回字符串中一個子串最後一處出現的索引(從右到左搜索),若是沒有匹配項,返回 -1 。
match
檢查一個字符串匹配一個正則表達式內容,若是麼有匹配返回 null。
substring
返回字符串的一個子串,傳入參數是起始位置和結束位置。
replace
用來查找匹配一個正則表達式的字符串,而後使用新字符串代替匹配的字符串。
參考資料:
http://www.cnblogs.com/qfb620/archive/2011/07/28/2119799.html
10.position的屬性值有哪些?
|
11.有幾種方式能夠解決js中的跨域請求問題?
這裏說的js跨域是指經過js在不一樣的域之間進行數據傳輸或通訊,好比用ajax向一個不一樣的域請求數據,或者經過js獲取頁面中不一樣域的框架中(iframe)的數據。只要協議、域名、端口有任何一個不一樣,都被看成是不一樣的域。
1、經過jsonp跨域
2、經過修改document.domain來跨子域
3、使用window.name來進行跨域
4、使用HTML5中新引進的window.postMessage方法來跨域傳送數據
參考資料:
http://www.cnblogs.com/2050/p/3191744.html#top
12.有一張借書記錄表borrow,各字段以下
cno 借書卡號
bno 書號
rdate 還書日期
找出借書超過5本的借書卡,輸出借書卡號及所借圖書冊數
select cno "借書卡號",count(bno) "所借圖書冊數" from borrow group by cno having count(bno)>5;
13下面是選自「orders」表的數據:
orderID employeeID orderDate
10248 5 1996-07-04
10249 6 1996-07-05
10250 4 1996-07-08
選自employee表數據:
employeeID Name BirthDate
1 Davolio 1968-12-08
2 Fulier 1952-02-19
3 Leverling 1963-08-30
查找註冊超過10個訂單的員工。
select * from employee
where employeeID in(select employeeID
from orders
group by employeeID
having count(orderID)>5);
14,請寫出「單例」模式的實現
class Single{ private Single(){} private static Single s=new Single(0; public Single getSingle(){ return s; }}
筆試過了之後,就愉快地接到了電話到公司面試。
but,還要再作一份題,汗。。。。
漢王一面筆試題
1.Java中int類型的取值範圍:-2的32次方到2的32次方-1
2.請定義一個值爲5的整數常量:final int x=5;
3.請定義一個list類型的對象,向其添加任意兩個字符串,並打印List類型對象所容納的元素個數。
List list=new ArrayList();
list.add("a");
list.add("b");
System.out.println(list.size());
4.請用while語句重寫如下代碼。list爲接口,不能new對象。
int sum=0; for(int i=5;i<9;i++){ sum+=i; }
改寫後的代碼
int n=5; int s=0; while(n<9){ s+=n; n++; }
5.請寫出如下代碼的輸出。
int i=0; int[] array={1,2,3,4,5,6,7}; int sum=0; for (i= 0; i < array.length; i++) { sum=sum+array[i]; i++; } System.out.println("sum"+sum);//1+3+5+7=16 System.out.println("最後的"+i);//8
6.請寫出如下代碼的輸出
package com.test; public class Test4 { public static void main(String[] args) { int x=0; String s="hello"; int[] arrayX={1,2}; int[] arrayY={8,9}; doSomethingToParameters(x,s,arrayX,arrayY,arrayY);//1hi System.out.println(x+s);//0hello System.out.println(arrayX[0]+arrayX[1]);//3 System.out.println(arrayY[0]+""+arrayY[1]);//910 } public static void doSomethingToParameters(int x,String s,int[] arrayX, int[] arrayY,int[] anotherArray){ x++; s="hi"; int[] arrayNew={3,4}; arrayX=arrayNew; arrayY[0]++; anotherArray[1]++; System.out.println(x+s); } }
7.請寫出如下代碼的輸出
try { if(true) throw new Exception(); System.out.println("1"); } catch (Exception e) { System.out.println("2"); throw new Exception(); }finally{ System.out.println("3"); } System.out.println("4");
2
3
Exception in thread "main" java.lang.Exception
at com.test.Test5.main(Test5.java:12)
8.根據如下代碼
class A{ public static void methodStatic(){} public void methodPublic(){} protected void methodProtected(){} private void methodPrivate(){} } class B extends A{ public void doSomeThing(){ //add a line of code here } }
將下列哪些代碼加入到B.doSomeThing()方法中會致使錯誤:
A.methodStatic(); new A().methodStatic(); A.methodPublic();//不是靜態的不能直接調用 new A().methodPublic(); A.methodProtected();//不是靜態的不能直接調用 new A().methodProtected(); A.methodPrivate();//私有的只能在本類調用 new A().methodPrivate();//私有的只能在本類調用
9.一個四位數除以365獲得的商和餘數相加,最大多是多少?
先把餘數設置爲364,再計算商的值。
364+x*365<10000;
x<26.4
26+364=390
接下來是面試官問的問題,通常都會根據簡歷提問。
(1)登陸的過程當中值是怎樣傳遞的,驗證碼是怎樣產生的。
(2)forward和sendRedirect的區別
(3)sessionID是怎麼回事?
Session對於每個客戶端(或者說瀏覽器實例)是「人手一份」,用戶首次與Web服務器創建鏈接的時候,服務器會給用戶分發一個SessionID做爲標識。SessionID是一個由24個字符組成的隨機字符串。用戶每次提交頁面,瀏覽器都會把這個SessionID包含在HTTP頭中提交給Web服務器,這樣Web服務器就能區分當前請求頁面的是哪個客戶端。 |
(4)手寫二分查找算法
public void find2(int[] arr,int n){ int start=0; int end=arr.length-1; int sign=-1; while(start<end){ middle=(start+end)/2; if(arr[middle]>n){ end=middle-1; }else if(arr[middle]<n){ start=middle+1; }else{ sign=middle; } } syso(sign); } |
(5)排序算法有哪些?它們的時間複雜度是多少?通常都選哪一種排序?
選擇、冒泡、插入,由於是兩重循環,時間複雜度差很少都是o(n^2)。
漢王在武漢的研發中心是新開的,辦公室都沒幾我的,你去了就是元老級別的人物了,加油。