• Java基础试题


     

    1.使用Java语言编写的源程序保存时的文件扩展名是( B )。

    (A).class          (B).java            (C).cpp            (D).txt

    【注】java语言的源文件扩展名是.java,编译后会生成.class文件,就是代码文件。

    2.设int a=-2,则表达式a>>>3的值为( D )。

    (A)0  (B)3   (C)8   (D)很大的一个数

    【注】测试的结果是536870911。涉及补码:正数的补码是自身,负数的补码为取反+1。

    3.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( C )。

    (A)a[0];           (B)a[a.length-1];  

    (C)a[3];           (D)int i=1; a[i];

    4.在类的定义中可以有两个同名函数,这种现象称为函数( D )。

    (A)封装            (B)继承            

    (C)覆盖            (D)重载

    【注】可以存在同名的方法,但是参数类型和参数不能相同,这样的关系体现了Java中的多态(重载)。

    5.在类的定义中构造函数的作用是( D )。

    (A)保护成员变量    (B)读取类的成员变量

    (C)描述类的特征    (D)初始化成员变量

    【注】构造函数通常用于在实例化对象时自动对内部数据成员初始化,设置初始值、分配内存空间等。

    而析构函数则用于删除对象时做收尾工作,比如释放申请的空间等。

      要创建一个对象,就得调用构造函数。

    要销毁一个对象,就会被迫的调用析构函数。

    如果成员函数声明称static,不创建对象也能调用 静态成员函数。

    6.下面关键字中,哪一个不是用于异常处理语句( B )。

    (A)try             (B)break            

    (C)catch           (D)finally

    7.类与对象的关系是( A )。

    (A)类是对象的抽象  (B)对象是类的抽象   

    (C)对象是类的子类  (D)类是对象的具体实例

    【注】对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型,其定义为:class 类名{ }

    它们的关系是,对象是类的实例,类是对象的模板。

    8.下面哪一个是Java中不合法的标识符(D)

    (A)$persons        (B)twoNum           

    (C)_myVar          (D)*point

    【注】Java的标识符必须以 '$','_',或者字母'a'~'z','A'~'Z'开头,接下来可以是 '$','_',字母'a'~'z','A'~'Z',数字'0'~'9'的任意组成。标识符的长度没有限制。
    标识符中不能含有其他符号,当然也不允许插入空格。

    9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。

    (A)static  void  method( )               

    (B)public  void  method( )       

    (C)final  void  method( )                

    (D)abstract  void  method( )

    【注】

    A是静态方法,可以直接用如下形式调用Test.method();

    B是普通public函数,必须实例化类,Test test = new Test(); test.method();

    C是final方法,不能被重载,用法同B

    D是抽象方法,必须被子类继承并重写,然后调用的方式同B。

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

    (A)ArrayList myList=new Object( )       

    (B)List myList=new ArrayList( )

    (C)ArrayList myList=new List( )          

    (D)List myList=new List( )

    注】是B不是C。

    这个称之为面向接口编程,是java语言的一大优点。ArrayList虽然是一个具体的类,按照ArrayList myList=new ArrayList();的确可以生成一个myList对象,而且编译也不会报错。但是在实际开发中时不采用这样的方式即实际开发时都是 接口名 xxx=new 接口某实现类()。这样便于

    1.便于程序规范化设计

    2.便与团队协同开发

    3.便于转换为组件

    4.方便的代码复用,无需了解技术细节。

    11.Java源文件和编译后的文件扩展名分别为( B)

    (A).class和.java 

    (B).java和.class       

    (C).class和.class           

    (D).java和.java

    【注】java语言的源文件扩展名是.java,编译后会生成.class文件,就是代码文件。

    13.对于一个Java源文件,import, class定义以及package正确的顺序是: (A)

    (A) package,import,class   

    (B) class,import,package

    (C) import,package,class 

    (D) package,class,import

    14.下面哪个是非法的:(B)

    (A) int I = 32;      (B) float f = 45.0;      

    (C) double d = 45.0;

    (D) char c = ‘u’; //符号错

    【注】应该为float f = 45.0f;

    15.Java语言使用的字符码集是(D)
    (A) ASCII          (B) BCD                  

    (C) DCB            (D) Unicode

    【注】Java语言所使用的字符集是16位Unicode编码。

    16. 如果一个类的成员变量只能在所在类中使用,则该成员变量必须使用的修饰是(C)

    (A) public           (B) protected           

    (C) private          (D) static

    【注】

    private同一个类可以访问;

    public 是全局都可以访问,子类,同一个包,同一个类都可以访问);

    protected是同一类,同一个包,子类可以访问;

    无修饰符号是缺省类型--default,可以在同一个类,同一个包内访问。

    Static修饰状态,以上前三个是修饰权限。

    17.下面关于main方法说明正确的是(B)

    (A) public main(String args[ ])                   

    (B) public static void main(String args[ ])

    (C) private static void main(String args[ ])       

    (D) void main()

    【注】如下

    18.哪个关键字可以对对象加互斥锁?( B )

    (A) transient              (B) synchronized        

    (C) serialize              (D) static

    【注】synchronized 线程安全与同步。

    19.关于抽象方法的说法正确的是( C )

    (A)可以有方法体    (B) 可以出现在非抽象类中

    (C) 是没有方法体的方法

    (D) 抽象类中的方法都是抽象方法

    【注】抽象方法指一些只有方法声明,而没有具体方法体的方法。抽象方法一般存在于抽象类或接口中。所以正确的是C(没有方法体的方法)。

    20.java.io包的File类是(B)选择D
     (A)字符流类          (B) 字节流类             

    (C) 对象流类(无此流)  (D) 非流类

    21.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?(B)

    A、String  args    B、String  args[] 

    C、Char  arg       D、StringBuffer args[]

    22.以下代码段执行后的输出结果为(  A  )

         int  x=-3; int  y=-10;

         System.out.println(y%x);

    A、  -1   B、2     C、1     D、3

    【注】取模符号与被除数一致!求余数,也就是整除之后剩余值,其中-9被整除了,还余下-1.。

    23.以下关于继承的叙述正确的是( A )。

    A、在Java中类只允许单一继承

    B、在Java中一个类只能实现一个接口(多个)

    C、在Java中一个类不能同时继承一个类和实现一个接口(可以)

    D、在Java中接口只允许单一继承(可多重继承)

    24. 若有定义:byte[] x={11,22,33,-66};

    其中0≤k≤3,则对x数组元素错误的引用是( C )

    A)x[5-3]

    B)x[k]

    C)x[k+5]

    D)x[0]

    26.以下哪个不是Java的原始数据类型( B )

    A、int   B、Boolean    C、float D、char

    【注】首字母大写的说明是boolean的封装类,继承自Object。就像Integer对应int一类,同一个包,子类可以访问。

    27.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为( C )

    A) 隐藏

    B) 重写

    C) 重载

    D) Java不支持此特性

    28. 以下有关构造方法的说法,正确的是:( A  )

    A. 一个类的构造方法可以有多个

    B. 构造方法在类定义时被调用

    C. 构造方法只能由对象中的其它方法调用。

    D. 构造方法可以和类同名,也可以和类名不同

    【注】构造方法在生成实例对象的时候被调用;构造方法不能被对象的其他方法调用;构造方法必须和类同名。

    30.给出下面代码,关于该程序以下哪个说法是正确的?( B错 )应该选择C。。静态的方法只能调用静态的成员。Math.abs()

    public class Person{

    static int arr[] = new int[5];

    public static void main(String a[])

    {

      System.out.println(arr[0]); }

    }

    A、编译时将产生错误        

    B、编译时正确,运行时将产生错误

    C、输出零    

    D、输出空

    31、有以下方法的定义,请选择该方法的返回类型(  C  错)。应该选择D

         ReturnType  method(byte x, double y)

         {

             return  (short)x/y*2;

         }

    A、byte  B、short C、int   D、double

    32.下列类定义中哪些是合法的抽象类的定义?(   C)

    A.abstract Animal{abstract void growl();}   

    B.class abstract Animal{abstract void growl();}        

    C.abstract class Animal{abstract void growl();}       

    D.abstract class Animal{abstract void growl(){System.out.println(“growl”);};}

    33.有以下程序片段,下列哪个选项不能插入到行1。(   D   )

    1.

    2.public  class  Interesting{

    3.//do sth 此处内部类,就不能写public了 

    4. }

    A、import java.awt.*;      

    B、package mypackage;      

    C、class OtherClass{   }  

    D、public class MyClass{}一个类不能有两个public

    【注】不能有两个public类,A是引用包,B是创建包,C是一个普通类。

    34. 设有下面两个赋值语句:

     a = Integer.parseInt(“12”);

       b = Integer.valueOf(“12”).intValue();

      下述说法正确的是(   D  )。

    A、a是整数类型变量,b是整数类对象。

    B、a是整数类对象,b是整数类型变量。

    C、a和b都是整数类对象并且值相等。  

    D、a和b都是整数类型变量并且值相等。

    【注】Integer,是int类型的封装。java中有一些基本类型,如boolean byte char short int long float double

    这些类型是没有封装的裸类型,其余的所有类,都是继承自Objcet类。裸类型游离于类的继承树之外,不过java为所有这些简单类型都做了封装,其中对int的封装就是Integer

    parseInte和intValue这两个方法的返回值都是int。

    a和b都是整数类型变量,而非integer对象。

    37. 为了使包ch4在当前程序中可见,可以使用的语句是(  A )。

    A)import ch4.*;    B)package ch4.*;

    C)ch4 import;      D)ch4 package;

    38. 请问所有的异常类皆继承哪一个类?( B )。

    A)java.io.Exception    

    B)java.lang.Throwable

    C)java.lang.Exception  

    D)java.lang.Error

    39.进行Java基本的GUI设计需要用到的包是(  C )。

    A)java.io    B)java.sql    

    C)java.awt   D)java.rmi

    40. 当点击鼠标或者拖动鼠标时,触发的事件是下列的哪一个?( D )

    A)KeyEvent    B)ActionEvent  

    C)ItemEvent   D)MouseEvent

    填空题:

    1.数组x定义:String x[ ][ ]=new int[3][2];  x[0 ][0 ]=”abc”, x[0 ][1]=”12345”;

    则 x.length 的值为__3__,x[0][1].length( ) 的值为__5__。

    2、Java语言的变量由变量名、_修饰符_、变量属性、_初值___组成。

    3、当程序中需要抛出异常时,应该使用_catch_子句,当需要在方法中声明可能抛出的异常类型,应该使用_ throws XXXException _子句。

    6、Java源程序文件和字节码文件的扩展名分别为_.java__和__.class__。

    7、Java语言的类型检查机制要求对于没有返回值的方法,在其前面必须加__void____进行说明。

    8、  在Java语言中,所有的对象均通过_____new____运算符分配内存,并对内存进行自动管理。

    10、每个Java Application程序可以包括许多方法,但是必须有且只能有一个__main_方法,统一格式为_public static void main(String[]args){} _,它是程序执行的入口。

    11、  若要在程序中定义一个公用的int型的类成员变量MAX_LENGTH,且该变量的值保持常数值1000,则定义该变量的语句是_ public final int MAX_LENGTH=100___。

    12、  子类必须通过_  super   _关键字调用父类有参数的构造函数。

    13、  在Java语言中,所有的类都是类__Object   __的子类。

    14、  在Java程序中,通过类的定义只能实现单重继承,但通过__接口  __ 的定义可以实现多重继承关系。

    15、  如果在Java程序中,需要使用java.util包中的所有类,则应该在程序开始处加上语句_  import java.util.*   _。

    16、  下列程序的运行结果是___01234_____

    public class ex2 {

      public static void main(String[] args)

      {

         for(int cnt=0;cnt<10;cnt++)

         {

             if(cnt==5)

                  break;

             System.out.print(cnt);

         }}}

    17、  下列程序的运行结果是______4_________

    import  java.io.*;

    public   class  ATest{

       public  static  void  main(String args[])

    {

       SubClass  sb = new  SubClass( );       

       System.out.println(sb.fun( ));

     }}

    class  SuperClass{

      int  a =24 , b =5 ; 

    }

    class  SubClass  extends  SuperClass

    {

      int  fun( )

    {

     return   a%b; 

    }

     }

    18、   分析下列程序,填上空白处的语句

    class point     //定义坐标类

    {   int x,y;

        test(int a,int b)

        {x=a;y=b;}

    }

    class rec extends point __________//定义长方形类

    {

      int length,width;

      rec(int a1,int b1,int l,int w)

      {super(a1,b1);

         length=l;width=w;

      }}

    class test

    {public static void main(String args[])

      {

        

    ___test r1=new__rec(0,0,10,20)______

    //定义名为r1的对象同时初始化坐标为0,0,长度为10,宽度为20

         r1.print();

         }}

    19、Java 源文件中最多只能有_____1________________个公共类,其它类的个数不限。 

    20、在 Java 中所有实现的多维数组,实际上是由一维数组构成的_数组的数组      。 

    21、设 x =15 ,则表达式 ( x + + )/4 的值是________3_____。

    22、___抽象____方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。

    23、 ___run()_______方法用于定义线程的执行体. ______start()_____方法用于启动线程.

    24、String str1=”abc”;

    String str2=new String(“abc”);

    System.out.println(str1==str2);     则程序运行后输出结果为:____fault__(因为比较的是地址)_____

    25、Java语言中,有一个类是所有类或接口的父类,这个类的名称是 ____Object____。   

    26、当启动 Applet 程序时,首先调用的方法是_______init()______。(初始化组件)

    27、Java语言是一种完全的_____面向对象_____程序设计语言。

    28. 如果一个Java  Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是____Applet_____类的子类并且存储该源程序文件的文件名为Applet            。

    29. 设 int x = 2 ,则表达式 (x++)/3 的值是_______0___________。

    30. Java提供的访问权限修饰符有:public、_private      、protected、友元。

    31. Java中有两种常用的字符串类,一个是String,另一个是_ ,StringBuffer _。

    【注】String是每次使用都会生成一个对象,不管你用=还是new都会是新的对象。

    StringBuffer就是为了补String的这个问题,它可以使用append,这样初始化后就不会生成新的对象了,但是她是线程不安全的。

    StringBuilder是线程安全的,所以它的速度要比StringBuffer慢点,其他的他们一样。

    32. Java实现多线程的方法有两种,一种方法是通过创建___ Thread ____类的子类实现多线程,另一种方法是定义一个实现

    ____ runnable __接口的类。

    33. Java不支持多继承。但它允许一个类同时实现多个___接口___,这就相当于部分实现了多继承。

    34. Java源文件中,________import_____语句位于package语句之后、类定义之前。

    35. _FileOutputStream__类是OutputStream类的子类,用来处理以文件作为数据输出的数据流。

  • 相关阅读:
    linux系统分析工具续-SystemTap和火焰图(Flame Graph)
    如何使用strace+pstack利器分析程序性能
    MySQL数据类型-decimal详解
    服务器端数据合法性验证:签名sign和口令token原理
    linux系统下php通过php_oci8扩展连接oracle数据库 Nginx
    redis开启远程访问
    cURL函数库错误码说明之PHP curl_errno函数
    权限控制相关模块
    otool
    路由器
  • 原文地址:https://www.cnblogs.com/shenxiaolin/p/5723875.html
Copyright © 2020-2023  润新知