有关java考试

题型一览

在这里插入图片描述

在这里插入图片描述

具体题目

看代码的题(来自兰老师)

1、阅读程序,分析代码和运行结果。

class Base {
    public void method(){
     	System.out.print ("Base method");
    }
 }
 class Child extends Base{ 
    public void methodB(){
    	System.out.print ("Child methodB");
    }
 }
 class Sample {
    public static void main(String[] args) {
        Base base= new Child();
    	base.methodB();        
   }
 }

2.给出下列程序,运行结果为

public class Example extends Thread{
     public void run(){
System.out.print("run1");
        try{
             Thread.sleep(100);
         }catch (InterruptedException e){
             e.printStackTrace();
         }
         System.out.print("run2");
     }
     public static void main(String[] args){
             Example example=new Example();
             example.run();
             System.out.print("main");
      }
}

3.阅读如下Java代码,在控制台输入"-1", 执行结果是( )。

public class Demo {
          public static void main(String[] args) {
                Scanner input = new Scanner(System.in);
                System.out.print("请输入数字:");
                try {
                      int num = input.nextInt();
                      if (num < 1 || num > 4) {
                            throw new Exception("必须在1-4之间!");
                      }
                } catch (InputMismatchException e) {
                      System.out.println("InputMismatchException");
                } catch (Exception e) {
                      System.out.println(e.getMessage());
               }finally{
System.out.println(finally);
                     }
         }
}

4、给出下列程序,运行结果为

public class Demo{
          public static void main(String args[]){
                int count=0;
                int num=0;
                for(int i=0;i<=100;i++,count++) {
                      num=num+i;
                    count = num;
                }
               System.out.println("num ="+num);
System.out.println("count="+count);
          }
}

5、写出运行结果:

class ParentClass { 
    int a = 1;
    static {   System.out.println("父类静态语句块"); }
    public ParentClass() { 
       System.out.println("这是父类的构造方法。");  }
}
class ChildClass extends ParentClass { 
    int a;
    static {   System.out.println("子类静态语句块"); }
    public ChildClass() { 
       System.out.println("这是子类的构造方法。");  }
}
public class ConstructorTest { 
    public static void main(String[] args) {
       ChildClass cc = new ChildClass();
        System.out.println(cc.a);
    }
}

分析:
构建子类对象时,会把父类里的成员变量和方法也加载进内存。所以会调用父类的静态代码块和构造器。
先访问静态代码块,父类优先
再访问构造器,子类构造器中默认有super(),故输出
先看子类父类中有无静态代码块,如果有优先执行静态代码块。
静态代码块>代码块>构造器

写代码的题(来自管老师)

1.抓鸭子

在这里插入图片描述

class Test10086{
    public static void main(String[] args) {
        System.out.println(digui(0));
        for(int i=1;i<8;i++){
            System.out.println("村子"+(i)+"-->卖了"+(digui(i-1) -digui(i))+"只鸭子");
        }
    }
    public static int digui(int n){
        if(n==7){
            return 2;
        }
        return (digui(n+1)+1)*2;
    }
}

2.文件交换

在这里插入图片描述

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;

class Test10086{
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String name1 = input.next(),name2 = input.next(),switcher = "D:/Test10086.txt";
        File f = new File(switcher);
        if(!f.exists()){
            try{
                f.createNewFile();
            }catch(IOException e){
                e.printStackTrace();
            }
        }

        removeFile(name1,switcher);
        removeFile(name2,name1);
        removeFile(switcher,name2);

        f.delete();
    }

    public static void removeFile(String name1,String name2){
        FileInputStream fis = null;
        FileOutputStream fos = null;
        try{
            fis = new FileInputStream(name1);
            fos = new FileOutputStream(name2);
            int length = 0;
            byte[] buf = new byte[1024];
            while((length = fis.read(buf)) != -1){
                fos.write(buf,0,length);
            }
        }catch (IOException e){
            e.printStackTrace();
        }finally{
            try{
                fis.close();
                fos.close();
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    }
}

3.内存模型

在这里插入图片描述
答案为:
在这里插入图片描述

4.火车票

书P390,火车售票,看书

5.文件追加

在这里插入图片描述

按照我的写法的话,这个和文件交换差不多。
就是把FileOutputStream(fileName);改为FileOutputStream(fileName,true);
其他不变

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

class Test10086 {
    public static void main(String[] args) {
        new Test10086().appendFile("D:/a.txt","D:/b.txt");
    }
    public void appendFile(String fileName1, String fileName2) {
        FileInputStream fis = null;
        FileOutputStream fos = null;
        try{
            fis = new FileInputStream(fileName1);
            fos = new FileOutputStream(fileName2,true);

            int length = 0;
            byte[] buf = new byte[1024];
            while((length = fis.read(buf))!=-1){
                fos.write(buf,0,length);
            }
        }catch(IOException e){
            e.printStackTrace();
        }finally {
            try{
                fos.close();
                fis.close();
            }catch (IOException e){
                e.printStackTrace();
            }
        }
    }
}

6.类和对象题

在这里插入图片描述

class Test10086 {
    public static void main(String[] args) {
        System.out.println(new Circle(2).area());
        System.out.println(new Rectangle(2,4).area());
    }
}
abstract class Shape{
    double x;
    double y;
    public abstract double area();
}
class Circle extends Shape{
    public Circle(double x){
        this.x = x;
    }
    public double area() {
        return Math.PI*x*x;
    }
}
class Rectangle extends Shape{
    public Rectangle(double x,double y){
        this.x = x;
        this.y = y;
    }
    public double area() {
        return x*y;
    }
}
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值