我是靠谱客的博主 舒服唇彩,最近开发中收集的这篇文章主要介绍Java小题精炼训练营(篇二十),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、下列关于Java语言中String和char的说法,正确的是()

String是Java定义的一种基本数据类型。
String是以“”结尾的char类型的数组char[]。
使用equals()方法比较两个String是否内容一样(即字符串中的各个字符都一样)。
Char类型在Java语言里面存储的是ASCII码。

A 基本数据类型包括byte,short,int,long,float,double,char,boolean,所以A错。
B,C语言当中是这样,java不是, String内部是用char[]数组实现的,不过结尾不用。
C 对,字符串内容比较用equals方法。
D char存储的unicode码,不进可以存储ascII码,汉字也可以。

C

2、

public class Test1 {

    static int cnt = 6;

    static {
        cnt += 9;
    }

    public static void main(String[] args) {
        System.out.println("cnt =" + cnt);
    }

    static {
        cnt /= 3;
    }
}

(1)父类静态成员和静态初始化块,按在代码中出现的顺序依次执行。

(2)子类静态成员和静态初始化块,按在代码中出现的顺序依次执行。

(3)父类实例成员和实例初始化块,按在代码中出现的顺序依次执行。

(4)执行父类构造方法。

(5)子类实例成员和实例初始化块,按在代码中出现的顺序依次执行。

(6)执行子类构造方法。

3、类Car里面有个方法run(),如果直接用Car.run(),则方法run前面必须用的关键词是?  ( )

class
final
public
static

被sataic声明的为静态方法,可以直接通过类名调用而不需要通过对象调用。

D

4、下面代码运行结果是()

public class Test{	
    public int add(int a,int b){	
         try {	
             return a+b;		
         } 
        catch (Exception e) {	
            System.out.println("catch语句块");	
         }	
         finally{	
             System.out.println("finally语句块");	
         }	
         return 0;	
    } 
     public static void main(String argv[]){ 
         Test test =new Test(); 
         System.out.println("和是:"+test.add(9, 34)); 
     }
}
catch语句块
和是:43
编译异常
finally语句块
和是:43
和是:43
finally语句块

System.out.println("和是:"+test.add(9, 34)); 这是进行字符串拼接是一个整体,所以首先是进入add方法中,进去之后先把先不运算result,而是输出finally块。注意:此时finally块输出结果是:finally语句块,这句话首先打印到控制台中。打印完后返回来执行try中的return得到43,所以此时再将结果与"和是:"进行拼接-->输出:和是 43。所以此时控制台又多了一句话:和是 43。加上之前finally先在控制台上的输出,所以结果为:finally语句块 和是 43.

C

5、下面代码的输出结果是什么?

public class ZeroTest {
    public static void main(String[] args) {
     try{
       int i = 100 / 0;
       System.out.print(i);
      }catch(Exception e){
       System.out.print(1);
       throw new RuntimeException();
      }finally{
       System.out.print(2);
      }
      System.out.print(3);
     }
 }
3
123
1
12

1、inti = 100/ 0; 会出现异常,会抛出异常,System.out.print(i)不会执行,

2、catch捕捉异常,继续执行System.out.print(1);

3、当执行 thrownewRuntimeException();  又会抛出异常,这时,除了会执行finally中的代码,其他地方的代码都不会执行

D

6、下列哪种异常是检查型异常,需要在编写程序时声明?

NullPointerException
ClassCastException
FileNotFoundException
IndexOutOfBoundsException

1. 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理,命名为 Checked Exception 是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守.

2. 绿色的异常是运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理,比如 空指针,被0除...

3. 而声明为Error的,则属于严重错误,如系统崩溃、虚拟机错误、动态链接失败等,这些错误无法恢复或者不可能捕捉,将导致应用程序中断,Error不需要捕捉。

运行时异常可以根据分析代码决定是否进行手动处理,而编译时异常必须进行捕捉处理

C

7、执行语句“int a= ’ 2 ’ ”后,a的值是( )

2
50
49
0
常见字符的ASCII码值如下:空格的ASCII码值为32;数字0到9的ASCII码值分别为48到57;大写字母“A”到“Z”的ASCII码值分别为65到90;小写字母“a”到“z”的ASCII码值分别为97到到122。

8、以下程序段执行后将有()个字节被写入到文件afile.txt中。

try {
    FileOutputStream fos = new FileOutputStream("afile.txt");
    DataOutputStream dos = new DataOutputStream(fos);
    dos.writeInt(3);
    dos.writeChar(1);
    dos.close();
    fos.close();
} catch (IOException e) {}

3

5

6

java采用的uincode编码,两个字节表示一个字符,因此 char型在java中占两个字节,而int型占四个字节,故总共占六个字节

C

9、下面叙述那个是正确的?()

java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可以自动调整。但需要事先知道所存储对象的类型,才能正常使用。
在java中,我们可以用违例(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要更大的系统开销。
java接口包含函数声明和变量声明。
java中,子类不可以访问父类的私有成员和受保护的成员。

A.vector是线程安全的ArrayList,在内存中占用连续的空间。初始时有一个初始大小,当数据条数大于这个初始大小后会重写分配一个更大的连续空间。如果Vector定义为保存Object则可以存放任意类型。

B.try{}catch{}会增加额外的开销

C.接口中声明的'变量'必须为public final static,所以为常量

D.子类可以访问父类受保护的成员

B

10、一般有两种用于创建线程的方法,一是(),二是()。

从Java.lang.Thread类派生一个新的线程类,重写它的runnable()方法
从Java.lang.Thread类派生一个新的线程类,重写它的run()方法
实现Thread接口,重写Thread接口中的run()方法
实现Runnable接口,重写Runnable接口中的run()方法

创建线程对象两种方式:

1.继承Thread类,重写run方法;

2.实现Runnable接口,实现run方法 

BD

11、下列关于JAVA多线程的叙述正确的是()

调用start()方法和run()都可以启动一个线程
CyclicBarrier和CountDownLatch都可以让一组线程等待其他线程
Callable类的call()方法可以返回值和抛出异常
新建的线程调用start()方法就能立即进行运行状态

A,start是开启线程,run是线程的执行体,run是线程执行的入口。

B,CyclicBarrier和CountDownLatch都可以让一组线程等待其他线程。前者是让一组线程相互等待到某一个状态再执行。后者是一个线程等待其他线程结束再执行。

C,Callable中的call比Runnable中的run厉害就厉害在有返回值和可以抛出异常。同时这个返回值和线程池一起用的时候可以返回一个异步对象Future。

D,start是把线程从new变成了runnable

BC

12、下面错误的是

public abstract final class Test {
	abstract void method();
}
public abstract class Test {
	abstract final void method();
}
public abstract class Test {
	abstract void method() {
}
}
public class Test {
	final void method() {

}
}

A.被final修饰的类为最终类,不能被继承,而类前面如果有abstract修饰,则为抽象类,抽象类是需要被继承才有意义,因此abstract和final矛盾,选项错误。

B.被final修饰的方法为最终方法,不能被继承,而方法前面如果有abstract修饰,则为抽象方法,抽象方法是需要被继承才有意义,因此abstract和final矛盾,选项错误。

C.抽象类中的抽象方法不能有具体的实现,而选项中的 abstract void method() {}中{}代表有具体的实现,因此此处应该为abstract void method();

注意: abstract 不能与private、static、final或native并列修饰同一个方法。

ABC

最后

以上就是舒服唇彩为你收集整理的Java小题精炼训练营(篇二十)的全部内容,希望文章能够帮你解决Java小题精炼训练营(篇二十)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部