漢王JAVA筆試題

漢王JAVA筆試題javascript

 

1jsp中動態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屬性,Stringlength()方法。編程

 

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

2async參數設置爲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的屬性值有哪些?

absolute

生成絕對定位的元素,相對於 static 定位之外的第一個父元素進行定位。

元素的位置經過 "left", "top", "right" 以及 "bottom" 屬性進行規定。

fixed

生成絕對定位的元素,相對於瀏覽器窗口進行定位。

元素的位置經過 "left", "top", "right" 以及 "bottom" 屬性進行規定。

relative

生成相對定位的元素,相對於其正常位置進行定位。

所以,"left:20" 會向元素的 LEFT 位置添加 20 像素。

static

默認值。沒有定位,元素出如今正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)。

inherit

規定應該從父元素繼承 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.Javaint類型的取值範圍:-232次方到232次方-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)forwardsendRedirect的區別

(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)

 

漢王在武漢的研發中心是新開的,辦公室都沒幾我的,你去了就是元老級別的人物了,加油。

相關文章
相關標籤/搜索