- 華為Java上機考試題 推薦度:
- 相關(guān)推薦
華為JAVA考試試題
在平平淡淡的日常中,只要有考核要求,就會(huì )有試題,試題是用于考試的題目,要求按照標準回答。什么樣的試題才是好試題呢?下面是小編精心整理的華為JAVA考試試題,歡迎閱讀,希望大家能夠喜歡。
華為JAVA考試試題 1
1.程序實(shí)現目標: 輸入一個(gè)字符串,將其各個(gè)字符對應的ASCII值加5后,輸出結果。
程序要求:該字符串只包含小寫(xiě)字母,若其值加5后的字符值大于z,將其轉換成從a開(kāi)始的字符。
package com.xcbeyond;
/**
* @author xcbeyond
* 2015-5-7下午10:37:43
* 1.程序實(shí)現目標: 輸入一個(gè)字符串,將其各個(gè)字符對應的ASCII值加5后,輸出結果。
* 程序要求:該字符串只包含小寫(xiě)字母,若其值加5后的字符值大于z,將其轉換成從a開(kāi)始的字符。
*/
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.程序實(shí)現目標:求一個(gè)整型數組中元素的平均值,并統計其中大于和小于此平均值的元素的個(gè)數。
程序要求:輸入:整型數組中的元素個(gè)數及各個(gè)元素。
輸出:整型數組中元素的平均值,大于和小于此平均值的元素的個(gè)數。
package com.xcbeyond;
import java.util.Arrays;
/**
*
* @author xcbeyond
* 2015-5-7下午11:06:29
*2.程序實(shí)現目標:求一個(gè)整型數組中元素的平均值,并統計其中大于和小于此平均值的元素的個(gè)數。
*程序要求:
* 輸入:整型數組中的元素個(gè)數及各個(gè)元素。
* 輸出:整型數組中元素的平均值,大于和小于此平均值的元素的個(gè)數。
*/
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è)數分別為:"+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è)存儲整數的數組,要求輸出數組里面的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è)存儲整數的數組,要求輸出數組里面的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("數組"+Arrays.toString(array)+"里面最大的2個(gè)數為:");
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、回文數字判斷。
題目描述:
有這樣一類(lèi)數字,他們順著(zhù)看和倒著(zhù)看是相同的數,例如:121,656,2332等,這樣的數字就稱(chēng)為:回文數字。編寫(xiě)一個(gè)函數,判斷某數字是否是回文數字。
要求實(shí)現方法:
public String isPalindrome(String strIn);
【輸入】strIn: 整數,以字符串表示;
【返回】true: 是回文數字;
false: 不是回文數字;
【注意】只需要完成該函數功能算法,中間不需要有任何IO的輸入輸出
package com.xcbeyond;
import java.util.Scanner;
/**
* @author xcbeyond
* 2015-5-10下午03:46:56
*4、回文數字判斷。
*題目描述:
* 有這樣一類(lèi)數字,他們順著(zhù)看和倒著(zhù)看是相同的數,例如:121,656,2332等,這樣的數字就稱(chēng)為:
* 回文數字。編寫(xiě)一個(gè)函數,判斷某數字是否是回文數字。
*/
public class IsPalindrome {
public static void main(String[] args) {
System.out.print("請輸入一個(gè)回文數字:");
Scanner console = new Scanner(System.in);
String numStr = console.nextLine();
if(isPalindrome(numStr)) {
System.out.println(numStr+"是回文數字!");
}else{
System.out.println(numStr+"不是回文數字!");
}
}
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、要求:隨機打印50個(gè)隨機(4-10長(cháng)度)的字符串,要求字符串包含的范圍是所有的英文字母包含大小寫(xiě)和數字,按照編碼順序排序,每行打印4個(gè),要求首字符對齊
package com.xcbeyond;
import java.util.HashSet;
import java.util.Set;
/**
*
* @author xcbeyond
* 2015-5-10下午04:05:42
*5、要求:隨機打印50個(gè)隨機(4-10長(cháng)度)的字符串,要求字符串包含的范圍是
* 所有的英文字母包含大小寫(xiě)和數字,按照編碼順序排序,每行打印4個(gè),要求首字符對齊
*/
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:隨機字符串的長(cháng)度
*/
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è)字符串,僅限小寫(xiě)字母,統計并輸出每個(gè)字符在字符串中出現的次數,并輸出。提示(可以用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è)字符串,僅限小寫(xiě)字母,統計并輸出每個(gè)字符在字符串中出現的次數,并輸出。
* 提示(可以用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("輸入的字符不合法,不是小寫(xiě)字母");
}
}
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í)現方法public String addTwoBigNumber(String s1,string s2)
大數相加,注意處理異常
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、比較二維數組列最小值,組成一個(gè)新數組返回。(實(shí)現核心算法,不需要使用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、比較二維數組列最小值,組成一個(gè)新數組返回。(實(shí)現核心算法,不需要使用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
功能描述:鍵盤(pán)輸入一句話(huà)
輸出一句話(huà)中最常的單詞,如果最長(cháng)的出現多次,返回第一個(gè)。
這句話(huà)只包含數字字母和標點(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
* 功能描述:鍵盤(pán)輸入一句話(huà)
* 輸出一句話(huà)中最常的單詞,如果最長(cháng)的出現多次,返回第一個(gè)。
* 這句話(huà)只包含數字字母和標點(diǎn)。
*/
public class GetLongString {
public static void main(String[] args) {
System.out.println("請輸入一句話(huà):");
Scanner console = new Scanner(System.in);
String str = console.nextLine();
System.out.println("最長(cháng)的單詞為:"+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
運行時(shí)間限制: 無(wú)限制
內存限制: 無(wú)限制
輸入: 0xff ff ff ff以?xún)鹊恼麛?/p>
輸出: 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.提取不重復的整數
描述: 輸入一個(gè)int型32位整數,按照從右向左的閱讀順序,返回一個(gè)不含重復數字的新的整數。
運行時(shí)間限制: 10 Sec
內存限制: 無(wú)限制
輸入: 整數,如9876673
注意:
1、整數最后的0,請忽略,例如:輸入1750,輸出:571
2、負數,保留-在前面,例如:輸入-175,輸出:-571
輸出: 整數,如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的區別?
Collection是集合的根接口,其下有set及l(fā)ist
Collections是集合的算法。
2、Set里的元素是不能重復的,那么用什么方法來(lái)區分重復與否呢? 是用==還是equals()? 它們有何區別?用contains來(lái)區分是否有重復的對象。還是都不用?
在比較時(shí)先調用hashCode方法,如果不相同,證明不相等。
如果相同,再調用equals方法,如果equals方法相同,證明相等,不相同,證明不相等。
==:主要用在基本數據類(lèi)型及引用
equals:主要是對象或對象引用的比較。
集合中是否包含某一個(gè)元素用contains來(lái)判斷。
3、List,Set,Map是否繼承自Collection接口?
List,set繼承于Collection
Map沒(méi)有繼承于Collection,其相對是獨立的。
屬于Collection類(lèi)型的對象,可以通過(guò)構造函數將一個(gè)集合構造成另外一個(gè)集合。
4、面向對象的特征有哪些方面?
1.抽象:
找共性,將共有的屬性、方法放到父類(lèi)中
2.繼承:
子類(lèi)繼承于父類(lèi),具有父類(lèi)的所有屬性與方法,可以重用,也可以覆蓋。
3.封裝:
一個(gè)類(lèi)包括多個(gè)屬性及方法。
4. 多態(tài)性:
5、String是最基本的數據類(lèi)型嗎?
基本數據類(lèi)型包括byte、int、char、long、float、double、boolean和short。
java.lang.String類(lèi)是final類(lèi)型的,因此不可以繼承這個(gè)類(lèi)、不能修改這個(gè)類(lèi)。為了提高效率節省空間,我們應該用StringBuffer類(lèi)
6、int 和 Integer 有什么區別?
int 是基本數據類(lèi)型,不是對象,占一個(gè)內存空間,沒(méi)有方法。與其同類(lèi)的有long,char,doble
Integer是封裝類(lèi),具有方法及屬性。與其同類(lèi)的有Long,Double.Float
7、運行時(shí)異常與一般異常有何異同?
運行時(shí)異常:JVM拋出的異常,代碼中不用處理。
一般異常:用戶(hù)拋出的異常,如果用throws 聲明了,調用這個(gè)方法的代碼必須對其處理。
8、&和&&的區別?
&:與: 左邊若為false右邊還執行。
&&:短路與,左邊若為false右邊不執行。
9、final,finally,finalize的區別?
final 用于聲明屬性,方法和類(lèi),分別表示屬性不可變,方法不可覆蓋,類(lèi)不可繼承。
finally是異常處理語(yǔ)句結構的一部分,表示總是執行。
finalize是Object類(lèi)的一個(gè)方法,在垃圾收集器執行的時(shí)候會(huì )調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。
10、heap和stack有什么區別?
棧是一種線(xiàn)形集合,其添加和刪除元素的操作應在同一段完成。棧按照后進(jìn)先出的方式進(jìn)行處理。堆是棧的一個(gè)組成元素
11、Static Nested Class 和 Inner Class的不同?
Static Nested Class是被聲明為靜態(tài)(static)的內部類(lèi),它可以不依賴(lài)于外部類(lèi)實(shí)例被實(shí)例化。而通常的內部類(lèi)需要在外部類(lèi)實(shí)例化后才能實(shí)例化。
12、GC是什么? 為什么要有GC?
GC是垃圾收集的意思(Gabage Collection),內存處理是編程人員容易出現問(wèn)題的地方,忘記或者錯誤的內存回收會(huì )導致程序或系統的不穩定甚至崩潰,Java提供的GC功能可以自動(dòng)監測對象是否超過(guò)作用域從而達到自動(dòng)回收內存的目的,Java語(yǔ)言沒(méi)有提供釋放已分配內存的顯示操作方法。
13、short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1;有什么錯?
short s1 = 1; s1 = s1 + 1; (s1+1運算結果是int型,需要強制轉換類(lèi)型)
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方法返回與參數最接近的長(cháng)整數,參數加1/2后求其floor.
15、Java有沒(méi)有g(shù)oto?
java中的保留字,現在沒(méi)有在java中使用。
16、給出一個(gè)你最常見(jiàn)到的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、數組有沒(méi)有length()這個(gè)方法? String有沒(méi)有length()這個(gè)方法?
數組沒(méi)有length()這個(gè)方法,有length這個(gè)屬性
String有length()這個(gè)方法.
18、構造器Constructor是否可被override?
構造器Constructor不能被繼承,因此不能重寫(xiě)Overriding,但可以被重載Overloading。
19、是否可以繼承String類(lèi)?
String類(lèi)是final類(lèi)故不可以繼承。
20、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一個(gè)整數表達式。因此傳遞給 switch 和 case 語(yǔ)句的.參數應該是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
21、try {}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally {}里的code會(huì )不會(huì )被執行,什么時(shí)候被執行,在return前還是后?
會(huì )執行,在return前執行。
22、兩個(gè)對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話(huà)對不對?
不對,有相同的 hash code
這是java語(yǔ)言的定義:
1) 對象相等則hashCode一定相等;
2) hashCode相等對象未必相等
23、四種會(huì )話(huà)跟蹤技術(shù)?
Cookie
Session
Hidden
url 重寫(xiě)
24、寫(xiě)一個(gè)Singleton出來(lái)。
Singleton模式主要作用是保證在Java應用程序中,一個(gè)類(lèi)只有一個(gè)實(shí)例存在。
一般Singleton模式通常有幾種種形式:
第一種形式: 定義一個(gè)類(lèi),它的構造函數為private的,它有一個(gè)static的private的該類(lèi)變量,在類(lèi)初始化時(shí)實(shí)例話(huà),通過(guò)一個(gè)public的getInstance方法獲取對它的引用,繼而調用其中的方法。
public class Singleton {
private Singleton(){}
//在自己內部定義自己一個(gè)實(shí)例,是不是很奇怪?
//注意這是private 只供內部調用
private static Singleton instance = new Singleton();
//這里提供了一個(gè)供外部訪(fǎng)問(wèn)本class的靜態(tài)方法,可以直接訪(fǎng)問(wèn)
public static Singleton getInstance() {
return instance;
}
}
第二種形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//這個(gè)方法比上面有所改進(jìn),不用每次都進(jìn)行生成對象,只是第一次
//使用時(shí)生成實(shí)例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
其他形式:
定義一個(gè)類(lèi),它的構造函數為private的,所有方法為static的。
一般認為第一種形式要更加安全些
25、Java中的異常處理機制的簡(jiǎn)單原理和應用。
原理: 有錯直接轉到異常處理部分或向上拋出。
應用:JAVA的異常就是錯誤,有兩種,一種是運行時(shí),編碼可以不用捕捉。一種是一般異常,如果throws聲明了,必須進(jìn)行處理。
26、描述一下JVM加載class文件的原理機制?
JVM中類(lèi)的裝載是由ClassLoader和它的子類(lèi)來(lái)實(shí)現的,Java ClassLoader 是一個(gè)重要的Java運行時(shí)系統組件。它負責在運行時(shí)查找和裝入類(lèi)文件的類(lèi)。
【華為JAVA考試試題】相關(guān)文章:
華為Java上機考試題03-29
java考試試題及答案10-25
Java考試格林模擬試題03-23
華為認證考試試題及答案03-05
2017年java考試模擬試題03-06
java認證考試試題及答案03-04
2017年JAVA考試試題及答案02-26
2016年Java認證考試題03-08
2017年Java認證考試試題03-04