太理Java期末考试复习

Java试题中的知识点

Java中**print/println的输出原则

System.out.println(1+3+"5");
//输出结果为45

System.out.println("5"+1+2);
//输出结果为512

Java中&&和||判定时的执行

//当使用||进行判定时第一个表达式为true则这直接给出结果,忽略后面的表达式
int i = 10;
int j = 10;
boolean k = ((i++)>4 || (j--)>5);
System.out.println("i=" + i);
System.out.println("j=" + j);
System.out.println("k=" + k);
/*输出结果为:
i=11
j=9
k=true
*/

//当使用&&进行判定时,表达式需要全部执行
//将||修改为&&后测试
int i = 10;
int j = 10;
boolean k = ((i++)>4 || (j--)>5);
System.out.println("i=" + i);
System.out.println("j=" + j);
System.out.println("k=" + k);
/*输出结果为:
i=11
j=9
k=true
*/

选择题中填空类型背过就好

  1. 以下Java组件中 JTextFileld 可以实现文本框
  2. 现有一个一维数组a,若要实现对其的第一个元素到第七个元素进行排序,正确的是( Arrays.sort(a,0,7)
  3. 有关Swing技术,说法不正确的是( JPanel是最常用的顶层容器
  4. print()方法使用(Graphics)类型的参数
  5. Java组件中,( JButton )可以实现一个按钮
  6. Java中,(ActionListener)接口可以处理ActionEvent事件
  7. FileWriter)是文件字符输出流
  8. run() )用于定义线程的执行体
  9. 关键字final使类不能派生出子类。
  10. (throws)语句用于方法声明时抛出异常,这些异常要求调用该方法的程序处理的
  11. 以下关键字(throw )用于显示产生(抛出)一个异常对象,并且要求必须对该异常进行处理,用在方法体中
  12. 当容器改变大小时,放在其中的按钮大小不变,该容器使用的布局方式是(FlowLayout
  13. 在switch(expression)语句中,expression的数据类型不能是(double
  14. 哪个修饰符修饰的变量是所有同一个类生成的对象共享的?( static
  15. 关于super的说法正确的是( 指向当前对象的父类对象 )1111
  16. 使用( BorderLayout )布局管理器是,当Frame的大小被改变时Frame中的按钮的位置可能会改变
  17. 关键字( synchronized )可以对对象加互斥锁;实现线程同步
  18. 类的成员变量 )不能被abstract关键字修饰
  19. JPanel组件的默认布局管理器是( FlowLayout ) JFrame窗体默认的布局管理器是( BorderLayout )
  20. 在Java中,要处理Button类对象的事件,以下各项中,( ActionListener )是可以处理这个事件的接口
  21. this引用不可以作为静态方法的返回值使用

填空题

  1. 配置Java开发环境时,需要设置环境变量path和classpath,设置path的作用是 设置路径,使java命令可以在任意位置被访问 ,设置classpath的作用是 设置类路径

  2. 子类在继承父类时,可能会出现变量隐藏、方法覆盖等现象。变量隐藏是指子类成员变量与父类成员变量同名,方法覆盖是指子类方法与父类方法的________返回值类型__、方法名____、___形参列表_______均相同,只是方法的实现功能不同

  3. 当用户在JTextField组件内回车时,会触发___ActionEvent_________事件。处理该事件的监听器需要实现接口___ActionListenser_________,通过___actionPerformed()_________方法完成事件处理、最后需要在产生该事件的事件源上通过___addActionListenser()_________方法注册监听器

  4. Java语言中,以下三种情况需要使用关键字super来实现对父类的成员和方法的访问: 调用父类构造方法调用父类被覆盖的方法访问父类中被隐藏的成员变量

  5. Java语言常用的布局管理器包括___FlowLayout_____、__BorderLayoutGridLayout______和CardLayout布局管理器,其中JFrame的默认布局管理器是______BorderLayout

  6. Java语言中Scanner扫描器类中,可以实现读取一行字符串的方法是 nextLine()

  7. Java语言中,可以通过继承Thread方法和实现Runnable接口方法来实现多线程技术

  8. Java通常线程的生命周期包括___新建___、就绪运行阻塞死亡等5个状态

  9. 控制线程有运行状态转换为阻塞状态的方法有多种,其中___join___方法用于合并线程,可以实现线程沉睡若干时间的方法是___sleep___,yeild()方法可以___让出线程___

简答题

  1. import java.io.*;

    public class ExamBuffereStream{

    public static void main(String[] args) throws IOException{

    ​ InputStreamReader isr=new InputStreamReader(System. in);

    ​ BufferedReader br= new BufferedReader(isr);

    ​ OutputStream os=new FileOutputStream(". \buffer. bin"); …(1)

    ​ OutputStreamWriter fout = new OutputStreamWriter(os); …(2)

    ​ BufferedWriter bout=new BufferedWriter(fout); …(3)

    ​ String str;

    ​ while(true) {

    ​ str=br.readLine(); …(4)

    ​ if(str.equals(“end”))

    ​ break;

    ​ bout. write(str); …(5)

    ​ bout.newLine(); …(6)

    ​ }

    ​ bout. close();//关闭文件

    ​ InputStream is=new FileInputStream(".\buffer. bin");

    ​ InputStreamReader fin = new InputStreamReader(is);

    ​ BufferedReader bin = new BufferedReader(fin);

    ​ while((str=bin.readLine())!=null) …(7)

    ​ System.out.println(str);//显示

    ​ bin. close();

    }

    }

    [正确答案](javascript:void(0))

    (1)以文件buffer.bin构造InputStreamReader输入流对象os

    (2)使用os构造OutputStream输出流对象bout(处理流)

    (3)使用bout构造BufferWriter输出流对象(处理流)

    (4)从键盘读取一行文本

    (5)将键盘读入的文本写入文件buffer.bin

    (6)bout换行

    (7)从bin文件循环按行读取字符串,直到文件内容结束

  2. 什么是类变量和类方法?简述类变量和实例变量的区别,以及类方法与实例方法的区别?

    类变量是指用static关键字修饰的成员变量;
    
    类方法是指用static关键字修饰的成员方法;
    
    类变量与类方法既可以使用类名直接调用,也可以通过实例对象调用;
    
    实例变量与实例方法只能通过实例对象调用。
    
  3. 类方法与实例方法有什么区别?类方法能调用实例方法吗?

    被static修饰的成员方法称为类方法,没有被static修饰的方法为实例方法。
    
    类方法与类变量都依赖类而非对象,可以不创建对象直接通过类来调用访问,类方法不能调用实例方法
    
  4. 分别说明final关键字可以修饰的成分有哪些?这些成分被该关键字修饰后都分别具有哪些特性?

    final可以修饰类,此类不能派生子类
    
    final可以修饰变量,常量,只能初始赋值;
    
    final可以修饰方法,此方法不能被重写
    
  5. 解释类变量,类方法与实例变量和方法的区别

    类变量,类方法被static修饰,普通变量和方法没有;
    
    类变量,类方法可以被类名和实例对象直接调用,普通变量和方法只能被实例对象调用;
    
    类变量,类方法属于整个类,只有一个空间内存,储存数据,普通变量和方法每个变量都有属于自己的空间内存
    
    类方法内只能使用类变量,普通方法可以使用类变量和普通变量
    
    类方法内不能使用this,普通方法可以使用this
    
  6. 简述线程5种状态及其含义

    新建状态(New):线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。
    
    就绪状态(Runnable):也被称为“可执行状态”。线程对象被创建后,其他线程调用了该对象的start()方法,从而来启动该线程,例如,threa.start()。处于就绪状态下的线程,随时可能被CPU调度执行。
    
    运行状态(Running):线程获取CPU权限进行执行。需要注意的是,线程只能从就绪状态进入到运行状态。
    
    阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态
    
    死亡状态(Dead):线程执行完了或者因异常退出了run()方法,该线程结束生命周期。
    
  7. 简述编写GUI编程中容器与布局的概念及其常用的组件

    容器:是用来组织或容纳其他组件和容器的特殊组件,是用容器类(Container类)创建的对象。
    
    布局:负责管理组件在容器中的排放顺序。
    
    常用的组件:按钮(JButton)、单选按钮(JRadioButton)、复选按钮(JCheckBox)、标签(JLabel)、文本域(JTextField)、列表(JList)、组合框(JComboBox)、菜单(JMenu)等。
    
  8. 简述Java如何实现多态性(包括静态多态与动态多态)

      静态多态性主要通过方法重载实现,它们根据参数表(类型以及个数)区别语义和执行的功能
    
      动态多态性是指定义在一个类层次的不同类中的重写函数,他们具有相同的函数原型,需要根据指针指向的对象所在类来区别语义。其实现需要具备两个条件:(1)子类继承父类,并重写父类方法;(2)父类引用指向子类对象
    
  9. Java提供实现Runnable接口或继承Thread类两种方法实现线程,请简述如何通过继承Thread类来实现多线称

    (1)创建一个类继承(extend)Thread类,定义线程的构造方法;
    
    (2)用需在此线程中执行的代码覆盖Thread类的run()方法;
    
    (3)用关键字new创建所定义的线程类的一个实例化对象;
    
    (4)调用该对象的start()方法启动线程。
    
  10. 简述Java的事件处理机制

    用户点击特定组件时,会触发特定事件,用户必须实现处理该事件的监听器接口,并通过实现监听器接口中的方法完成时事件处理,最后需要调用事件源中的addXxxListener方法来注册监听器。
    
  11. 简述抽象类和接口的定义?抽象类和接口在具体使用过程中与具体类有哪些区别?

    抽象类需要使用关键字abstract修饰,抽象类中可能包含抽象方法,也可能不包含抽象方法;
    
    接口通过inerface修饰,接口中的成员变量默认为public static final(常量),接口中的成员方法都是抽象方法;
    
    抽象类和接口不能直接实例化,必须新建一个具体类来继承抽象类并实现抽象类中所有的抽象方法,或者实现接口并实现接口中的所有抽象方法,然后才能新建对象,进而调用其中的成员函数和成员变量。
    

你可能感兴趣的:(太理Java期末考试复习)