一、选择题
1. 下面哪段程序能够正确的实现了GBK编码字节流到UTF-8编码字节流的转换?(B)
byte[] src,dst
A dst=String.frombytes(src,”GBK”).getbytes(“UTF-8”)
B dst=new String (src,”GBK”).getbytes(“UTF-8”)
C dst=new String (”GBK”, src,) getbytes()
D dst=String.encode(String.decode(src,”GBK”)), “UTF-8”)
2. Java中的集合类包括ArrayList、LinkedList、HashMap等,下列关于集合类描述错误的是?(C)
A ArrayList和LinkedList均实现了List接口
B ArrayList的访问速度比LinkedList快
C 随机添加和删除元素时,ArrayList的表现更佳
D HashMap实现Map接口,它允许任何类型的键和值对象
3. 下列哪个对访问修饰符作用范围由大到小排列是正确的?(D)
A private>default>protected>public
B public>default>protected>private
C private>protected>default>public
D public>protected>default>private
解析:public:具有最大访问权限。 可以被同一项目下的任何类所调用,一般用于对外的情况。protected:与public不同的是不同包下的类是不能使用的,但是其子孙类除外。default:它是针对本包设计的,它所修饰的在本包下的其他类都访问。private:只为类本身提供。是一种封装的体现。
4. 在Java中,HashMap中是用哪些方法来解决哈希冲突的?(C)
A 开放地址法
B 二次哈希法
C 链地址法
D 建立一个公共溢出区
5. 阅读下列程序,选择哪一个是正确的输出结果?(C)
class HelloA{
public HelloA()
{
System.out.println("I’m A class ");
}
static
{
System.out.println("static A");
}
}
public class HelloB extends HelloA{
public HelloB()
{
System.out.println("I’m B class");
}
static{
System.out.println("static B");
}
public static void main (String[] args){
new HelloB();
}
}
A static A I’m A class static B I’m B class
B I’m A class I’m B class static A static B
C static A static B I’m A class I’m B class
D I’m A class static A I’m B class static B
6. 执行下列代码的输出结果是( 30)
public class Demo{
public static void main(String args[]){
int num = 10;
System.out.println(test(num));
}
public static int test(int b){
try
{
b += 10;
return b;
}
catch(RuntimeException e)
{
}
catch(Exception e2)
{
}
finally
{
b += 10;
return b;
}
}
}
7. 下列代码的输出结果是(B)
boolean b=true?false:true==true?false:true;
System.out.println(b);
A true
B false
C null
D 空字符串
8. 在Java中下面Class的声明哪些是错误的?(ABC)
A public abstract final class Test { abstract void method(); }
B public abstract class Test { abstract final void method(); }
C public abstract class Test { abstract void method() { } }
D public class Test { final void method() { } }
9. 下列关于构造方法的叙述中,错误的是(CD)
A java语言规定构造方法名与类名必须相同
B java语言规定构造方法没有返回值,但不同void声明
C java语言规定构造方法不可以重载
D java语言规定构造方法只能通过new自动调用
10. 下面哪些赋值语句是正确的(ABD)
A long test=012
B float f=-412
C int other =(int)true
D double d=0x12345678
E byte b=128
二、编程题
1.【不要二】二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int W = scanner.nextInt();
int H = scanner.nextInt();
int res = 0;
if(W%4==0||H%4==0)
res = W*H/2;
else
res=W*H/2+1;
System.out.println(res);
}
}
2. 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0
public class Solution {
public int StrToInt(String str) {
char[] ch = str.toCharArray();
if(str.isEmpty())
return 0;
int symbol = 1;
if(ch[0] == '-'){ //处理负号
symbol = -1;
ch[0] = '0';
}else if(ch[0] == '+'){//处理正号
symbol = 1;
ch[0] = '0';
}
int sum = 0;
for(int i = 0;i<ch.length;i++){
if(ch[i]<'0'||ch[i]>'9'){
sum = 0;
break;
}
sum = sum*10+ch[i] - '0';
}
return symbol*sum;
}
}