java PTA选择题精选 期末复习

先给一个老师说会考的知识点

JDK安装目录的文件

1.bin

该路径下存放了JDK的各种工具命令,常用的javac、java等命令就放在该路径下。

2.include

C 语言头文件,支持用Java本地接口和Java虚拟机接口 来实现本机代码编程

3.jre

JDK自含JRE的根目录,这是系统属性java.home所指向的目录

bin: 包含执行文件和dll等库文件,可执行文件和jdk/bin是一样,本目录不需要被PATH所包含

4.lib

该路径下存放的是JDK工具命令的实际执行程序。(即bin中绝大部分命令运行的是lib中程序)

 

Java中各个数据类型都占多少个字节呢

 

接下来是精选选择题

  1. JAVA所定义的版本中不包括:( 4.  )
    1. JAVA2 EE
    2. JAVA2 Card
    3. JAVA2 ME
    4. JAVA2 HE
    5. JAVA2 SE
  •  

 

2-17

下列哪些语句关于Java内存回收的说明是正确的? (  )

A.程序员必须创建一个线程来释放内存

B.内存回收程序负责释放无用内存

C.内存回收程序允许程序员直接释放内存

D.内存回收程序可以在指定的时间释放内存对象

在Java里,内存的释放由垃圾回收程序进行管理,程序员不能直接进行释放。

程序员可以调用System.gc()运行垃圾回收器,但是不能指定时间。

 

下述哪条关于构造方法的说法,不符合Java语法的规定( )。

A.每个类至少有一个构造方法

B.构造方法必须与类同名

C.构造方法无返回值,其返回值类型必须写为void

D.构造方法可以是private的

Java类 必须包含一个或一个以上的构造方法,没写构造方法Java也会自己初始化一个无参构造方法

构造方法也可以是私有的private,私有构造器,就是用private关键字声明的构造器。与一般公有构造器最大的区别在于,其访问权限是private,于是它只能被包含它的类自身所访问,而无法在类的外部调用,故而可以阻止对象的生成。所以,如果一个类只有一个私有构造器,而没有任何公有构造器,是无法生成任何对象的。详情请见https://blog.csdn.net/StaticFinal520/article/details/56014312?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control

 

 

2-2

异常包含下列那些内容?

A.程序中的语法错误

B.程序的编译错误

C.程序执行过程中遇到的事先没有预料到的情况

D.程序事先定义好的可能出现的意外情况

 

下列关于System类的叙述中,错误的是( )。

A.System类是一个final类

B.System类不能实例化

C.System类中没有定义属性

D.System类主要提供了系统环境参数的访问

System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。

    由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员方法和成员变量都是static(静态)的,所以也可以很方便的调用他。

    system中包含了in、out和err三个成员变量,分别代表标准输入流(键盘输入)、标准输出流(显示器)和标准错误输出流(显示器)

 

执行完以下代码int [ ] x = new int[10];后,以下哪项说明是正确的( )。

A.x[9]为0

B.x[9]未定义

C.x[10]为0

D.x[0]为空

1、int类型定义的数组,初始化默认是0

2、String类型定义的数组,默认值是null

3、char类型定义的数组,使用UTF8字符集 给出的结果是 

4、double类型定义的数组,默认值是0.0

5、float类型定义的数组,默认值是0.0

6、boolean类型定义的数组,默认值是false

 

在Java中用什么关键字修饰的方法可以直接通过类名来调用?( )。

A.static

B.final

C.private

D.void

引用百度经验里的方法回答这个问题https://jingyan.baidu.com/article/9f7e7ec0e61d9d6f2915546e.html

  1. 静态方法的调用方式,类名称+方法名;

    编写TestStatic类,其有一个静态方法和一个实例方法。

    Java static关键字修饰方法

  2. 然后编写测试类,使用类名称+方法名,去调用这两个方法,发现调用test2时,编译器报错,其不是一个类方法。

    然后创建

  3. TestStatic的一个实例ts,然后使用ts可以调用test2。

    Java static关键字修饰方法

 

Java中()。

A.一个子类可以有多个父类,一个父类也可以有多个子类

B.一个子类可以有多个父类,但一个父类只可以有一个子类

C一个子类可以有一个父类,但一个父类可以有多个子类

D.上述说法都不对

这个题可以说相当经典了,java舍弃了C++中复杂的子类继承多个父类的功能,一个子类只能继承一个父类,一个父类能被多个子类继承。

 

 

6.要从文件" file.dat"文件中读出第10个字节到变量C中,下列哪个方法适合? A

A、 FileInputStream in=new FileInputStream("file.dat"); in.skip(9); int c=in.read();

B、 FileInputStream in=new FileInputStream("file.dat"); in.skip(10); int c=in.read();

C、 FileInputStream in=new FileInputStream("file.dat"); int c=in.read();

D、 RandomAccessFile in=new RandomAccessFile("file.dat"); in.skip(9); int c=in.readByte();

 

 

11.下列代码哪几行会出错: C
1) public void modify() {
2) int I, j, k;
3) I = 100;
4) while ( I > 0 ) {
5) j = I * 2;
6) System.out.println (" The value of j is " + j );
7) k = k + 1;
8) I--;
9) }
10} }

A、 line 4

B、 line 6

C、 line 7

D、 line 8

未初始化

 

12.MAX_LENGTH是int型public成员变量, 变量值保持为常量100,用简短语句定义这个变量。 D

A、 public int MAX_LENGTH=100;

B、 final int MAX_LENGTH=100;

C、 final public int MAX_LENGTH=100;

D、 public final int MAX_LENGTH=100.

final关键字的用法 

变量:final成员变量表示常量,只能被赋值一次,赋值后值不再改变。

方法:只有在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的

类:当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰

 

 

20.对于下列代码:
  public class Parent {
   public int addValue( int a, int b) {
     int s;
     s = a+b;
     return s;
   }
  }
  class Child extends Parent {
  }
 下述哪些方法可以加入类Child? C

A、 int addValue( int a, int b ){// do something...}

B、 public void addValue (int a, int b ){// do something...}

C、 public int addValue( int a ){// do something...}

D、 public int addValue( int a, int b )throws MyException {//do something...}

 

23.给定下面的代码片段: C
  1) String str = null;
  2) if ((str != null) && (str.length() > 10)) {
  3) System.out.println("more than 10");
  4) }
  5) else if ((str != null) & (str.length() < 5)) {
  6) System.out.println("less than 5");
  7) }
  8) else { System.out.println("end"); }
哪些行会导致错误?

A、 line 1

B、 line 2

C、 line 5

D、 line 8

注意逻辑与是“&&”,按位与是“&”

 

30.下列关于Java线程的说法那些是正确的() D

A、 每一个Java线程可以看成由代码、一个真实的CPU以及数据三部份组成。

B、 创建线程的两种方法中,从Thread类中继承的创建方式可以防止出现多父类问题。

C、 Thread类属于java.util程序包。

D、 以上说法无一正确。

 

33.指出下列程序的运行结果 B
  int i = 9;
  switch (i) {
  default:
  System.out.println("default");
  case 0:
  System.out.println("zero");
  break;
  case 1:
  System.out.println("one");
  case 2:
  System.out.println("two");
  }

A、 default

B、 default, zero

C、 error default clause not defined

D、 no output displayed那个

default没写break

 

35. 下面哪个单词是Java语言的关键字(    B     )

A、Float     B、this     C、string    D、unsigned 

float要小写,String要大写

 

 

36. 下面哪个是Java语言中正确的标识符(    C       )

A、3com     B、import    C、that         D、this 

标识符是给变量、方法和类来取名字的,第一个不能是数字,且不能是关键字

 

 

40. 下面哪个是对字符串String的正确定义 (   A        )

A、String s1=null;            B、String s2=’null’ ;   

C、String s3=(String) ‘abc’ ;     D、String s4=(String) ‘\uface’;

 

41. 下面哪条语句不能定义一个float型的变量(  B       )

A、float f1= -343 ;                   B、float f2=3.14 ;   

C、float f3=0x12345 ;              D、float f4=2.8F ;

float后面如果是小数要跟一个小写的f

 

42. 下面哪条语句定义了5个元素的数组(   A       )

A、int [] a={22,23,24,25,12};

B、int a []=new int(5);

C、int [5] array;

D、int [] arr;

 

46. 给出一段程序,试判断哪个是正确的结果(    B         )

public class rtEx‘’cept{

    public static void throwit(){

System.out.print(“throwit”);

throw new RuntimeException();  }

    public static void main(String [] aa){

        try{

            System.out.print(“hello “);

            throwit(); }

        catch(Exception re){

        System.out.print(“caught ”);  }

        finally{

        System.out.print(“finally ”); }

    System.out.print(“after ”);

    }

}

A、hello throwit caught

B、hello throwit caught finally after

C、hello throwit RuntimeException after

D、hello throwit caught finally after RuntimeException

 

57.下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的(      C   )

A、public        B、private           C、static    D、final

 

59.下面关于java中类的说法哪个是不正确的(     C      )

A、类体中只能有变量定义和成员方法的定义,不能有其他语句。

B、构造函数是类中的特殊方法。

C、类一定要声明为public的,才可以执行。

D、一个java文件中可以有多个class定义。

可以有多个Class,但只能有个是用public 修饰的Class,且和文件名一致,其他的class一般不加访问权限修饰(即class XXX{}形式)

 

60. 下面程序运行后的输出结果为(     c     )

class A

{static int y=6;

void showy( ){System.out.println(“y=”+y); }   }

class testA

{

    public static void main(String aaa [])

    { A a1=new A( );

      A.y+=1;  a1.y++;

      a1.showy( );

}

}

输出结果选择:

A、y=6;         B、y=7;         C、y=8;         D、程序运行出错  

static是全局的变量,都能用,都能改

 

62. 下面关于构造函数的说法不正确的是(    B        )

A、构造函数也属于类的方法,用于创建对象的时候给成员变量赋值。

B、构造函数不可以重载。

C、构造函数没有返回值。

D、构造函数一定要和类名相同。

构造函数当然可以重载

 

66.监听事件和处理事件    B

A、都由Listener完成  B、都由相应事件Listener处登记过的构件完成  

C、由Listener和构件分别完成  D、由Listener和窗口分别完成

 

68.给出如下代码:

class Test{

  private int m;

  public static void fun() {

    // some code...

  }

}

如何使成员变量m 被函数fun()直接访问?  C

 A、将private int m 改为protected int m

 B、将private int m 改为 public int m

 C、将private int m 改为 static int m

 D、将private int m 改为 int m

静态成员函数只能够调用静态成员变量,不能访问普通变量。

发明静态函数的目的:操作静态变量,执行一些和特定对象无关的内容

 

69.下面的代码段中,执行之后i 和j 的值是什么?  C

int i = 1;

int j;

j = i++;

 A、 1, 1     B、1, 2      C、2, 1        D、2, 2

 

70.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的 ? B

A、 ArrayList myList=new Object();

B、 List myList=new ArrayList();

C、 ArrayList myList=new List();

D、 List myList=new List();

 

 

73.指出下列程序运行的结果   D
public class Example{
  String str=new String("good");
  char[]ch={'a','b','c'};
  public static void main(String args[]){
    Example ex=new Example();
    ex.change(ex.str,ex.ch);
    System.out.print(ex.str+" and ");
    Sytem.out.print(ex.ch);
  }
  public void change(String str,char ch[]){
    str="test ok";
    ch[0]='g';
  }
}

A、 good and abc

B、 good and gbc

C、test ok and abc

D、 test ok and gbc

 

74.运行下列程序, 会产生什么结果  A
public class X extends Thread implements Runable{
 public void run(){
  System.out.println("this is run()");
 }
 public static void main(String args[])
 {
  Thread t=new Thread(new X());
  t.start();
 }
}

A、 第一行会产生编译错误

B、 第六行会产生编译错误

C、 第六行会产生运行错误

D、 程序会运行和启动

是Runnable不是Runable

 

84、如果类中的成员变量可以被同一包访问,则使用如下哪个约束符?   D

 A、 private       B、public       C、protected         D、no modifier

 

 

86.MAX_LENGTH是int型public成员变量, 变量值保持为常量100,用简短语句定义这个变量。 D

A、 public int MAX_LENGTH=100;

B、 final int MAX_LENGTH=100;

C、 final public int MAX_LENGTH=100;

D、 public final int MAX_LENGTH=100.

 

120.对于catch子句的排列,下列哪种是正确的(A )
A.父类在先,子类在后
B.子类在先,父类在后
C.有继承关系的异常不能在同一个try程序段内
D.先有子类,其他如何排列都无关

 

124.在异常处理中,如释放资源、关闭文件、关闭数据库等由( C)来完成。
A.try子句           B.catch子句
C.finally子句         D.throw子句

 

133.Java虚拟机的执行过程有多个特点,下列哪个特点不属于JVM执行特点(D )
A.多线程               B.动态连接
C.异常处理              D.异步处理

 

144.Java中哪个类提供了随机访问文件的功能(A )
A.RandomAccessFile类        B.RandomFile类
C.File类              D.AccessFile类

 

145.当方法遇到异常又不知如何处理时,下列哪种说法是正确的( C)
A.捕获异常             B.抛出异常
C.声明异常             D.嵌套异常

 

146.Java程序的执行过程中用到一套JDK工具,其中java.exe是指( B)
A.Java文档生成器          B.Java解释器
C.Java编译器            D.Java类分解器

 

149.Java语言中,下列标识符错误的是(C )
A.diss                B.—name
C.&count              D.—j

 

152.下面说法不正确的是(B )
A.Java中线程是抢占式的      B.Java中线程是分时的
C.Java中的线程可以共享数据    D.Java中的线程可以共享代码

 

153.下面属于Java线程同步方法的方法有( C)
A.joiny()            B.run()
C.wait()             D.destroy()

 

155.下列说法不正确的是(C )
A.IOException必须被捕获或抛出
B.java语言会自动初始化变量的值
C.java语言不允许同时继承一个类并实现一个接口
D.java语言会自动回收内存中的垃圾

 

157.Java语言中,下列标识符错误的是(BD )
A.—sys1             B.&—m
C.I               D.40name

 

161.在下列事件处理机制中哪个不是机制中的角色(C )
A.事件             B.事件源
C.事件接口           D.事件处理者

 

164.对象使用时,下面描述错误的是( B)
A.通过“.”运算符调用成员变量和方法
B.通过成员变量的访问权限设定限制自身对这些变量方法的调用
C.将一个对象申明为类的成员时,必须在使用前为其分配内存
D.在方法中使用对象作为参数时,采用引用调用

限制自身不对,会限制子类,包内类,包外类的调用

 

170.JAVA程序经常用到“递归”,“递归”的基本思想是(C )
A.“让别人反复调用自己”        B.“自己反复调用别人”
C.“自己反复调用自己”         D.以上说法都不对

 

 

  • 运算符优先级别排序正确的是(A     )
    1. 由高向低分别是:()!、算术运算符、关系运算符、逻辑运算符、赋值运算符;
    2. 由高向低分别是:()、关系运算符、算术运算符、赋值运算符、!、逻辑运算符;
    3. 由高向低分别是:()、算术运算符、逻辑运算符、关系运算符、!、赋值运算符;
    4. 由高向低分别是:()、!、关系运算符、赋值运算符、算术运算符、逻辑运算符;

在java中下列关于自动类型转换说法正确的是(      A     )

  1. 基本数据类型和String相加结果一定是字符串型
  2. char类型和int类型相加结果一定是字符
  3. double类型可以自动转换为int
  4. char + int + double +"" 结果一定是double;

 

 

 

 

 

 

  • 17
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值