- 華為Java上機(jī)考試題 推薦度:
- 相關(guān)推薦
華為JAVA考試試題
在平平淡淡的日常中,只要有考核要求,就會(huì)有試題,試題是用于考試的題目,要求按照標(biāo)準(zhǔn)回答。什么樣的試題才是好試題呢?下面是小編精心整理的華為JAVA考試試題,歡迎閱讀,希望大家能夠喜歡。
華為JAVA考試試題 1
1.程序?qū)崿F(xiàn)目標(biāo): 輸入一個(gè)字符串,將其各個(gè)字符對(duì)應(yīng)的ASCII值加5后,輸出結(jié)果。
程序要求:該字符串只包含小寫字母,若其值加5后的字符值大于z,將其轉(zhuǎn)換成從a開始的字符。
package com.xcbeyond;
/**
* @author xcbeyond
* 2015-5-7下午10:37:43
* 1.程序?qū)崿F(xiàn)目標(biāo): 輸入一個(gè)字符串,將其各個(gè)字符對(duì)應(yīng)的ASCII值加5后,輸出結(jié)果。
* 程序要求:該字符串只包含小寫字母,若其值加5后的字符值大于z,將其轉(zhuǎn)換成從a開始的字符。
*/
public class StringParseASCII {
public static void main(String[] args) {
System.out.print(stringParseASCII("abx"));
}
public static String stringParseASCII(String str){
StringBuffer result = new StringBuffer();
char tmp;
for(int i = 0;i
tmp = (char)(str.charAt(i)+5);
if(tmp > z) {
result.append(a);
}else {
result.append(tmp);
}
}
return result.toString();
}
}
2.程序?qū)崿F(xiàn)目標(biāo):求一個(gè)整型數(shù)組中元素的平均值,并統(tǒng)計(jì)其中大于和小于此平均值的元素的個(gè)數(shù)。
程序要求:輸入:整型數(shù)組中的元素個(gè)數(shù)及各個(gè)元素。
輸出:整型數(shù)組中元素的平均值,大于和小于此平均值的元素的個(gè)數(shù)。
package com.xcbeyond;
import java.util.Arrays;
/**
*
* @author xcbeyond
* 2015-5-7下午11:06:29
*2.程序?qū)崿F(xiàn)目標(biāo):求一個(gè)整型數(shù)組中元素的平均值,并統(tǒng)計(jì)其中大于和小于此平均值的元素的個(gè)數(shù)。
*程序要求:
* 輸入:整型數(shù)組中的元素個(gè)數(shù)及各個(gè)元素。
* 輸出:整型數(shù)組中元素的平均值,大于和小于此平均值的元素的個(gè)數(shù)。
*/
public class CountAvg {
public static void main(String[] args) {
int[] array = {1,23,4,13,6};
System.out.println(Arrays.toString(array)+"的平均值:"+avg(array)+"\n" +
"大于和小于平均值元素的個(gè)數(shù)分別為:"+Arrays.toString(countAvg(array)));
}
public static int[] countAvg(int[] array) {
int gt = 0; //grater than
int lt = 0; //less than
int[] result = {0,0};
int average = avg(array);
for(int i = 0;i
if(array[i]>average) {
gt++;
}else if(array[i]
lt++;
}
}
result[0] = gt;
result[1] = lt;
return result;
}
/**
* average
* @param array
* @return
*/
public static int avg(int[] array) {
int average = 0;
int sum = 0;
for(int i = 0 ;i
sum += array[i];
}
average = sum/array.length;
return average;
}
}
3、手動(dòng)輸入一個(gè)存儲(chǔ)整數(shù)的數(shù)組,要求輸出數(shù)組里面的2個(gè)最大值。
實(shí)例:
輸入:1,2,5,9,84,3,2
輸出:84,9
package com.xcbeyond;
import java.util.Arrays;
/**
* @author xcbeyond
* 2015-5-7下午11:35:13
*3、手動(dòng)輸入一個(gè)存儲(chǔ)整數(shù)的數(shù)組,要求輸出數(shù)組里面的2個(gè)最大值。
* 實(shí)例:
* 輸入:1,2,5,9,84,3,2
* 輸出:84,9
*/
public class FindMaxTwoNum {
public static void main(String[] args) {
int[] array = {1,2,5,9,84,3,2};
System.out.println("數(shù)組"+Arrays.toString(array)+"里面最大的2個(gè)數(shù)為:");
findMaxTwoNum(array);
//方法二:
//
}
public static void findMaxTwoNum(int[] array) {
int[] result = {0,0};
for(int i = 0 ;i
for(int j = 0;j
if(array[j]
int tmp;
tmp = array[j];
array[j] = array[j+1];
array[j+1] = tmp;
}
}
}
System.out.println(array[0]+"、"+array[1]);
}
}
4、回文數(shù)字判斷。
題目描述:
有這樣一類數(shù)字,他們順著看和倒著看是相同的數(shù),例如:121,656,2332等,這樣的數(shù)字就稱為:回文數(shù)字。編寫一個(gè)函數(shù),判斷某數(shù)字是否是回文數(shù)字。
要求實(shí)現(xiàn)方法:
public String isPalindrome(String strIn);
【輸入】strIn: 整數(shù),以字符串表示;
【返回】true: 是回文數(shù)字;
false: 不是回文數(shù)字;
【注意】只需要完成該函數(shù)功能算法,中間不需要有任何IO的輸入輸出
package com.xcbeyond;
import java.util.Scanner;
/**
* @author xcbeyond
* 2015-5-10下午03:46:56
*4、回文數(shù)字判斷。
*題目描述:
* 有這樣一類數(shù)字,他們順著看和倒著看是相同的數(shù),例如:121,656,2332等,這樣的數(shù)字就稱為:
* 回文數(shù)字。編寫一個(gè)函數(shù),判斷某數(shù)字是否是回文數(shù)字。
*/
public class IsPalindrome {
public static void main(String[] args) {
System.out.print("請(qǐng)輸入一個(gè)回文數(shù)字:");
Scanner console = new Scanner(System.in);
String numStr = console.nextLine();
if(isPalindrome(numStr)) {
System.out.println(numStr+"是回文數(shù)字!");
}else{
System.out.println(numStr+"不是回文數(shù)字!");
}
}
public static boolean isPalindrome(String str){
boolean result = false;
for(int i = 0 ;i
if(str.charAt(i) == str.charAt(str.length()-1-i)) {
result = true;
}
}
return result;
}
}
5、要求:隨機(jī)打印50個(gè)隨機(jī)(4-10長度)的字符串,要求字符串包含的范圍是所有的英文字母包含大小寫和數(shù)字,按照編碼順序排序,每行打印4個(gè),要求首字符對(duì)齊
package com.xcbeyond;
import java.util.HashSet;
import java.util.Set;
/**
*
* @author xcbeyond
* 2015-5-10下午04:05:42
*5、要求:隨機(jī)打印50個(gè)隨機(jī)(4-10長度)的字符串,要求字符串包含的范圍是
* 所有的英文字母包含大小寫和數(shù)字,按照編碼順序排序,每行打印4個(gè),要求首字符對(duì)齊
*/
public class RandomStr {
public static void main(String[] args) {
SetsetStr = new HashSet();
for(int i = 0 ;i<50;i++) {
setStr.add(randomStr(5));
}
int count = 1;
for(String i:setStr){
System.out.print(i+" ");
if(count%4 == 0) {
System.out.println();
}
count++;
}
}
/**
* @param strLen:隨機(jī)字符串的長度
*/
public static String randomStr(int strLen) {
char[] str = new char[strLen];
int i = 0;
while(i
int f = (int)Math.random()*3;
if(f == 0) {
str[i] = (char)(a + Math.random()*26);
}else if(f == 1) {
str[i] = (char)(A + Math.random()*26);
}else {
str[i] = (char)(0 + Math.random()*10);
}
i++;
}
return new String(str);
}
}
6.手動(dòng)輸入一個(gè)字符串,僅限小寫字母,統(tǒng)計(jì)并輸出每個(gè)字符在字符串中出現(xiàn)的次數(shù),并輸出。提示(可以用Map)
實(shí)例:
輸入:aaabbbccc
輸出:a 3
b 3
c 3
package com.xcbeyond;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author xcbeyond
* 2015-5-10下午04:47:45
* 6.手動(dòng)輸入一個(gè)字符串,僅限小寫字母,統(tǒng)計(jì)并輸出每個(gè)字符在字符串中出現(xiàn)的次數(shù),并輸出。
* 提示(可以用Map)
* 實(shí)例:
* 輸入:aaabbbccc
* 輸出: a 3
* b 3
* c 3
*/
public class GetCharCount {
public static void main(String[] args) {
String str = "aaabbbrcc";
String reg = "^[a-z]*$";
if (str.matches(reg)) {
Mapmap = getCharCount(str);
for (Map.Entrye : map.entrySet()) {
System.out.println(e.getKey() + ": " + e.getValue());
}
}else {
System.out.println("輸入的字符不合法,不是小寫字母");
}
}
public static MapgetCharCount(String str) {
Mapmap = new HashMap();
char[] arr = str.toCharArray();
for(int i = 0;i
if(!map.containsKey(arr[i])) {
map.put(arr[i], new Integer(1));
}else {
map.put(arr[i],map.get(arr[i])+1);
}
}
return map;
}
}
7、要求實(shí)現(xiàn)方法public String addTwoBigNumber(String s1,string s2)
大數(shù)相加,注意處理異常
public class Test{
public String addTwoBigNumber(String s1,string s2)
{
return "";
}
public static void main(String[] args)
{
Test test = new Test();
test.addTwoBigNumber("123456789","987654321")
}
}
8、比較二維數(shù)組列最小值,組成一個(gè)新數(shù)組返回。(實(shí)現(xiàn)核心算法,不需要使用IO)
輸入:intArr = {{5,6,1,16},{7,3,9}}
輸出:intArrs ={1,3}
package com.xcbeyond;
import java.util.Arrays;
/**
* @author xcbeyond
* 2015-5-10下午09:09:20
*8、比較二維數(shù)組列最小值,組成一個(gè)新數(shù)組返回。(實(shí)現(xiàn)核心算法,不需要使用IO)
* 輸入:intArr = {{5,6,1,16},{7,3,9}}
* 輸出:intArrs ={1,3}
*/
public class GetColMin {
public static void main(String[] args) {
int[][] arr = {{5,6,1,16},{7,3,9}};
System.out.println(Arrays.toString(getColMin(arr)));
}
public static int[] getColMin(int[][] arr) {
int[] minArr = new int[arr.length];
for(int i = 0;i
int[] tmp = arr[i];
Arrays.sort(tmp);
minArr[i] = tmp[0];
}
return minArr;
}
}
9. 輸入:a aa,cat tiger.123dd
輸出: tiger
功能描述:鍵盤輸入一句話
輸出一句話中最常的單詞,如果最長的出現(xiàn)多次,返回第一個(gè)。
這句話只包含數(shù)字字母和標(biāo)點(diǎn)。
package com.xcbeyond;
import java.util.ArrayList;
import java.util.Scanner;
/**
*
* @author xcbeyond
* 2015-5-10下午09:45:03
*9. 輸入:a aa,cat tiger.123dd
* 輸出: tiger
* 功能描述:鍵盤輸入一句話
* 輸出一句話中最常的單詞,如果最長的出現(xiàn)多次,返回第一個(gè)。
* 這句話只包含數(shù)字字母和標(biāo)點(diǎn)。
*/
public class GetLongString {
public static void main(String[] args) {
System.out.println("請(qǐng)輸入一句話:");
Scanner console = new Scanner(System.in);
String str = console.nextLine();
System.out.println("最長的單詞為:"+getLongString(str));
}
public static String getLongString(String str) {
String[] wordStr = str.split("[ ,.0-9]");
int sum = 0;
ArrayListresult = new ArrayList();
for(int i = 0;i
if(sum
sum = wordStr[i].length();
result.add(wordStr[i]);
}
}
return result.get(result.size()-1);
}
}
10. 功能描述:將字符串中的字母全部替換成字母的下一個(gè)字母,
要是最后一位是z或Z則替換為a或A。
輸入:aBxyZ
輸出:bCyzA
package com.xcbeyond;
/**
*
* @author xcbeyond
* 2015-5-10下午10:11:02
*10. 功能描述:
* 將字符串中的字母全部替換成字母的下一個(gè)字母,要是最后一位是z或Z則替換為a或A。
* 輸入:aBxyZ
* 輸出:bCyzA
*/
public class NextString {
public static void main(String[] args) {
String str = "aBxyZ";
System.out.println(nextString(str));
}
public static String nextString(String str) {
String result = "";
char[] arr = str.toCharArray();
for(int i = 0;i
if(arr[i] == z || arr[i] == Z) {
arr[i] = (char)(arr[i]-25);
}else if(arr[i]<=z&&arr[i]>=a || arr[i]<=z&&arr[i]>=A) { 1+2+3 = 6
運(yùn)行時(shí)間限制: 無限制
內(nèi)存限制: 無限制
輸入: 0xff ff ff ff以內(nèi)的整數(shù)
輸出: NA
樣例輸入: 123
樣例輸出: 6
package com.xcbeyond;
/**
*
* @author xcbeyond
* @date 2015/05/12 15:23:16
*/
public class Demo36 {
public static void main(String[] args) {
int num = 123;
System.out.println(bitSum(num));
}
public static int bitSum(int num) {
int res = 0;
if(num<10) {
res = num;
}else {
res = num%10 + bitSum(num/10);
}
return res;
}
}
37.提取不重復(fù)的整數(shù)
描述: 輸入一個(gè)int型32位整數(shù),按照從右向左的閱讀順序,返回一個(gè)不含重復(fù)數(shù)字的新的整數(shù)。
運(yùn)行時(shí)間限制: 10 Sec
內(nèi)存限制: 無限制
輸入: 整數(shù),如9876673
注意:
1、整數(shù)最后的0,請(qǐng)忽略,例如:輸入1750,輸出:571
2、負(fù)數(shù),保留-在前面,例如:輸入-175,輸出:-571
輸出: 整數(shù),如37689
樣例輸入: 9876673
樣例輸出: 37689
package com.xcbeyond;
/**
*
* @author xcbeyond
* @date 2015/05/12 15:50:34
*/
public class Demo37 {
public static void main(String[] args) {
int num = -12310;
System.out.println(getConvertInt(num));
}
public static int getConvertInt(int num) {
String str = String.valueOf(num);
StringBuffer sb = new StringBuffer();
boolean flg = true;
if(str.charAt(0) == -) {
flg = false;
sb.append(str.charAt(0));
}
if(str.charAt(str.length()-1) != 0) {
sb.append(str.charAt(str.length()-1));
}
for(int i = str.length()-2;i>0;i--) {
sb.append(str.charAt(i));
}
if(flg) {
sb.append(str.charAt(0));
}
return Integer.parseInt(sb.toString());
}
}
華為JAVA考試試題 2
1、Collection 和 Collections的區(qū)別?
Collection是集合的根接口,其下有set及l(fā)ist
Collections是集合的算法。
2、Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢? 是用==還是equals()? 它們有何區(qū)別?用contains來區(qū)分是否有重復(fù)的對(duì)象。還是都不用?
在比較時(shí)先調(diào)用hashCode方法,如果不相同,證明不相等。
如果相同,再調(diào)用equals方法,如果equals方法相同,證明相等,不相同,證明不相等。
==:主要用在基本數(shù)據(jù)類型及引用
equals:主要是對(duì)象或?qū)ο笠玫谋容^。
集合中是否包含某一個(gè)元素用contains來判斷。
3、List,Set,Map是否繼承自Collection接口?
List,set繼承于Collection
Map沒有繼承于Collection,其相對(duì)是獨(dú)立的。
屬于Collection類型的對(duì)象,可以通過構(gòu)造函數(shù)將一個(gè)集合構(gòu)造成另外一個(gè)集合。
4、面向?qū)ο蟮奶卣饔心男┓矫妫?/strong>
1.抽象:
找共性,將共有的屬性、方法放到父類中
2.繼承:
子類繼承于父類,具有父類的所有屬性與方法,可以重用,也可以覆蓋。
3.封裝:
一個(gè)類包括多個(gè)屬性及方法。
4. 多態(tài)性:
5、String是最基本的數(shù)據(jù)類型嗎?
基本數(shù)據(jù)類型包括byte、int、char、long、float、double、boolean和short。
java.lang.String類是final類型的,因此不可以繼承這個(gè)類、不能修改這個(gè)類。為了提高效率節(jié)省空間,我們應(yīng)該用StringBuffer類
6、int 和 Integer 有什么區(qū)別?
int 是基本數(shù)據(jù)類型,不是對(duì)象,占一個(gè)內(nèi)存空間,沒有方法。與其同類的有l(wèi)ong,char,doble
Integer是封裝類,具有方法及屬性。與其同類的有Long,Double.Float
7、運(yùn)行時(shí)異常與一般異常有何異同?
運(yùn)行時(shí)異常:JVM拋出的異常,代碼中不用處理。
一般異常:用戶拋出的異常,如果用throws 聲明了,調(diào)用這個(gè)方法的代碼必須對(duì)其處理。
8、&和&&的區(qū)別?
&:與: 左邊若為false右邊還執(zhí)行。
&&:短路與,左邊若為false右邊不執(zhí)行。
9、final,finally,finalize的區(qū)別?
final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)行。
finalize是Object類的一個(gè)方法,在垃圾收集器執(zhí)行的時(shí)候會(huì)調(diào)用被回收對(duì)象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。
10、heap和stack有什么區(qū)別?
棧是一種線形集合,其添加和刪除元素的操作應(yīng)在同一段完成。棧按照后進(jìn)先出的方式進(jìn)行處理。堆是棧的一個(gè)組成元素
11、Static Nested Class 和 Inner Class的不同?
Static Nested Class是被聲明為靜態(tài)(static)的內(nèi)部類,它可以不依賴于外部類實(shí)例被實(shí)例化。而通常的內(nèi)部類需要在外部類實(shí)例化后才能實(shí)例化。
12、GC是什么? 為什么要有GC?
GC是垃圾收集的意思(Gabage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問題的地方,忘記或者錯(cuò)誤的內(nèi)存回收會(huì)導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的GC功能可以自動(dòng)監(jiān)測(cè)對(duì)象是否超過作用域從而達(dá)到自動(dòng)回收內(nèi)存的目的,Java語言沒有提供釋放已分配內(nèi)存的顯示操作方法。
13、short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)?
short s1 = 1; s1 = s1 + 1; (s1+1運(yùn)算結(jié)果是int型,需要強(qiáng)制轉(zhuǎn)換類型)
short s1 = 1; s1 += 1;(可以正確編譯)
14、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12
Math.round(-11.5)==-11
round方法返回與參數(shù)最接近的長整數(shù),參數(shù)加1/2后求其floor.
15、Java有沒有g(shù)oto?
java中的保留字,現(xiàn)在沒有在java中使用。
16、給出一個(gè)你最常見到的runtime exception ArithmeticException,ArrayStoreException,BufferOverflowException,BufferUnderflowException,CannotRedoException,CannotUndoException,ClassCastException,CMMException,ConcurrentModificationException,DOMException,EmptyStackException,IllegalArgumentException,IllegalMonitorStateException,IllegalPathStateException,IllegalStateException,ImagingOpException,IndexOutOfBoundsException,MissingResourceException,NegativeArraySizeException,NoSuchElementException,NullPointerException,ProfileDataException,ProviderException,RasterFormatException,SecurityException,SystemException,UndeclaredThrowableException,UnmodifiableSetException,UnsupportedOperationException
一般異常:
IOException
FileNotFoundException
SqlException
17、數(shù)組有沒有l(wèi)ength()這個(gè)方法? String有沒有l(wèi)ength()這個(gè)方法?
數(shù)組沒有l(wèi)ength()這個(gè)方法,有l(wèi)ength這個(gè)屬性
String有l(wèi)ength()這個(gè)方法.
18、構(gòu)造器Constructor是否可被override?
構(gòu)造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。
19、是否可以繼承String類?
String類是final類故不可以繼承。
20、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一個(gè)整數(shù)表達(dá)式。因此傳遞給 switch 和 case 語句的.參數(shù)應(yīng)該是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
21、try {}里有一個(gè)return語句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后?
會(huì)執(zhí)行,在return前執(zhí)行。
22、兩個(gè)對(duì)象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對(duì)不對(duì)?
不對(duì),有相同的 hash code
這是java語言的定義:
1) 對(duì)象相等則hashCode一定相等;
2) hashCode相等對(duì)象未必相等
23、四種會(huì)話跟蹤技術(shù)?
Cookie
Session
Hidden
url 重寫
24、寫一個(gè)Singleton出來。
Singleton模式主要作用是保證在Java應(yīng)用程序中,一個(gè)類只有一個(gè)實(shí)例存在。
一般Singleton模式通常有幾種種形式:
第一種形式: 定義一個(gè)類,它的構(gòu)造函數(shù)為private的,它有一個(gè)static的private的該類變量,在類初始化時(shí)實(shí)例話,通過一個(gè)public的getInstance方法獲取對(duì)它的引用,繼而調(diào)用其中的方法。
public class Singleton {
private Singleton(){}
//在自己內(nèi)部定義自己一個(gè)實(shí)例,是不是很奇怪?
//注意這是private 只供內(nèi)部調(diào)用
private static Singleton instance = new Singleton();
//這里提供了一個(gè)供外部訪問本class的靜態(tài)方法,可以直接訪問
public static Singleton getInstance() {
return instance;
}
}
第二種形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//這個(gè)方法比上面有所改進(jìn),不用每次都進(jìn)行生成對(duì)象,只是第一次
//使用時(shí)生成實(shí)例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
其他形式:
定義一個(gè)類,它的構(gòu)造函數(shù)為private的,所有方法為static的。
一般認(rèn)為第一種形式要更加安全些
25、Java中的異常處理機(jī)制的簡單原理和應(yīng)用。
原理: 有錯(cuò)直接轉(zhuǎn)到異常處理部分或向上拋出。
應(yīng)用:JAVA的異常就是錯(cuò)誤,有兩種,一種是運(yùn)行時(shí),編碼可以不用捕捉。一種是一般異常,如果throws聲明了,必須進(jìn)行處理。
26、描述一下JVM加載class文件的原理機(jī)制?
JVM中類的裝載是由ClassLoader和它的子類來實(shí)現(xiàn)的,Java ClassLoader 是一個(gè)重要的Java運(yùn)行時(shí)系統(tǒng)組件。它負(fù)責(zé)在運(yùn)行時(shí)查找和裝入類文件的類。
【華為JAVA考試試題】相關(guān)文章:
華為Java上機(jī)考試題03-29
java考試試題及答案10-25
Java考試格林模擬試題03-23
華為認(rèn)證考試試題及答案03-05
2017年java考試模擬試題03-06
java認(rèn)證考試試題及答案03-04
2017年JAVA考試試題及答案02-26
2016年Java認(rèn)證考試題03-08
2017年Java認(rèn)證考試試題03-04