PTA中java基础判断题及解析

1.java语言中不用区分字母的大写小写 F

解析:Java是区分大小写的,因为它使用C风格的语法;同时也是为了方便阅读。

2.Java语言中,变量名可以用汉字表示 T

3.一个数组可以存放不同类型的数值 F

解析:一个数组中的所有元素具有相同的性质(尤其是数据类型,所有元素都相同)

4.字节码文件是与平台无关的二进制码,执行时由解释器解释成本地机器码 T

5.一个Java源文件中可以有多个类,但只能有一个类是public的  T

解析:每个编译单元(文件)都只能有一个public类,这表示,每个编译单元都有单一的公共接口,用public类来表示。该接口可以按要求包含众多的支持包访问权限的类,如果在某个编译单元内有一个以上的public类,编译器就会给出错误信息

6.Java允许创建不规则数组,即Java多维数组中各行的列数可以不同   T

解析:Java数组中可以创建一个“不规则”数组,即数组的每一行有不同的长度,例如第一行有一列,第二行有两列,依次类推。

7.boolean型数据的值只有true和false T

8.在一个编辑器中编写好的Java应用程序,是扩展名为.class的文件。  F

解析:.java文件

9.Java的字符类型采用的是ASCII编码.    F

解析: 采用Unicode 编码

10.语句 System.out.println(4+8+"Hello,world!"); 的输出结果是12Hello,world!         T

11.用static修饰的变量是类变量     T

解析:关键字static用于修饰域和方法。用static修饰的域和方法称为类域或类方法,或称为静态域和静态方法。

12.在Java程序中,可以使用private来修饰一个类。  T

13.如果一个成员变量被修饰为final的,就是常量,常量必须赋给初值,而且不能再发生变化   T

14.System类不能实例化,即不能创建System类的对象    T

解析:System类是一个特殊类,它是一个公共最终类,不能被继承,也不能被实例化。程序中的操作有的只发生在内存和CPU之间,有的则发生在主机和外设之间,例如数据的输入/输出、从程序中返回操作系统、在程序中执行操作系统的命令等,这些都可称为系统操作。

15.有的类定义时可以不定义构造函数,所以构造函数不是必需的。  F

16.类及其属性、方法可以同时有一个以上的修饰符来修饰。  T

修饰符:用来定义类、方法或者变量,通常放在语句的最前端,

  • 访问控制修饰符 : default, public , protected, private
  • 非访问控制修饰符 : final, abstract, static, synchronized

标识符:在程序中用于标识变量、类、对象和接口等元素的名字。

关键字:关键字也是标识符,但是关键字是由Java语言定义的,程序员不可以再重新定义为用户的标识符。

17.一个类的静态方法不可以访问该类的非静态成员变量。 T

18.在实例方法或构造器中,this用来引用当前对象,通过使用this可引用当前对象的任何成员。 T

解析:this是当前对象,也可以看作是当前对象的别名

当通过一个对象调用一个成员方法时,系统会将当前对象的别名传递到被调方法中,在这个被调方法中,当前对象名就是this,所以this只能在成员方法中可见。

一个成员方法可以被这个类的多个对象调用,在某一时刻,哪一个对象调用这个方法,this就表示的时哪一个对象。

19.构造函数名应与类名相同,返回类型为void F

解析:创建对象时通过new运算符调用类中的构造方法,如果类中没有相应的构造方法,则不能创建对象, 所以在定义类时应该定义构造方法。在一个类中可以定义多个构造方法,形成构造方法的重载。利用重载的构造方法可以创建不同初始状态的对象。构造方法没有“方法类型”,写“void”也不可以,“方法名”必须与所在的类的类名一致,“形参列表”与其他方法的定义一样。

class ceShi{
	int x,y;
	ceShi()//没有参数构造方法
	{
		x=0;
		y=0;
	}
	ceShi(int x1,int y1)//有参数构造方法
	{
		x=x1;
		y=y1;
	}
}

20.类也是一种数据类型(type)  T

解析:Java语言本身定义的数据类型称为基本数据类型,在基本数据类型的基础之上,还可以定义其他数据类型,称为自定义类型,如类、接口和枚举。

基本数据类型有字节型(byte)、短整型(short)、基本整型(int)、长整型(long)、单精度型(float)、双精度型(double)、布尔型或逻辑型(Boolean)和字符型 (char)

21.静态变量是被同一个类的所有实例所共享的 T

22.类可以有两种重要的成员:成员变量和方法,类还可以有一种成员:内部类。 T

23.一个类的非静态方法可以访问静态成员变量T

解析:静态成员变量:声明为static关键词修饰的变量叫做静态成员变量,也叫做全局变量。

静态成员方法:声明为static关键词修饰的方法叫做静态成员方法。例如:作为Java应用程序入口的main成员方法就是一个静态成员方法。

在非静态方法中,可直接调用同类或其他类中的静态变量或静态方法,原因:被调用者均已初始化;

24.实例变量只能通过对象名访问,类变量既可以通过某个对象名也可以通过类名来访问。T

25.引用一个类的属性或调用其方法,必须以这个类的对象为前缀。 F

26.如果一个类的声明中没有使用extends关键字,这个类被系统默认为是继承Object类  T

27.覆盖只能在不同的类中完成。  T

类本部 本包 子类 外部包
public
protected
default
private

 解析:覆盖是子类对父类的重写,与父类同名同参,子类与父类返回类型要一致,子类不能覆盖父类的private方法。

重载:同一个类中建立多个同名方法,与别的方法同名不同参,重载只要参数不同,可以多次。

28.Object是Java中所有类的共同父类。T

29.可以使用protected修饰符来防止方法和数据被不同包的非子类访问。T

30.子类不继承父类的构造方法。 T

31.构造方法可以调用本类中重载的构造方法和它的父类的构造方法。T

32.为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口 T

解析:抽象类及接口

关键字abstract修饰的类就是抽象类;

接口用于规范对象应有的行为;接口还可以有多个父接口

interface 接口名 extends 父接口列表
{
//符号常量定义
//方法声明
}

接口必须通过类来进行使用;其中关键字“implements”表示“类名”类要实现“接口列表”中的所有接口中的所有方法。如果有一个接口方法没有在“类名”类中定义,则该类为抽象类。

class 类名 implements 接口列表
{
//类体
}

33.接口中的方法默认是public abstract方法。T

34.类在实现接口方法时必须给出方法体,并且一定要用public来修饰。T

35.一个Java源文件就是由类和接口组成的 T

36.如果一个类声明实现一个接口,但没有实现接口中的所有方法,那么这个类必须是abstract类。 T

37.类在实现接口的方法时,必须显式地使用public修饰符  T

38.一个类只能有一个父类,但一个接口可以有一个以上的父接口。 T

39.一个类可以实现多个接口 T

40.接口中的方法默认都是静态的。 F

41.接口中的属性,都是静态常量。 T

(异常的知识补充)

当程序设计和运行时,可能出现错误分为三类:编译错误、逻辑错误、运行时错误。

错误:指程序运行时遇到的硬件、操作系统、虚拟机的错误

异常:指在硬件、操作系统、虚拟机正常时,程序遇到的运行错(语义错)

程序不能处理错误,只能依靠外界干预,但是需要处理异常

Java.lang.Throwable类是Java中所有错误类或异常类的根类。

Throwable类的子类:Error错误类和Exception异常类

Exception类分为可查(checked)异常和不可查(unchecked)异常;可查异常是指在编译时被强制检查的异常,在程序中必须捕获或者抛出处理;不可查异常是指在运行中可能出现的异常,由程序逻辑错误引起,通常是RuntimeException类及其子类异常。

异常的处理机制分为抛出异常捕获异常

抛出异常是指一个方法不想对产生的的异常进行捕获和处理,则在方法声明时使用throws子句抛出该异常,由上层调用方法处理。

捕获异常是指通过try-catch语句或者try-catch-finallt语句实现。Java要求所有的可查异常必须被捕获或者声明抛出,其他异常或错误可以忽略。

以下为异常捕获语句

try {
		//正常数据处理但可能会发生异常的程序代码
	}catch(异常类型1 e) {
		//捕获并处理try抛出的异常类型1
	}catch(异常类型2 e) {
		//捕获并处理try抛出的异常类型2
	}catch(异常类型n e){
		//捕获并处理try抛出的异常类型n
	}finally {
		//对try语句块进行的后续的处理
	}

如果try语句块没有产生任何异常,则程序会跳过所有catch语句块,执行finally语句块和其后的语句。

如果try语句块中产生了异常,则不再执行try语句块中的后续语句,而是跳到catch语句块部分,与catch语句块逐一匹配,并执行第一个满足匹配的catch块语句,执行完后,跳过其他catch块,继续执行finally语句块以及后面的程序语句。

如果catch语句块匹配异常失败,则将该异常抛给JVM处理,finally语句块中的语句仍会被执行,但finally语句块后的语句不会被执行。

throw语句实在代码块中抛出一个异常,由try语句或者上层方法捕获处理,定义形式

throw new 异常类

执行throw语句后,在相应的try-catch语句中从里到外一次匹配相应的catch语句,匹配失败想上层方法抛出。

Java允许用户自定义异常类,自定义异常类必须继承父类Throwable类或Exception类。自定义异常类的使用与系统定义的异常类的使用方法相同。

42.所有异常都必须捕获。 F

43.一个try语句可以有多个catch语句与之对应  T

44.异常也是一个对象 T

45.可以使用throws语句来指明方法有异常抛出。 T

46.程序运行时所产生的系统定义的异常将自动被抛出。 T

47.可以使用throws语句来指明方法有异常抛出。T

48.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。T

49.程序运行时所产生的系统定义的异常将自动被抛出。 T

50.String字符串在创建后可以被修改。F

解析:String对象内容的改变是通过内存地址的改变来完成的,而其对象本身内容没有改变

51.设String对象s="Hello ",运行语句System.out.println(s.concat("World!"));后String对象s的内容为"Hello world!",所以语句输出为Hello world!。F

52.Java中数组的元素只能是简单数据类型 F

53.一个数组可以存放许多不同类型的数值。 F

54.数组作为方法的参数时,必须加在数组名后加方括号 T

55.数组中有length()这个方法,如array.length()表示数组array中元素的个数 F

56.Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。T

(数组知识)

声明数组:数据类型 数组名[];

创建数组:new 数据类型[数组长度];

数组是引用类型。数组名作为方法形参时,传递的是数组的引用。

数组具有长度的属性,即length值,a.length表示数组a的元素个数。

增强型for循环

for(数据类型 变量名:数组名)

循环体(循环体中访问“变量名“)

public class Main{
	public static void main(String[] args) {
    int a[]=new int[5];
    for(int item:a) {
	System.out.println(item+" ");
    }
}

创建二维数组:new 数据类型[行数][列数]

Java二维数组允许每一行的元素个数不同

public class Main {

	public static void main(String[] args) {
    int a[][]=new int[2][];
    a[0]=new int[1];
    a[1]=new int[2];
    for(int item:a[1]) {
	System.out.println(item+" ");
   }
 }
}

输出结果:PTA中java基础判断题及解析_第1张图片

二维数组元素的方位:访问形式(二维数组名[下标1][下标2])

二维数组的行数,用length属性

a.length表示二维数组a的行数

a[i].length表示二维数组a的第i行元素的个数

57.在Java中,高优先级的可运行线程会抢占低优先级线程。F

58.程序开发者必须创建一个线程去管理内存的分配。F

59.StringBuffer类是线程安全的,StringBuilder类是线程不安全的。T

60.ArrayList类是线程安全的。F

61.HashSet类是线程不安全的。T

(线程知识点)

[

1.线程

操作系统:管理和控制计算机硬件与软件资源的程序,任何其他软件都必须在操作系统的支持下才能运行。

并行计算:用多个处理器来协同求解用一个问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行运算。

并发:指一个时间段内多个程序都处于已启动运行到运行完毕之间的状态,且都是在同一个CPU上运行,但任一时刻只有一个程序在CPU上运行。

程序:程序是存储在磁盘上,包含可执行机器指令和数据的静态实体。

进程:进程是资源(CPU、内存等)分配的基本单元,是程序的一次动态执行过程,即运行中的程序。一个运行着的程序,可能有多个进程。

线程:进程内的一个执行单元,也是进程内的可调度实体,可以并发执行提高了进程的效率。

线程的特点:比进程更小的执行单位,轻量的进程,共享代码和数据空间、切换开销小。

进程为资源分配的基本单位,线程是处理器调度的基本单位。

2.线程的创建

线程创建的三种方式:继承Thread类、实现Runnable接口、实现callable接口。Run方法是线程(前两种方式实现)的核心,一个运行的线程实际上是该线程的run()方法,所以线程的操作要在run方法中进行定义。

Call方法是callable接口实现线程的根本,线程的操作要在call方法中定义。

3.自定义线程类

Class 类名 extends Thread

4线程调度原则

线程调度是抢占式调度策略;高优先级的线程将优先得到且比低优先级的线程得到更多CPU执行时间;时间片有空闲,具有同等优先级的线程以轮流的方式顺序使用时间片。

5.线程联合

线程联合是指线程之间有序执行,用join方法实现一个线程等待另一个线程完成后才执行,相当于联合成一个线程。Join()方法调用后当前运行线程运行态到阻塞态,等到该线程执行完后由阻塞态到就绪态。

]

62.声明构造方法时,可以使用private访问修饰符。F

63.List集合是有序的,可以包含重复的对象。T

64.集合Set是通过键-值对的方式来存储对象的。F

65.在java.util.Set接口的实现类java.util.HashSet所表示的集合中,元素是无序的并且不允许重复,因此不能利用索引位置访问元素。T

66.子类如果想使用父类的构造方法,必须在子类的构造方法中使用,并且必须使用关键字super来表示,而且super必须是子类构造方法中的头一条语句。T

67.一个Java类可以有多个父类。F

68.一个接口可以继承其他接口。T

69.使用方法length( )可以获得字符串或数组的长度。F

解析:Java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性.

Java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法.

https://blog.csdn.net/weixin_39959126/article/details/1141538417

70.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。F

解析:抽象类中可以包含非抽象方法,但是抽象方法只能声明,不能有方法体。类中可以包含非抽象方法,但是抽象方法只能声明,不能有方法体类中可以包含非抽象方法,但是抽象方法只能声明71.abstract类中定义的方法只能是abstract方法。F

72.Java中类和方法都不允许嵌套定义。F

73.abstract可以与final同时修饰同一个类。F

​​​​​​​74.一个Java类可以有多个父类。F

75.抽象类是不能实例化的 T

76.构造方法的返回类型只能是void型 F

77.Java中的String类型是一种基本数据类型。F

78.Java中的常量用final关键字修饰,标识符一般大写,赋值机会只有一次,必须在定义的时候赋初值 F

79.在定义一个类的时候,如果类的成员被private所修饰,该成员不能在类的外部被直接访问 T

80.一个异常处理中 finally语句块可以不出现,也可以出现一次。 T

81.Java语言中的所有异常类都是java.lang.Throwable的子类。 T

82.String对象和StringBuffer对象都是字符串类型,创建后的对象都可以原地修改。 F

83.在java.util.List接口的实现类java.util.ArrayList所表示的集合中,元素是有序的并且可以重复。该数据结构底层由数组来实现,能够精确地控制每个元素的插入位置,或者删除某个位置的元素,对元素的随机访问速度特别快。T

84.Set集合是有序的,不可以包含重复的对象 F

解析:set集合中元素无序,不重复

欢迎大家批评指正!!!

你可能感兴趣的:(java)