测试题

来源:互联网 发布:淘宝发布宝贝销售属性 编辑:程序博客网 时间:2024/06/11 07:55


自己的黑马程序员入学基础测试题,码出来希望给大家参考下,有什么不懂的地方欢迎大家指点!


第1题:Collection和Collections有什么关系?List和Set有什么异同点?Map有哪些常用类,各有什么特点?

1)Collection和Collections有什么关系?
 答:Collection是集合体系的根的接口,Collections是操作集合框架体系的工具类,定义的都是静态方法
     两者都是靠Collections提供方法去操作Collection集合框架体系的元素。

 2)List和Set有什么异同点?
 答:相同点:1.都继承Collection接口。2.都市存储对象元素的集合。3.都可以使用迭代器的方向进行集合的遍历。
       不同点:1.set集合是无序的而list集合是有序的。2.list集合可以重复,set集合不可以重复。3.对数据的存储方式不同。

3)Map有哪些常用类,各有什么特点?
 答:  HashTable:底层数据结构是哈希表,不可以存入空值,线程同步。
  HashMap:底层数据结构是哈希表,可以存入空值,线程非同步。
  TreeMap底层的数据结构是二叉树,线程非同步。


第2题:定义一个二维int数组,编写代码获取最小元素。

blic class Test2 {public static void main(String[] args){//第一个二维数组int[][] a = {{9,7,5},{2,4},{3,1},{11,6,8,10}};//初始化minint min = a[0][0];for(int i=0;i<a.length;i++){for(int j=0;j<a[i].length;j++){if(a[i][j]<min){min=a[i][j];}}}System.out.println(min);}

第3题:为什么需要配置path,什么时候需要classpath?

答: 在控制台输入中输入一个指令时先在当前文件目录下查找命令文件,path的环境变量中依次查找命令文件,以最先找到的为准,
  因为配置了path,所以在cmd命令下可以直接输入java和javac等jdk的命令;
  jvm在查找class文件时如果没有设置classpath会在当前路径查找,设置classpth后 仅在classpath路径下查找class文件。


第4题:从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。

public class Test4 {public static void main(String [] args){//键盘录入BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//采用while()循环,循环输入数字转换成中文(采用对应关系遍历数组)while(true){try{String line = null;if((line=br.readLine())!=null){//将字符串拆分为字符到数组char[] number = line.toCharArray();char[] chinese = {'零','一','二','三','四','五','六','七','八','九'};for(int i = 0;i<number.length;i++){//将字符转换成整数int index = Character.getNumericValue(number[i]);System.out.print(chinese[index]);}}}catch(Exception e){e.printStackTrace();}}}

第5题:数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}

public class Test5 {public static void main(String[] args){//定义元素数组int[] arr = {4,2,4,6,1,2,4,7,8};//定义一个数组List number = new ArrayList();//增强for循环for(int num:arr){//判断加入的元素是否相同,不相同则加入number数组if(!number.contains(num)){number.add(num);}}System.out.print(number);}}

第6题:用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?

public class Test6 {public static void main(String[] args){System.out.println(test());}public static int test(){int x = 1;try{System.out.println(x);return x;}finally{x = 2;System.out.println(x);}}}

答:先执行fianlly在执行try中return.在try语句中,在执行return语句时,要返回的结果已经准备好了,就在此时,程序转到
了finally执行了,在转去之前try中先把要返回的结果存放到不同x的局部变量中去,执行完finally之前,在从中取出返回结果,
因此,即使finally中对变量x进行了改变,但是不会影响结果。


第7题:定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。

public class Test7 {//定义包含私有变量和函数的类private int a =4;private void walk(){System.out.println("4轮走");}//内部类class Car{public void run(){System.out.println(a);walk();System.out.println("4轮跑");}}public static void main(String[] args){Car car = new Test7().new Car();car.run();}}

第8题:编程打印所有的3位质数,质数特点:只能被1和其本身整除。

public class Test8 {public static void main(String[] args){run(100,999);}public static void run(int start,int end){//定义一个计算器,打印10个换一行int count = 0;//三位质数从100到999结束for(int i = start;i<=end;i++){boolean flag = false;for(int j = 2;j<Math.sqrt(i);j++){if((i%j)==0){flag = true;break;}}if(!flag){System.out.print(i+" ");count++;if(count==10){System.out.println();//清零count = 0;}}}}}

第九题:写一个正则表达式,可以匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一, 后面5位任意数字,最后5位为任意相同的数字。例如:18601088888、13912366666

public class Test9 {public static void main(String[] args) {String number=getNumber();checkTellPhoneNumber(number);}static void checkTellPhoneNumber(String str){//正在表达式String regex="[1][3458][0-9]{4}(\\d)\\1{4}";boolean flag=str.matches(regex);if(flag){System.out.println("这是一个合法的手机号!");}elseSystem.out.println("这不是一个合法的手机号!!");}static String getNumber(){Scanner in=new Scanner(System.in);String number=in.nextLine();return number;}}



第10题:一位老农带着猫、狗、鱼过河,河边有一条船,每次老农只能带一只动物过河。当老农不和猫狗鱼在一起时, 狗会咬猫,猫会吃鱼,当老农和猫狗鱼在一起时,则不会发生这种问题。编程解决猫狗鱼过河问题。

答:思路:1, 应该先带猫过去    两岸:1.猫 2.狗,鱼
         2,然后带狗过去把猫接回来两岸:1.狗  2.鱼   船上猫
     3,把鱼到过去   两岸:1.狗,鱼  2.猫
     4,最后把猫接过去 

0 0
原创粉丝点击