Java二级试题笔记1

选择题

1.计算机完成一条指令所花费的时间称为一个指令周期。指令周期越短,指令执行越快。

2.顺序程序具有顺序性、封闭性可再现性的特点,使程序设计者能够控制执行的过程(包括执行顺序、执行时间),对程序执行的中间结果和状态可以预先估计,这样就可以方便地进行程序测试和调试。顺序程序不具有并发性。并发性是并发程序的特点

3.对数据进行压缩储存会降低算法的空间复杂性

算法的复杂度与问题的规模有关。

4.

5.

 6.结构化程序设计强调程序的易读性。结构化程序设计的目的:通过设计结构良好的程序,以程序静态的良好的结构保证程序动态执行的正确性,使用程序易理解、易调试、易维护。以提高软件开发的效率,减少出错率,因此结构化程序强调程序的易读性。

7.杀毒软件不属于系统软件。系统软件是管理计算机的资源,提高计算机的使用率,为用户提供各种服务的软件,如操作系统、数据库管理系统、编译程序、汇编程序和网络软件等。 

应用软件是为了应用于特定的领域而开发的软件,杀毒软件属于应用软件。

8.数据库管理技术的三个阶段是人工管理阶段,文件系统阶段和数据库系统阶段。人工管理阶段没有专门的软件对数据进行管理。

9.在实体联系模型中,实体是客观存在并且可以相互区别事物。例如在学生选修课活动中,学生和课程是客观存在并且可以相互区别的事务,课程号是课程的属性,学号是学生的属性,成绩是学生和课程的属性。所以建立表示学生选修课程活动的实体联系模型中两个实体是学生和课程

10.

 11.Java语言标识符命名规则为:类名和接口名每个单词首字母大写。

变量和方法名遵循第一个单词首字母小写,后面每个单词首字母大写。

常量名所有字母全部大写。

12.Java程序独立于平台。字节码分开于各个操作系统及硬件。

13.在Java中,boolean类型的值只有true和false,无法于其他基本数据类型或引用数据类型之间进行相互转换。

14.运行结果:4

public class Test{
    public static void main(String[] args){
    
    System.out.println(3>2?4:5);

}
}

15.++i,j--,b*=a,为表达式语句,b#a不属于表达式语句。

16.结果:xyz345

public class Test{
    public static void main(String[] args){
        int x=3,y=4,z=5;
        String s="xyz";
        System.out.println(s+x+y+z);

}


}

 17.结果:5

public class nn{
    public static void main(String[] args){
        char k='a',p='f';
        int data=p-k;
        System.out.println(data);

}


}

考查数据类型之间的转换。char类型的数据,每个字符都有一个进制的ASCII码值与之对应,字符‘a’对应的十进制是数97,字符‘f’对应的十进制是102;字符类型数据在做算术运算时会将自动转为相应的数据。所以data=p-k=102-97=5。

18.if...else if...else,满足哪个条件就输出哪个,x=0时输出冠军,x>-3时输出亚军,x<=-3时输出季军

if(x==0)
System.out.println("冠军");
else if(x>-3)
System.out.println("亚军");
else
System.out.println("季军");

19.结果:20

public class nn{
    public static void main(String[] args){
        int s=0;
        for(int i=1;i<5;i++){
            for(int j=1;j<=i;j++){
                s=s+j;
            }

        }
        
        System.out.println(s);

}

}

考查for循环的嵌套。外层循环总共循环4次,内循环累加j的值。第一次循环时,i=1,j=1,内循环执行一次,s=1;第二次循环时,i=2,内循环j从1循环至2,循环2次,s=1+1+2=4;第三次循环时,i=3,j从1循环至3,循环3次,s=4+1+2+3=10;第四次循环时,i=4,j从循环至4,循环4次,s=10+1+2+3+4=20.

20.break:在java中作用为跳出循环

try、catch、finally用来处理程序异常

21.java中构造方法的定义要求为:方法名必须与类名一致,没有返回值,也不能用void修饰,构造方法分为有参构造方法和无参构造方法。

有参和无参的构造方法属于方法的重载。

构造方法在创建对象的时候自动调用无参构造方法。

22.考查对象中继承,多态,this,super关键字等。Test类中,Animal animal = new Dog();父类的引用指向了子类的对象,调用Dog类的无参构造方法,在类Dog的无参构造方法中,执行了super(12);此时调用了父类Animal的有参构造方法,而父类Animal的有参构造方法中,执行this();语句,又调用本类的无参构造方法。所以执行结果先输出animal,再输出12,最后输出dog。

class Animal{
    public Animal(){
        System.out.print("animal");

}
public Animal(int n){
    this();
    System.out.print(""+n);

}

}
class Dog extends Animal{
    public Dog(){
    super(12);
    System.out.println("dog");
}
}
public class Test{
    public static void main(String [] args){
        Animal animal = new Dog();
}

}

23.在java中,子类继承父类时,可以在父类的基础上增加自己的属性和方法,也可以重写父类的方法,但无法更换和减少父类的方法和属性。

24.

25. 

26.在java中,所有异常的父类为Exception类,自定义异常继承Exception类。 

27. append()方法不属于String类,toLowerCase(),valueOf(),charAt()属于String类。

28.在java中,获取数组长度的属性为length

 29.横线处应填:writelnt。在java中,整数类型默认int类型为基本类型,要求将整数类型数组myArray写入二进制文件,将数组中的每个int类型数据写入文件。DataOutputStream类提供write

Int()方法,将一个int写入基础输出流中。

import java.io.*;
public class XieShuzu{
    public static void main(String[]a){
        int[] myArray = {10,20,30,40};
        try{
            DataOutputStream dos = new DataOutputStream(new FileOutputStream("ints.dat"));
        for (int i=0;i<myArray.length;i++)
            dos.________(myArray[i]);
           dos.close();
            System.outu.println("已经将整数数组写入二进制文件:ints.dat");
        }catch(IOException ioe){
            System.out.println("IO Exception");
        } 
    }
}

30.在java中所有字节输入输出流都继承自IntputStream类和OutputStream类。

31.要得到某目录下的所有文件名,在下列横线上应填入:File

java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。FileputStream类、FileOutStream类、RandomAccessFile类是对其内容进行读写。

______pathName = new _______(args[0]);
String[] fileName = pathName.list();

32.RandomAccessFile是java.i包中的一个兼有输入输出功能的类。由于它是随机访问的,所以文件读写一个记录的位置是任意的。

RandomAccessFile(随机访问文件)类,RandomAccessFile对象类要一个位置指示器,指向当前读写处的位置,当前读写n个字节后,文件指示器指向这n个字节后下面的下一个字节处。刚打开文件是,文件指示器指向文件的开头处,可以移动文件指示器到新的位置,随后的读写操作将从新的位置开始。

33.下面代码WindowAdapter处理事件类是WindowEvent

MyWindow类继承了WindowAdapter类,在重写方法中传入的参数为WindowEvent类,则处理的事件为WindowEvent类。

public class MyWindow extends WindowAdapter{
    public void windowClosing(WindowEvent e){}
    public void windowCosed(WindowEvent e){}
    public void windowOpened(WindowEvent e){}
}

34.getSize()方法是获取窗口的大小。

getForeground()获取勾践前景色。

getBackground()获取构件后景色。

paint()绘画。

35.Swing 是AWT的扩展,提供了许多新的图形界面构件。Swing构件以“J”开头。

36.一个标准的线程由线程ID,当前指令针(PC),寄存器集合和堆栈组成。

线程间的数据可以共享。

多线程具有并发性,多线程同时运行,结果可能会出现紊乱。

线程创建除了继承Thread类之外还可以实现Runnable接口。

37.代码运行出现错误:

Runnable接口中的run()方法没有参数列表,重写时不能添加参数列表,编译出错。

Public class Test implements Runnable{
    public void run(Thread){
        System.out.peintln("Running.");
}

public static void main(String[] atgs){
    Thread tt = new Thread (new Test());
    tt.start();

}
}

38.调用某个对象的notify()方法能够唤醒一个正在等待这个对象锁的线程,如果有多个线程都在等待这个对象的对象锁,则只能唤醒其中一个线程。

sleep()使当前线程进入停滞状态,所以执行sleep()的线程在指定的时间内肯定不会执行;被调用后,一定能使调用线程改变当前状态。

yield()应该做的是让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会,但有可能没有效果

39.横线上应填写:synchronized

考查同步锁的知识点。多个线程调用一个对象的方法,方法需要被synchronized修饰,那么这些线程共同竞争一把锁。

public class MyStack{
    private int idx = 0;
    private int[] data = new int[8];
    public______void push(int i){
        data[idx] = i;
        idx++;

} 
.....

}

40.向Applet传递参数的格式:<param name= appletParameter1 value= value>

例如:<param name = age,value=20>

Applet获取参数是通过HTML文件中采用<PARAM>标记定义参数。Java中还定义了相应的方法,用来从HTML中获取参数。

41.操作题,考查数组的定义、赋值和遍历。

 

public class Java_1 {
    public static void main(String[] args) {
        //*********Found********
        int []f=____________[10];       //填空:new int    数组的定义方式为:数据类型[] 数组名 = new 数据类型[数组长度];
        f[0]=f[1]=1;
        //*********Found********
        for (________________;i<10;i++)    //填空:int i=2    定义变量i并初始化,因为数组的下标从0开始,f[i-2]表示第一个数,所以变量i的初始值为2。
            f[i]=f[i-1]+f[i-2];
        //*********Found********
        for (int i=0;i<f._____________;i++)    //填空:length    数组中获取数组长度用length属性.
        //*********Found********
            System.out.print(_________________+"  ");    //填空:f[i]    遍历数组元素
    }
    
}

42.考查二维数组的定义,以及二维数组的元素赋值。

 

public class Java_2{
   public static void main(String[] args){
      //*********Found**********
      int ____________ aMatrix = new int[4][];    //填空:[][]   二维数组定义方式为:数据类型[][] 数组名 = new 数据类型[行数][];
      int i = 0;
      int j = 0;
      int k = 4;

      for(i = 0; i < 4; i++){
         //*********Found**********
         aMatrix[i] = new int[__________];    //填空:k-i    给每一行的数组分配空间,根据打印输出的结果可知,每一行的元素递减。
 
         //*********Found**********
         for (j = 0; j < ___________.length; j++) {    //填空:aMatrix[i]    内循环是对二维数组每一行的数据进行操作。
            aMatrix[i][j] = i+1;
            System.out.print(aMatrix[i][j] + " ");
         }
         //*********Found**********
         System.out.______________________;    //填空:println()    //每一行输出以后,通过println()输出换行符
      }
   }
}

43.考查:Swing窗口和监听器的使用。

 

//打印无符号整数位
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Java_3 extends JFrame {
   public Java_3(){
      super( "打印无符号整数位" );
      Container c = getContentPane();
      c.setLayout( new FlowLayout() );
      c.add( new JLabel( "请输入整数: " ) );
      final JTextField output = new JTextField( 33 );
      JTextField input = new JTextField( 10 );
      input.addActionListener(
         new ActionListener() {
            //*********Found********
            public void _________________( ActionEvent e ){
                //填空:actionPerformed  创建ActionListener对象必须重写其中的actionPerformed(ActionEvent e)抽象方法
               int val = Integer.parseInt(
                  e.getActionCommand() );
               //*********Found********
               _________________.setText( getBits( val ) );
                //填空:output     程序要去输入的数用二进制文本输出JTextField类提供的setText()方法设置文本域中的文本值,通过JTextFiled类output调用该方法。
            }
         }
      );
      c.add( input );
      c.add( new JLabel( "该数的二进制位表示是" ) );      
      output.setEditable( false );
     //*********Found********
      c.add( _________________ );
        //填空:output    通过Container类中add(方法将组件对象“output”添加到容器中去。
      setSize( 720, 70 );
      setVisible(true);
   }

   private String getBits( int value ){
      int displayMask = 1 << 31;
      StringBuffer buf = new StringBuffer( 35 );
      for ( int c = 1; c <= 32; c++ ) {
         buf.append(
            ( value & displayMask ) == 0 ? '0' : '1' );
         value <<= 1;
         if ( c % 8 == 0 )
            buf.append( ' ' );
      }
      return buf.toString();
   }

   public static void main( String args[] ){
      Java_3 app = new Java_3();
      app.addWindowListener(
         new WindowAdapter() {
     //*********Found********
            public void windowClosing( ___________ e ){
            //填空:WindowEvent    WindowEvent处理此窗口上发生的窗口焦点事件,点击窗口会触发该事件。System.exit(0)方法为退出系统。
               System.exit( 0 );
            }
         }
      );
   }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值