java常见笔试_Java 常见笔试题(2)
Java
筆試題
(測試題目答題時間60分鐘,請獨立完成)
一.
選擇題
單選題(10)
1.
給出以下代碼,請問該程序的運行結果是什么?()
class Example
{
public static void main(String
args[]){
String s1="ab";
String s2="abcd";
String s3="cd";
String s4=s1+s3;
s1=s4;
System.out.println ("s1"+((s1==s2)?"==":"!=")+"s2");
}
}
A.
s1==s2
B.
s1!=s2
C.
s1
D.
s1=”abcd”
2.
以下哪些方法可以啟動一個線程?請選擇一個正確答案:()
A.
start()
B.
run()
C.
init()
D.
main()
3.
以下關于Serializable的描述正確的是()
A.
Serializable是java語言中的一個關鍵字
B.
Serializable是一個可以被實現的接口
C.
Serializable是一個可以被繼承的類
D.
以上均不對
4.
線程Z在訪問對象A時加上了對象互斥鎖,線程X在訪問對象A時通過wait方法進入阻塞態,下面哪個條件可以使線程X重新進入可運行態()
A.
線程X被中止
B.
線程X的wait()方法超時
C.
線程Z釋放鎖并調用notifyAll()方法
D.
線程Z調用Thread.sleep(100)
5.
(1)
class Value{String
i;}
public class IfElse
{
public static void main(String
args[]){
Value v1=new Value();
Value v2=new Value();
v1.i=v2.i="abc";
System.out.println (v1.equals(v2));
}
}
(2)
public static void main(String
args[]){
String v1=new String ();
String v2=new String();
v1=v2="abc";
System.out.println (v1.equals(v2));
}
(3)
public static void main(String
args[]){
String s="Welcome";
String m="Welcame";
System.out.println (s.equals(m));
}
A.
false,true,false
B.
false, false true,
C.
true,false true,
D.
true,false,
false
6.
下列說法正確的有()
A.
class中的構造函數不可省略
B.
構造函數必須和class同名,但方法不能和class同名
C.
構造函數在一個對象被new時執行
D.
一個class只能定義一個構造函數
7.
執行如下代碼
a=0;c=0;
do{
--c;
a=a-1;
}while(a>0);
System.out.println
(c);
的結果是
A.
0
B.
1
C.
-1
D.
死循環
8.
java.util.Hashtable實現了哪個接口?
A.
java.util.Map
B.
java.util.List
C.
java.util.Hashable
D.
java.util.Collection
9.
閱讀下面代碼,回答問題
1.
class A implements
Runnable{
2.
int i;
3.
public void run(){
4.
try{
5.
thread.sleep(5000);
6.
i=10;
7.
}catch(InterruptedException e){}
8.
}
9.
}
10.
11.
public class Test{
12.
public static void main(String args[]){
13.
try{
14.
A a=new A();
15.
Thread t=new Thread(a);
16.
t.start();
17.
18.
int j=a.i;
19.
20.
}catch(Exception e){}
21.
}
22.
}
下面哪個語句放在第17行,可以保證19行的j=10?
A.
t.wait();
B.
t.join();
C.
t.yield()
D.
t.notify();
10.
閱讀下面代碼,回答問題
class Test
{
public static void main(String
args[])
{
List list=new ArrayList();
test2(list);
System.out.println (list.size());
test3(list);
System.out.println (list.size());
}
public static void test2(List
list){
list=null;
}
public static void test3(List
list){
list.add("");
}
}
A.
0,1
B.
0,0
C.
1,1
D.
拋出異常
多選題(10)
1.
已知如下類定義:
class Base{
public Base(){}
public Base(int m){}
protected void fun(int n){}
}
public class Child extends
Base{
//成員方法
}
如下哪句可以正確地加入子類中()
A.
private void fun(int
n){}
B.
void fun(int n){}
C.
protected void fun(int n){}
D.
public void fun(int n){}
2.
以下關于線程四種狀態,描述正確的有()
A.
新狀態(New Thread):線程已經被創建尚未執行(start()尚未被調用)
B.
可執行狀態(Runnable):線程可以執行,雖然不一定正在執行。CPU時間隨時
可能被分配給該線程,從而使得它執行。
C.
死亡狀態(Dead):在正常情況下run()返回使得線程死亡。調用stop()或destroy()亦有同樣效果,但是不被推薦,前者會產生異常,后者是強制終止,不會釋放鎖。
D.
阻塞狀態(Not Runnable):線程不被分配CPU時間,無法執行
3.
以下關于繼承哪些敘述是正確的()
A.
在java中只允許單繼承
B.
在java中一個類只能實現一個接口
C.
在java中的一個類不能同時繼承一個類和實現一個接口
D.
java的單一繼承使代碼更可靠
4.
線程下列哪些類繼承自Collection接口()
A.
List
B.
Set
C.
Map
D.
Collection
5.
下列說法正確的是()
A.
java.lang.Cloneable是類
B.
java.lang.Runnable是接口
C.
Double類在java.lang包中
D.
Double a=10是正確的java語句
6.
下列哪兩個接口可以保證集合類中的元素是沒有重復的()
A.
java.util.Map
B.
java.util.Set
C.
java.util.List
D.
java.util.StoredSet
E.
java.util.StoredMap
F.
java.util.Collection
7.
下列哪兩個接口使用鍵-值存儲()
A.
java.util.Map
B.
java.util.Set
C.
java.util.List
D.
java.util.StoredSet
E.
java.util.StoredMap
F.
java.util.Collection
8.
閱讀下面代碼,回答問題
public class
SyncTest
{
public static void main(String args[])
{
final StringBuffer s1=new StringBuffer();
final StringBuffer s2=new StringBuffer();
new Thread(){
public void run(){
synchronized(s1){
s2.append("A");
synchronized(s2){
s2.append("B");
System.out.println (s1);
System.out.println (s2);
}
}
}
}.start();
new Thread(){
public void run(){
synchronized(s2){
s2.append("C");
synchronized(s1){
s2.append("D");
System.out.println (s1);
System.out.println (s2);
}
}
}
}.start();
}
}
哪兩個是描述正確的?()
A.
打印結果是”ABBCAD”
B.
打印結果是”CDDACB”
C.
打印結果是”ADCBADBC”
D.
The output is a non-deterministic point because of
a possible deadlock condition.
E.
The output is dependent on the threading model of
the system the program is running on.
9.
關于HashMap與HashTable的說法,正確的有()
A.
HashTable是線程安全的,也就是說是同步的
B.
HashMap是線程不安全的,不是同步的
C.
HashMap可空,HashTable不可空
D.
HashMap不可空,HashTable不可空
10.
下列說法錯誤的有()
A.
數組是一種對象
B.
數組屬于一種原生類
C.
int number=[]={31,23,33,43,35,63};
D.
數組的大小可以任意改變
二.
編程題
給定任意字符串(可有中文),長度為任意,要求找出其出現次數最多的字符并計算其次數。請寫出編程思路和程序代碼。
(以下代碼買有考慮字符個數相同的情況,參考代碼如下)
import
java.util.Scanner;
import
java.util.ArrayList;
class Test
{
String
str="";//接收字符串輸入
ArrayList al=new
ArrayList();//存儲字符及其個數信息
public void input()
{
//輸入
System.out.println ("請輸入一個字符串(可以包含漢字):");
Scanner sc=new Scanner(System.in);
str=sc.next();
while(str.length()!=0)
{
String sub=str.charAt(0)+"";
int n=0;
//統計每個字符個數
for (int i = 0; i< str.length() ; i++)
{
String sub1=str.charAt(i)+"";
if(sub1.equals(sub))
{
++n;
}
}
al.add(sub+":"+n);
//將已統計字符清空
str=str.replaceAll(sub,"");
}
}
public void output()
{
//輸出
for (int i = 0; i
{
System.out.println (al.get(i));
}
}
public void getMax()
{
//比較
//定義一個與鏈表相同大小的數組用來存儲每個字符的個數
int num[]=new int[al.size()];
for (int i = 0; i
{
String em=al.get(i).toString();
String
emsub=em.substring(em.indexOf(":")+1);
//取出每個字符的個數存于num數組中
num[i]=Integer.parseInt(emsub);
}
int maxindex=0;
//比較num數組中的最大值,沒有考慮重復情況
for (int i = 1; i
{
if(num[maxindex]
maxindex=i;
}
System.out.println ("出現最多的是:"+al.get(maxindex)+"次!");
}
public static void main(String
args[])
{
Test test=new Test();
test.input();
test.output();
test.getMax();
}
}
總結
以上是生活随笔為你收集整理的java常见笔试_Java 常见笔试题(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java加载并运行虚拟机_《深入理解Ja
- 下一篇: 蓝桥杯哈夫曼树java_Java实现蓝桥