Java基础笔试2

更新时间:2024-06-05 20:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.Java中提供了名为()的包装类来包装原始字符串类型。 A.Integer B.Char C.Double D.String 答案:D

2.java.lang包的()方法比较两个对象是否相等,相等返回true。 A.toString() B.equals() C.compare()

D.以上所有选项都不正确 答案:B

3.使用()方法可以获得Calendar类的实例。 A.get() B.equals() C.getTime() D.getInstance() 答案:D

4.下面的集合中,()不可以存储重复元素。 A.Set B.Collection C.Map D.List 答案:C

5.关于Map和List,下面说法正确的是( )。 A.Map继承List

B.List中可以保存Map或List

C.Map和List只能保存从数据库中取出的数据 D.Map的value可以是List或Map 答案:D

6.给定如下Java代码,编译运行的结果是()。 import java.util.*; public class Test {

public static void main(String[] args) { LinkedList list=new LinkedList(); list.add(“A”); list.add(2,”B”);

String s=(String)list.get(1); System.out.println(s); } }

A.编译时发生错误 B.运行时引发异常 C.正确运行,输出:A D.正确运行,输出:B 答案:B

7.请写出下列语句的输出结果 char[] data={?a?,'b?,'c?,'d?};

System.out.println(String.valueOf(10D)); 10.0 true bcd

8.写出下面代码运行后的输出结果是。 public class Arrtest { public static void main(String kyckling[]){ int i[ ] = new int[5]; System.out.println(i[4]); amethod();

Object obj[ ] = new Object[5]; System.out.println(obj[2]); }

public static void amethod(){ int K[ ] = new int[4]; System.out.println(K[3]); } }

参考答案: null

9.什么是封装?Java语言中的封装类有哪些? 参考答案:

封装是表示把数据项和方法隐藏在对象的内部,把方法的实现内容隐藏起来。Java中的封装类有Double、Integer、Float、Byte、Long、Character、Short和Boolean等类。 10.什么是泛型?使用泛型有什么优点?泛型List和普通List有什么区别? 参考答案:

System.out.println(String.valueOf(3>2));

System.out.println(String.valueOf(data,1,3)); 参考答案:

泛型是对Java语言的数据类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看做是使用参数化类型时指定的类型的一个占位符。

优点:提高Java程序的类型安全;消除强制类型转换;提高代码的重用率。

泛型List可以实例化为只能存储某种特定类型的数据,普通List可以实例化为存储各种类型的数据。通过使用泛型List对象,可以规范集合对象中存储的数据类型,在获取集合元素时不用进行仸何强制类型转换。 11.编写一个程序,实现下列功能:

? 测试两个字符串String str1=”It is”和String str2=”It is”;是否相等 ? 将” a book.”与其中的str1字符串连接 ? 用m替换新字符串中的i 参考代码: public class Ex11 {

public static void main(String[] args) { String str1=”It is”; String str2=”It is”; //比较字符串

System.out.println(“str1==str2的结果:“+(str1==str2));

System.out.println(“str1.equals(str2)的结果:“+str1.equals(str2)); //连接字符串

String str3=str1.concat(“a book”);

System.out.println(“连接后的字符串为:“+str3); //替换字符

String str4=str3.replace(?i?,'m?);

System.out.println(“替换后的字符串为:“+str4); } }

12.编程计算距当前时间10天后的日期和时间,并用“xxxx年xx月xx日”的格式输出新的日期和时间。 参考代码:

import java.util.Calendar; public class Ex12 {

public static void main(String[] args) { Calendar cal=Calendar.getInstance(); cal.add(Calendar.DAY_OF_YEAR,10);

String strDate=cal.get(Calendar.YEAR)+”年“ +(cal.get(Calendar.MONTH)+1)+”月“

+cal.get(Calendar.DATE)+”日“;

System.out.println(“10天后的日期为:“+strDate); } }

13.创建一个类Stack,代表堆栈(其特点为:后进先出),添加方法add(Object obj)、方法get()和delete( ),并编写main方法进行验证。 参考代码:

import java.util.LinkedList; import java.util.List; class Stack{ LinkedList list; public Stack() { list = new LinkedList(); }

public void add(Object obj){ list.addFirst(obj); }

public Object get(){ return list.getFirst(); }

public void delete(){ list.removeFirst(); } }

public class Ex13 {

public static void main(String[] args) { Stack stack=new Stack(); stack.add(“1″); stack.add(“2″); stack.add(“3″);

System.out.println(stack.get()); stack.delete(); System.out.println(stack.get()); } }

14.编写程序,计算仸意两个日期之间间隔的天数。 参考代码:

import java.util.Calendar; public class Ex14 {

public static void main(String[] args) { Calendar c1 = Calendar.getInstance(); c1.set(2010, 7, 1);

Calendar c2 = Calendar.getInstance(); long ca1 = c1.getTimeInMillis(); long ca2 = c2.getTimeInMillis(); // 计算天数

long days = (ca2 - ca1) / (24 * 60 * 60 * 1000); System.out.println(days); } }

15.创建一个HashMap对象,添加一些学生的姓名和成绩:张三:90分,李四,83分。接着从HashMap中获取并他们的姓名和成绩,然后把李四的成绩改为100分,再次输出他们的信息。 参考代码:

import java.util.HashMap; public class Ex15 {

public static void main(String[] args) { HashMap map=new HashMap(); map.put(“张三“,90); map.put(“李四“,83);

System.out.println(“修改前的成绩:“); System.out.println(map); map.put(“李四“,100);

System.out.println(“修改后的成绩:“); System.out.println(map); } }

16.编写一个程序,用parseInt方法将字符串200由十六进制转换为十进制的int型数据,用valueOf方法将字符串123456转换为float型数据。 参考代码: public class Ex16 {

public static void main(String[] args) { String str1=”200″;

System.out.println(Integer.parseInt(str1,16)); String str2=”123456″;

System.out.println(Float.parseFloat(str2)); } }

17.编写程序,将long型数据987654转换为字符串,将十进制数365转换为十六进制数表示的字符串。 参考代码: public class Ex17 {

public static void main(String[] args) { long num=987654L; int i=365;

System.out.println(“Long类型转换为String:“+String.valueOf(num)); HexI=DtoX(i);

System.out.println(HexI); }

//转换函数

public static String DtoX(int d) {

String x=”\ if(d<16){ x=change(d); } else{ int c; int s=0; int n=d; while(n>=16){ s++; n=n/16; }

String [] m=new String[s]; int i=0; do{ c=d/16;

//判断是否大于10,如果大于10,则转换为A-F的格式 m[i++]=change(d); d=c;

}while(c>=16);

String x=change(d);

for(int j=m.length-1;j>=0;j–){ x+=m[j]; } } return x; }

//判断是否为10-15之间的数,如果是则进行转换 public static String change(int d){ String x=”\ switch(d){ case 10: x=”A”; break; case 11: x=”B”; break; case 12: x=”C”; break; case 13: x=”D”; break; case 14: x=”E”; break; case 15: x=”F”; break; default:

x=String.valueOf(d); } return x; } }

18.编写一个程序,接收以克为单位的一包茶叶的单位重量、卖出的包数和每克的价格,计算并显示出销售的总额。其中三个数据一行输入,数据间用“-”分隔。比如:输入“3-100-2.1”,

表示每包的重量为3克,共卖出100包,每克的价格为2.1元。此时的销售总额为630元。 参考代码:

import java.util.Scanner; public class Ex18 {

public static void main(String[] args) { Scanner scan=new Scanner(System.in);

System.out.println(“请依次输入重量、包数、价格,并以-分隔:“); String strIn=scan.nextLine(); Scanner sc=new Scanner(strIn); sc.useDelimiter(“-”); //设置分隔符 int num=sc.nextInt(); int bag=sc.nextInt(); float price=sc.nextFloat(); double total=price*num*bag;

System.out.println(“销售总额为:“+total); } }

19.编写一个泛型方法,能够返回一个int类型数组的最大值和最小值、String类型数组的最大值和最小值(按字典排序)。 参考代码: class Pair{ private T min; private T max;

public Pair() { min = null; max = null; }

public Pair(T min, T max) { this.min = min; this.max = max; } public T getMin() { return min; } public T getMax() { return max; }

public void setMin(T newValue) { min = newValue; } public void setMax(T newValue) { max = newValue; } }

class ArrayAlg {

public static Pair minmax(T[ ] a) { if (a == null || a.length == 0) { return null; }

T min = a[0];T max = a[0]; for (int i = 1; i < a.length; i++) {

if (min.compareTo(a[i]) > 0) {min = a[i];} if (max.compareTo(a[i]) < 0) { max = a[i];} }

return new Pair(min, max); } }

public class Ex19 {

public static void main(String[] args) { //测试整型数组

Integer[] arrI={1,2,3,4,5,6};

Pair p1=ArrayAlg.minmax(arrI);

System.out.println(“整型数组的最小值:“+p1.getMin().intValue()); System.out.println(“整型数组的最大值:“+p1.getMax().intValue()); //测试字符串数组 String[

]

words

={“able”,”word”,”excel”,”course”,”java”,”c#”};

Pair

p2=ArrayAlg.minmax(words);

System.out.println(“字符串数组的最小值:“+p2.getMin()); System.out.println(“字符串数组的最大值:“+p2.getMax()); } }

20.编写一个泛型方法,接受对象数组和集合作为参数,将数组中的对象加入集合中。并编写代码测试该方法。 参考代码: import java.util.*; public class Ex20 {

static void fromArrayToCollection(T[]a, Collection c){ for (T o : a){ c.add(o); } }

public static void main(String[] args) { Integer[] ia = new Integer[100];

Collection cn = new ArrayList(); fromArrayToCollection(ia, cn);// T是Number类型 System.out.println(cn); } }

21.试编写一个List类型的对象只能存储通讯录(存储同学的姓名和联系方式),并输出通讯

录的列表到控制台。 参考代码: import java.util.*; class Student{ private String name; private String phone;

public Student(String name, String phone) { this.name = name; this.phone = phone; }

public String toString() { return name+”:”+phone; } }

public class Ex21 {

public static void main(String[] args) {

Student st1=new Student(“John”,”23214″); Student st2=new Student(“Alice”,”4563″); List list=new ArrayList(); list.add(st1);list.add(st2); for(int i=0;i

22.设计一个程序,基于泛型Map实现10个英文单词的汉语翻译,即通过单词得到它的中文含义。 参考代码: import java.util.*; public class Ex22 {

public static void main(String[] args) { String[] eng={“Apple”,”Orange”,”Green”}; String[] chs={“苹果“,”桔子“,”绿色“};

Map map=new HashMap(); for(int i=0;i

System.out.println(test+”翻译:“+map.get(test)); }

}

1.什么是异常?什么是Java的异常处理机制? 参考答案:

异常是指程序运行过程中产生的错误,它出现在程序运行过程中。

异常处理机制是为程序提供错误处理的能力。根据这个机制,对程序运行时可能遇到的异常情况,预先提供一些处理的方法。在程序执行代码的时候,一旦发生异常,程序会根据预定的处理方法对异常进行处理,处理完成后,程序进行运行。 2.Java中的异常分为哪几类? 参考答案:

Java中的异常分为两种类型:

? 内部错误:又称为致命错误。比如:硬盘损坏、软驱中没有软盘 ? 运行时异常:比如除数为0、数组下标越界 3.所有异常的父类是()。

A.Error B.Throwable C.RuntimeException D.Exception 答案:B

4.下列()操作不会抛出异常。 A.除数为零 B.用负数索引访问数组 C.打开不存在的文件 D.以上都会抛出异常 答案:D

5.能单独和finally语句一起使用的块是()。 A.try B.throws C.throw D.catch 答案:A

6.在多重catch块中同时使用下列类时,()异常类应该最后列出。 A.Exception

B.ArrayIndexOutOfBoundsException C.NumberFormatException D.ArithmeticException 答案:A

7.执行下面的代码会引发()异常。 String str=null;

String strTest=new String(str); A.InvalidArgumentException B.IllegalArgumentException C.NullPointerException D.ArithmeticException

答案:C

8.这段代码的输出结果是()。 try{

System.out.print(“try,“); return;

} catch(Exception e){

System.out.print(“catch,“); } finally { System.out.print(“finally”); } A.try, B.try,catch, C.try,finally

D.try, catch,finally 答案:C

9.这个方法的返回值是()。 public int count() { try{ return 5/0;

} catch(Exception e){ return 2*3; } finally { return 3; } } A.0 B.6 C.3 D.程序错误 答案:C

10.编写一个程序,产生ArrayIndexOutOfBoundsException异常,并捕获该异常,在控制台输出异常信息。 参考代码: public class Ex10 {

public static void main(String[] args) { int[] arr=new int[2]; try {

System.out.println(arr[2]);

} catch (ArrayIndexOutOfBoundsException e) { e.printStackTrace(); }

} }

11.设计一个Java程序,自定义异常类,从键盘输入一个字符串,如果该字符串值为“abc”,则抛出异常信息,如果从键盘输入的是其他字符串,则不抛出异常。 参考代码:

import java.util.Scanner;

class MyException extends Exception{ private String errorMsg; //getter和setter方法

public MyException(String errorMsg){ this.errorMsg=errorMsg; }

@Override

public String toString() { return errorMsg; } }

public class Ex11 {

public static void main(String[] args) { String strIn;

Scanner scan=new Scanner(System.in); strIn=scan.nextLine(); try {

if(strIn.equals(“abc”))

throw new MyException(“输入的字符串不正确!“); } catch (MyException e) { System.out.println(e); } } }

12.设计一个Java程序,从键盘输入两个数,进行减法运算。当输入串中含有非数字时,通过异常处理机制使程序正常运行。 参考代码: import java.util.*; public class Ex12 {

public static void main(String[] args) { int num1,num2;

Scanner in=new Scanner(System.in); try {

num1=in.nextInt();

} catch (InputMismatchException e) { System.out.println(“第一个数格式不对“); num1=0; } try {

num2=in.nextInt();

} catch (InputMismatchException e) { System.out.println(“第二个数格式不对“); num2=0; }

System.out.println(“num1-num2=”+(num1-num2)); } }

13.自定义异常类,在进行减法运算时,当第一个数大于第二个数时,抛出“被减数不能小于减数”,并编写程序进行测试。 参考代码: import java.util.Scanner;

//MyException类的定义(同第11题) public class Ex13 {

public static void main(String[] args) { int num1,num2;

Scanner scan=new Scanner(System.in); num1=scan.nextInt(); num2=scan.nextInt(); try {

if(num1

throw new MyException(“被减数不能小于减数“); } catch (MyException e) { System.out.println(e); } } }

本文来源:https://www.bwwdw.com/article/ehh6.html

Top