java编程题目及答案
1. 下面哪些是thread类的方法()
a start() b run() c exit() d getpriority()
答案:abd
解析:看java api docs吧:acle/javase/7/docs/api/,exit()是system类的方法,如systeexit(0)。
2. 下面关于ption类的观点恰当的就是()
a 继承自throwable b serialable cd 不记得,反正不正确
答案:a
解析:java异常的基类为java.lang.throwable,和ption继承 throwable,runtimeexception和其它的exception等继承exception,具体的runtimeexception继承runtimeexception。
拓展:错误和异常的区别(error vs exception)
1) : throwable的子类,用于标记严重错误。合理的应用程序不应该去try/catch这种错误。绝大多数的错误都是非正常的,就根本不该出现的。
ption: throwable的子类,用作命令一种合理的程序要去catch的条件。即为它仅仅就是一种程序运行条件,而非严重错误,并且引导用户程序回去catch它。
2) error和runtimeexception 及其子类都是未检查的异常(unchecked exceptions),而所有其他的exception类都是检查了的异常(checked exceptions).
checked exceptions: 通常从一个可以恢复正常的程序中原都的,并且最出能从这种异常中采用程序恢复正常。比如说filenotfoundexception, parseexception等。检查了的异常出现在编程阶段,必须必须采用try…catch(或者throws)否则编程不通过。
unchecked exceptions: 通常是如果一切正常的话本不该发生的异常,但是的确发生了。发生在运行期,具有不确定性,主要是由于程序的逻辑问题所引起的。比如arrayindexoutofboundexception, classcastexception等。从语言本身的角度讲,程序不该
去catch这类异常,虽然能够从诸如runtimeexception这样的异常中catch并恢复,但是并不鼓励终端程序员这么做,因为完全没要必要。因为这类错误本身就是bug,应该被修复,出现此类错误时程序就应该立即停止执行。 因此,面对errors和unchecked exceptions应该让程序自动终止执行,程序员不该做诸如try/catch这样的事情,而是应该查明原因,修改代码逻辑。
runtimeexception:runtimeexception体系包含错误的初始化、数组越界出访和企图出访空指针等等。
executory contract 处理runtimeexception的原则是:如果出现 runtimeexception,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。其他(ioexception等等)checked异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。
3. 下面程序的运转结果就是()
string str1 = "hello";
string str2 = "he" + new string("llo");
systeerr.println(str1 == str2);
答案:false
解析:因为str2中的llo是新申请的内存块,而==判断的是对象的地址而非值,所以不一样。如果是string str2 = str1,那么就是true了。
4. 以下观点恰当的存有()
a. class中的constructor不可省略
b. constructor必须与class同名,但方法无法与class同名
c. constructor在一个对象被new时执行
d.一个class就可以定义一个constructor
答案:c
解析:这里可能会存有误区,其实普通的类方法就是可以和Pthreads同名的,和构造方法唯一的区分就是,构造方法没返回值。
5. 具体选项不记得,但用到的知识如下:
string []a = new string[10];
则:a[0]~a[9] = null
a.length = 10
律师的真实收入有多恐怖 如果是int []a = new int[10];
则:a[0]~a[9] = 0
a.length = 10
6. 下面程序的运转结果:()
public static void main(string args[]) {
thread t = new thread() {
public void run() {
pong();
}
};
t.run();
systeout.print("ping");
}
static void pong() {
systeout.print("pong");
}
#formatimgid_0#
a pingpong b pongping c pingpong和pongping都有可能 d 都不输入
答案:b
解析:这里托福的就是thread类中start()和run()方法的区别了。start()用以启动一个线程,当调用start方法后,系统才可以打开一个代莱线程,进而调用run()方法去继续执行任务,而单独的调用run()就跟调用普通方法就是一样的,已经丧失线程的特性了。因此在启动一个线程的时候一定必须采用start()而不是run()。
7. 下列属于关系型数据库的是()
a. oracle b mysql c ims d mongodb
答案:ab
答疑:ims(information management system )数据库就是ibm公司研发的两种数据库类型之一;
一种是关系数据库,典型代表产品:db2;
另一种则就是层次数据库,代表产品:ims层次数据库。
非关系型数据库有mongodb、memcachedb、redis等。
python程序编写注意 8. gc线程与否为守护者线程?()
答案:是
解析:线程分成守护者线程和非守护者线程(即为用户线程)。
只要当前jvm实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着jvm一同结束工作。
守护者线程最典型的应用领域就是 gc (垃圾废旧器)
9. volatile关键字是否能保证线程安全?()
答案:无法
前端开发有哪些 解析:volatile关键字用在多线程同步中,可保证读取的可见性,jvm只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对
volatile的写下操作方式,无法确保线程安全。比如假如线程1,线程2 在展开read,load 操作方式中,辨认出主内存中count的值都就是5,那么都会读取这个最新的值,在线程1堆上count展开修正之后,可以write至主内存中,主内存中的count变量就可以变成6;线程2由于已经展开read,load操作方式,在展开运算之后,也可以更新主内存count的变量值为6;引致两个线程及时用volatile关键字修正之后,还是可以存有mammalian的情况。
10. 下列说法正确的是()
a linkedlist承继自list
b abstractset继承自set
c hashset承继自abstractset
d weakmap继承自hashmap
答案:ac
解析:下面是一张下载的java中的集合类型的继承关系图,一目了然。
#formatimgid_1
11. 存在使i + 1 < i的数吗()
#答案:存有
解析:如果i为int型,那么当i为int能表示的`最大整数时,i+1就溢出变成负数了,此时不就
拓展:存有并使i > j || i <= j不设立的数吗()
答案:存在
解析:比如说double.nan或float.nan,非常感谢@builderqiu网友表示。
12. 0.的数据类型是()
a float b double c float d double
java常见笔试题>java网页代码 答案:b
解析:预设为double型,如果为float型须要加之f表明表明,即0.f
13. 下面哪个流类属于面向字符的输入流( )
a bufferedwriter b fileinputstream c objectinputstream d inputstreamreader
答案:d
解析:java的io操作方式中存有面向字节(byte)和面向字符(character)两种方式。
面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是inputstream和outputstream的子类。
面向字符的操作方式为以字符为单位对数据展开操作方式,大二的时候将二进制数据变为字符,在写下的时候将字符变为二进制数据,这些类都就是reader和writer的子类。
总结:以inputstream(输入)/outputstream(输出)为后缀的是字节流;
以reader(输出)/writer(输入)为后缀的就是字符流。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论