资源描述
java基础面试题答案
资料仅供参考
1、如下哪些不是java的关键字?
A)const B)NULL C) false D)this E) native
答:B
2、关于垃圾收集的哪些叙述是正确
A)程序开发者必须自己创立一个线程进行内存释放的工作
B)垃圾收集将检查并释放不在使用的内存
C)垃圾收集允许程序开发者明确指定并立即释放该内存
D)垃圾收集能够在期望的时间释放被java对象使用的内存
答:B
3、已知表示式 int m [ ] = {0,1,2,3,4,5,6}; 下面哪个表示式的值与数组下标量总数相等?
A)m.length() B)m.length C)m.length()+1 D)m.length-1
答:D
4、已知如下代码: public class Test { long a[] = new long [10]; public static void main(String arg[] ){ System.out.print(a[6]); } } 请问哪个语句是正确的?
A)Output is null. B)Output is 0 C)When compile, some error will occur.
D)When running, some error will occur.
答:C
5、已知如下代码: public class Test { public static void main(String arg[] ) { int i = 5; do{ System.out.print(i); }while(--i>5); System.out.print(“finished”); } } 执行后的输出是什么?
A)5 B)4 C)6 D)finished
答:AD
6、已知如下代码:
switch (m) {
case 0: System.out.print(“Condition 0”);
case 1: System.out.print(“Condition 1”);
case 2: System.out.print(“Condition 2”);
case 3: System.out.print(“Condition 3”); default: System.out.print(“Other Condition ”); } 当m的值为什么时能输出“Condition 2”
A)0 B)1 C)2 D)3 E) 4 F)None
答:ABC
18、下面的哪些声明是合法的?
A)long 1 = 4990 B)int i = 4L C)float f =1.1 D)double d = 34.4
答:AD
23、给出下面代码:
public class Person{
static int arr[ ] =new int[10];
public static void main(String a [ ]){
System.out.println(arr[ 1 ]); } } 哪个选项是正确的?
A. 编译时将产生错误; B. 编译时正确,运行时将产生错误; C. 输出0; D. 输出空。 答:C
24、关于运算符>>和>>>描述正确的是
A. >>执行移动 B. >>执行翻转 C. >>执行有符号右移,>>>执行无符号右移
D. >>执行无符号右移,>>>执行有符号右移
答:C
26、选出Java语言中的关键词(多选)
A. NULL B. sizeof C. implements D. extends
答:CD
27、现有下述代码,选择出能够打印出”Test2”的数字(多选)
switch(x){
case 1: System.out.println("Test1");
case 2:
case 3: System.out.println("Test2"); break; }
System.out.println("Test3");
A.0 B.1 C.2 D. 3 E. 4
答:CD
28、字符(char)的整型表示范围为
A. 0 . . . 32767 C. -256 . . . 255
B. 0 . . . 65535 D. -32768 . . . 32767
答:B
29、选择Java语言中的基本数据类型(多选)
A. byte B. Integer C. String D. char E. long
答:ADE
30、从下列选项中选择正确的Java表示式(多选)
A. int k=new String(“aa”); B. String str=String(“bb”);
C. char c=74; D. long j=8888;
答:CD
34、关于Java语言,下列描述正确的是(多选)
A. switch 不能够作用在String类型上
B. List, Set, Map都继承自Collection接口
C. Java语言支持goto语句
D. GC是垃圾收集器,程序员不用担心内存管理
答:AD
36、int[][] myArray=new int[][]{new int[]{5,6,2},new int[]{6,9,7,8,3},new int[]{3,2}}; myArray[2][2]的值是()
A. 9 B. 2 C. 6 D. 越界
答:D
37、下列描述中,那些符合Java语言的特征(多选)
A. 支持跨平台(Windows,Linux,Unix等)
B. GC(自动垃圾回收),提高了代码安全性
C. 支持类C的指针运算操作
D. 不支持与其它语言书写的程序进行通讯
答:ABD
46、给出下面代码段(多选) 1、switch (m) 2、{ case 0 :System.out.println(“case 0”);
1. case 1: System.out.println(“case 1”); break;
2. case 2:
3. default : System.out.println(default”);
4. }
下列m 的哪些值将引起 “default ”的输出?
A.0 B. 1 C. 2 D. 3
答:CD
48、main方法的返回类型是:
A.int B.void C.boolean D.static E. public
答:B
50、下列代码哪几行会出错
1) public void modify() {
2) int I, j, k;
3) I=100;
4) while(I>0){
5) j=I*2;
6) System.out.println(“The value of j is “ +j);
7) k=k+1;
8) I--;
9) }
10) }
A. line 4 B. line 6 C. line 7 D. line 8
答:C
53、下面正确的是
A)float f = 3.14; B)byte i = 225; C)long k = 33; D)int p[ ][ ];
答:CD
54、下列创立数组的方法正确的是
A)int two Dim[ ][ ] = new int[4][ ]; B)int two Dim[ ][ ] = new int[ ][4]; C)int two Dim[ ][ ] = new int[4][5]; D)char a[ ] = {‘A’, ‘B’}; E)char c[ ]
= “ABC” ;
答:ACD
66、判断下列语句是否正确,如果有错误,请指出错误所在?
void foo(final int []arg){ if (arg.length > 1) arg[0] = 5; }
答:正确
81、现有1~100共一百个自然数,已随机放入一个有98个元素的数组a[98]。要求写出一个尽量简单的方案,找出没有被放入数组的那2个数,并在屏幕上打印这2个数。注意:程序不用实现自然数随机放入数组的过程。
答:
int[] b = new int[]{....存入98个随机的1~100的整数};
int[] a = new int[100];
for(int t : b) a[t-1]=t;
for(int t=0; t < a.length; t++)
if(a[t]==0)
System.out.println(t+1);
82、写一段程序用冒泡算法对数组int[]array内的元素有小到大重新排列 答: pacakge com.tarena;
class BubbleSort{
public static void main(String[] args) {
int[] arr = {8,4,2,3,5}; arr = sort(arr); for(int a : arr) { System.out.print(a+"\t"); } }
public static int[] sort(int[] array) { int cnt; int n = array.length;
do{ cnt = 0; for( int i=1; i<n; i++ )
{ if( array[i]<array[i-1] )
{ int temp = array[i]; array[i] = array[i-1]; array[i-1] = temp; cnt++; } } n--; }
while( cnt!=0 ); return array; } }
90、现有一个32位的整型变量 value和一个有32个元素的数组a[32] 要求:a.对value随机赋值;b.让数组a[n]的值等于value“位n”的值,0<=n<=31。 举例:如果value的“位0”(Bit0)=0,那么a[0]=0;如果value的“位10”(Bit10)=1,那么a[10]=1。
答:
package com.tarena;
import java.util.Random;
public class TestArray {
final static char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
public static void main(String[] args) {
Random r = new Random(); int value = r.nextInt(); System.out.println(value);
char[] cs = TestArray.test(value, 1); int[] is = new int[32];
for (int i = 0; i < cs.length; i++) { is[i]=((int)cs[i])==0? cs[i]:cs[i]-48; }
for (int i = 0; i < is.length; i++) { System.out.print(is[i]); } }
public static char[] test(int i, int shift) { char[] buf = new char[32]; int charPos = 32; int radix = 1 << shift; int mask = radix - 1; do { buf[--charPos] = digits[i & mask]; i >>>= shift; } while (i != 0); return buf;
} }
91、排序都有哪几种方法?用伪代码实现一个快速排序
答:排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序) 快速排序的伪代码:使用快速排序方法对a[ 0 :n- 1 ]排序从a[ 0 :n- 1 ]中选择一个元素作为middle,该元素为支点;把余下的元素分割为两段left和right,使得left中的元素都小于等于支点,而right中的元素都大于等于支点; 递归地使用快速排序方法对left进行排序;递归地使用快速排序方法对right进行排序;所得结果为left + middle + right。
95、简述java中的垃圾回收
答:GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能能够自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。 Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,能够调用下面的方法:System.gc() 或Runtime.getRuntime().gc() 。
104、Bit和 Byte是什么意思?它们之间有什么关系?
答:bit中文名称是位,是用以描述电脑数据量的最小单位。 byte(字节)是计算机信息技术用于计量存储容量和传输容量的一种计量单 位1byte=8bit
105、用最有效的方法算出2乘已8对于几?
答: 2 << 3。
107、swtich是否能作用在byte上?是否能作用在long上? 是否能作用在char上? 是否能作用在short上?是否能作用在String上?
答:能够用在byte、short、int、char和枚举类型。
108、char型变量中能不能存贮一个中文汉字?为什么?
答:能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,因此放一个中文是没问题的。
118、java中用char型变量中能不能存放一个中文汉字?
答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,因此放一个中文字符是没问题的。
126、在程序中退出两重循环能够用哪些语句?
答:能够使用标签: loop1: for (;;) { for (;;) { break loop1; } }
展开阅读全文