面試集錦(三)

1、java

題目:打印出全部的水仙花數 ,所謂 水仙花數 是指一個三位數,其各位數字立方和等於該數自己。例如:153是一個 水仙花數 ,由於153=1的三次方+5的三次方+3的三次方。
public class lianxi03 {
public static void main(String[] args) {
int b1, b2, b3;
for(int m=101; m<1000; m++) {
b3 = m / 100;
b2 = m % 100 / 10;
b1 = m %    10;
if((b3*b3*b3 + b2*b2*b2 + b1*b1*b1) == m) {
System.out.println(m+」是一個水仙花數」); }
}
}
}git

2、web

題目:利用條件運算符的嵌套來完成此題:學習成績> =90分的同窗用A表示,60-89分之間的用B表示,60分如下的用C表示。
import java.util.*;
public class lianxi05 {
public static void main(String[] args) {
int x;
char grade;
Scanner s = new Scanner(System.in);
System.out.print( 「請輸入一個成績: 「);
x = s.nextInt();
grade = x >= 90 ? ‘A’
: x >= 60 ? ‘B’
:’C';
System.out.println(「等級爲:」+grade);數據庫

}
}數組

3、 服務器

題目:輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。
import java.util.*;
public class lianxi07 {
public static void main(String[] args) {
int digital = 0;
int character = 0;
int other = 0;
int blank = 0;
char[] ch = null;
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
ch = s.toCharArray();
for(int i=0; i<ch.length; i++) {
if(ch >= ’0′ && ch <= ’9′) {
digital ++;
} else if((ch >= ‘a’ && ch <= ‘z’) || ch > ‘A’ && ch <= ‘Z’) {
character ++;
} else if(ch == ‘ ‘) {
blank ++;
} else {
other ++;
}
}
System.out.println(「數字個數: 」 + digital);
System.out.println(「英文字母個數: 」 + character);
System.out.println(「空格個數: 」 + blank);
System.out.println(「其餘字符個數:」 + other );學習

}spa

}代理

4、 orm

題目:一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在     10次落地時,共通過多少米?第10次反彈多高?
public class lianxi10 {
public static void main(String[] args) {
double h = 100,s = 100;
for(int i=1; i<10; i++) {
s = s + h;
h = h / 2;
}
System.out.println(「通過路程:」 + s);
System.out.println(「反彈高度:」 + h / 2);
}
}

5、

題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。
import java.util.*;
public class lianxi15 {
public static void main(String[] args) {
input fnc = new input();
int x=0, y=0, z=0;
System.out.print(「輸入第一個數字:」);
x = fnc.input();
System.out.print(「輸入第二個數字:」);
y = fnc.input();
System.out.print(「輸入第三個數字:」);
z = fnc.input();
if(x > y) {
int t = x;
x = y;
y = t;
}
if(x > z) {
int t = x;
x = z;
z = t;
}
if(y > z) {
int t = y;
y = z;
z = t;
}
System.out.println( 「三個數字由小到大排列爲: 「+x + 」 」 + y + 」 」 + z);
}
}
class input{
public int input() {
int value = 0;
Scanner s = new Scanner(System.in);
value = s.nextInt();
return value;
}
}

6、

   

題目:輸出9*9口訣。
public class lianxi16 {
public static void main(String[] args) {
for(int i=1; i<10; i++) {
for(int j=1; j<=i; j++) {
System.out.print(j + 「*」 + i + 「=」 + j*i + 「    」 );
if(j*i<10){System.out.print(」 「);}
}
System.out.println();
}
}
}

7、

題目:猴子吃桃問題:猴子第一天摘下若干個桃子,立即吃了一半,還不癮,又多吃了一個     次日早上又將剩下的桃子吃掉一半,又多吃了一個。之後天天早上都吃了前一天剩下     的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。
public class lianxi17 {
public static void main(String[] args) {
int x = 1;
for(int i=2; i<=10; i++) {
x = (x+1)*2;
}
System.out.println(「猴子第一天摘了 」 + x + 」 個桃子」);
}
}

8、

題目:打印出以下圖案(菱形)
*
***
*****
*******
*****
***
*
public class lianxi19 {
public static void main(String[] args) {
int H = 7, W = 7;//高和寬必須是相等的奇數
for(int i=0; i<(H+1) / 2; i++) {
for(int j=0; j<W/2-i; j++) {
System.out.print(」 「);

}
for(int k=1; k<(i+1)*2; k++) {
System.out.print(‘*’);
}
System.out.println();
}
for(int i=1; i<=H/2; i++) {
for(int j=1; j<=i; j++) {
System.out.print(」 「);
}
for(int k=1; k<=W-2*i; k++) {
System.out.print(‘*’);
}
System.out.println();
}
}
}

9、

題目:求1+2!+3!+…+20!的和
public class lianxi21 {
public static void main(String[] args) {
long sum = 0;
long fac = 1;
for(int i=1; i<=20; i++) {
fac = fac * i;
sum += fac;
}
System.out.println(sum);
}

}

10、

題目:對10個數進行排序
import java.util.*;
public class lianxi28 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int[] a = new int[10];
System.out.println(「請輸入10個整數:」);
for(int i=0; i<10; i++) {
a[i] = s.nextInt();
}
for(int i=0; i<10; i++) {
for(int j=i+1; j<10; j++) {
if(a[i] > a[j]) {
int t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
for(int i=0; i<10; i++) {
System.out.print(a[i] + 」 「);
}
}
}

 

11、

題目:將一個數組逆序輸出。
import java.util.*;
public class lianxi31 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int a[] = new int[20];
System.out.println(「請輸入多個正整數(輸入-1表示結束):」);
int i=0,j;
do{
a[i]=s.nextInt();
i++;
}while (a[i-1]!=-1);
System.out.println(「你輸入的數組爲:」);
for( j=0; j<i-1; j++) {
System.out.print(a[j]+」   「);
}
System.out.println(「\n數組逆序輸出爲:」);
for( j=i-2; j>=0; j=j-1) {
System.out.print(a[j]+」   「);
}
}
}

12、

題目:兩個字符串鏈接程序
import java.util.*;
public class lianxi46 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print(「請輸入一個字符串:」);
String str1 = s.nextLine();
System.out.print(「請再輸入一個字符串:」);
String str2 = s.nextLine();
String str = str1+str2;
System.out.println(「鏈接後的字符串是:」+str);
}
}

十3、

題目:計算字符串中子串出現的次數
import java.util.*;
public class lianxi49 {
public static void main(String args[]){
Scanner s = new Scanner(System.in);
System.out.print(「請輸入字符串:」);
String str1 = s.nextLine();
System.out.print(「請輸入子串:」);
String str2 = s.nextLine();
int count=0;
if(str1.equals(「」)||str2.equals(「」))
{
System.out.println(「你沒有輸入字符串或子串,沒法比較!」);
System.exit(0);
}
else
{
for(int i=0;i<=str1.length()-str2.length();i++)
{
if(str2.equals(str1.substring(i, str2.length()+i)))
//這種比法有問題,會把」aaa」當作有2」aa」子串。
count++;
}
System.out.println(「子串在字符串中出現: 「+count+」 」);
}
}
}

十4、

寫一個singleton類。
單例模式 一個類只能有一個實例對象
a 餓漢式
b 懶漢式

package entity;
public class Test {
public static void main(String[] args) {
// Student s= new Student();
Student s1 = Student.getStudent();
Student s2 = Student.getStudent();
System.out.println(s1==s2);
}
}
//餓漢式 類加載時就被建立對象
//class Student{
// private static Student s = new Student();
// private Student(){}
// public static Student getStudent(){
// return s;
// }
//}
//懶漢式 鎖類對象
class Student{
private static Student s;
private Student(){}
public synchronized static Student getStudent(){
if(s==null){
s = new Student();
}
return s;
}
}

十5、

數據庫鏈接池的工做機制
J2EE 服務器啓動時會創建必定數量的池鏈接,並一直維持很多於此數目的池鏈接。客戶端程序須要鏈接時,池驅動程序會返回一個未使用的池鏈接並將其表 記爲忙。若是當前沒有空閒鏈接,池驅動程序就新建必定數量的鏈接,新建鏈接的數量有配置參數決定。當使用的池鏈接調用完成後,池驅動程序將此鏈接表
記爲空閒,其餘調用就可使用這個鏈接。實現方式,返回的 Connection是原始Connection的代理,代理Connectionclose方法不是真正關鏈接,而是把它
代理的 Connection 對象還回到鏈接池中。

十6、

說出servlet的生命週期
servlet是單例的,servlet是當第一次發出請求時實例化一個servlet。
servlet 有良好的生存期的定義,包括加載和實例化、初始化、處理請求以及服務結束。
這個生存期由 javax.servlet.Servlet 接口的 init,service 和 destroy 方法表達。Servlet 被服務器實例化後,容器運行其 init 方法,請求到達時運行其 service方法,service 方法自動派遣運行與請求對應的 doXXX 方法(doGet,doPost)等,當服務器決定將實例銷燬的時候調用其 destroy 方法。web 容器加載 servlet,生命週期開始。經過調用 servlet 的 init()方法進行 servlet的初始化。經過調用 service()方法實現,根據請求的不一樣調用不一樣的 do***()方法。結束服務,web 容器調用 servlet 的 destroy()方法。

十7、

  java中的異常

 

 

十8、

String類有哪些經常使用的方法?

    charAt()

length()

trim()

toLowerCase()

toUpperCase()

indexOf()

lastIndexOf()

endsWith()

startsWith()

substring(int start, int end)

substring(int start)

toCharArray() 

十9、

++和後++的區別?

    i++, 後++, 先將 i 的值做爲整個表達的值, 而後將i 增長 1。

     ++i, 先++, 先將 i 增長1, 而後將 i 的值做爲整個表達的值。

二10、

  Java的3個版本?

J2SE(Java2 Standard Edition) 標準版

J2EE(Java 2 Platform,Enterprise Edition) 企業版

J2ME(Java 2 Micro Edition) 微小版

相關文章
相關標籤/搜索