1、下列关于Java语言中String和char的说法,正确的是()
1String是Java定义的一种基本数据类型。
1String是以“”结尾的char类型的数组char[]。
1使用equals()方法比较两个String是否内容一样(即字符串中的各个字符都一样)。
1Char类型在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、
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18public 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前面必须用的关键词是? ( )
1class
1final
1public
1static
被sataic声明的为静态方法,可以直接通过类名调用而不需要通过对象调用。
D
4、下面代码运行结果是()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18public 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)); } }
1
2catch语句块 和是:43
1编译异常
1
2finally语句块 和是:43
1
2和是:43 finally语句块
System.out.println("和是:"+test.add(9, 34)); 这是进行字符串拼接是一个整体,所以首先是进入add方法中,进去之后先把先不运算result,而是输出finally块。注意:此时finally块输出结果是:finally语句块,这句话首先打印到控制台中。打印完后返回来执行try中的return得到43,所以此时再将结果与"和是:"进行拼接-->输出:和是 43。所以此时控制台又多了一句话:和是 43。加上之前finally先在控制台上的输出,所以结果为:finally语句块 和是 43.
C
5、下面代码的输出结果是什么?
1
2
3
4
5
6
7
8
9
10
11
12
13
14public 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); } }
13
1123
11
112
1、inti = 100/ 0; 会出现异常,会抛出异常,System.out.print(i)不会执行,
2、catch捕捉异常,继续执行System.out.print(1);
3、当执行 thrownewRuntimeException(); 又会抛出异常,这时,除了会执行finally中的代码,其他地方的代码都不会执行
D
6、下列哪种异常是检查型异常,需要在编写程序时声明?
1NullPointerException
1ClassCastException
1FileNotFoundException
1IndexOutOfBoundsException
1. 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理,命名为 Checked Exception 是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守.
2. 绿色的异常是运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理,比如 空指针,被0除...
3. 而声明为Error的,则属于严重错误,如系统崩溃、虚拟机错误、动态链接失败等,这些错误无法恢复或者不可能捕捉,将导致应用程序中断,Error不需要捕捉。
运行时异常可以根据分析代码决定是否进行手动处理,而编译时异常必须进行捕捉处理
C
7、执行语句“int a= ’ 2 ’ ”后,a的值是( )
复制代码12复制代码150复制代码149复制代码10复制代码1常见字符的ASCII码值如下:空格的ASCII码值为32;数字0到9的ASCII码值分别为48到57;大写字母“A”到“Z”的ASCII码值分别为65到90;小写字母“a”到“z”的ASCII码值分别为97到到122。
8、以下程序段执行后将有()个字节被写入到文件afile.txt中。
1
2
3
4
5
6
7
8
9try { 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、下面叙述那个是正确的?()
1java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可以自动调整。但需要事先知道所存储对象的类型,才能正常使用。
1在java中,我们可以用违例(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要更大的系统开销。
1java接口包含函数声明和变量声明。
1java中,子类不可以访问父类的私有成员和受保护的成员。
A.vector是线程安全的ArrayList,在内存中占用连续的空间。初始时有一个初始大小,当数据条数大于这个初始大小后会重写分配一个更大的连续空间。如果Vector定义为保存Object则可以存放任意类型。
B.try{}catch{}会增加额外的开销
C.接口中声明的'变量'必须为public final static,所以为常量
D.子类可以访问父类受保护的成员
B
10、一般有两种用于创建线程的方法,一是(),二是()。
1从Java.lang.Thread类派生一个新的线程类,重写它的runnable()方法
1从Java.lang.Thread类派生一个新的线程类,重写它的run()方法
1实现Thread接口,重写Thread接口中的run()方法
1实现Runnable接口,重写Runnable接口中的run()方法
创建线程对象两种方式:
1.继承Thread类,重写run方法;
2.实现Runnable接口,实现run方法
BD
11、下列关于JAVA多线程的叙述正确的是()
1调用start()方法和run()都可以启动一个线程
1CyclicBarrier和CountDownLatch都可以让一组线程等待其他线程
1Callable类的call()方法可以返回值和抛出异常
1新建的线程调用start()方法就能立即进行运行状态
A,start是开启线程,run是线程的执行体,run是线程执行的入口。
B,CyclicBarrier和CountDownLatch都可以让一组线程等待其他线程。前者是让一组线程相互等待到某一个状态再执行。后者是一个线程等待其他线程结束再执行。
C,Callable中的call比Runnable中的run厉害就厉害在有返回值和可以抛出异常。同时这个返回值和线程池一起用的时候可以返回一个异步对象Future。
D,start是把线程从new变成了runnable
BC
12、下面错误的是
1
2
3public abstract final class Test { abstract void method(); }
1
2
3public abstract class Test { abstract final void method(); }
1
2
3
4public abstract class Test { abstract void method() { } }
1
2
3
4
5public 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小题精炼训练营(篇二十)内容请搜索靠谱客的其他文章。
发表评论 取消回复