java 课外练习题

来源:互联网 发布:有程序员转行的吗 编辑:程序博客网 时间:2024/04/28 06:14

1.下列哪些是Thread类中的方法()

A   start()    B  run()   C  exit()   D  getPriority()

解析:线程的就绪状态:新建线程后start()方法的调用,来启动线程,但此时线程并没有进入运行状态,只是线程就绪状态,等待cpu服务。

    线程的运行状态:当线程获得cpu中的时间碎片,时进入运行状态。  此时调用线程对象的run()方法,此线程就定义啦该线程的操作和功能。

    线程的堵塞状态:一个正在运行的线程在某种特殊下(执行耗时操作或调用sleep(),suspend(),wait(  )等方法),会让出cpu并暂时进入堵塞状态,此时线程不能         进入排队队列,当堵塞消除后,线程可以转入就绪状态。

            线程的死亡状态:当调用stop()或run()状态运行完后进入死亡状态。

    getPriority()方法和setPriority()方法来存储线程的优先级。

exit()方法:是System类中的方法exit()方法的调用是用来关闭jvm 。 exit(0),是正常关闭jvm,非0是非正常关闭jvm.  System.exit(0)//

2) 下列关于  java.lang.exception  类的说法正确的是()

A extends 于 Throwable   B  Serialable   C 都不正确

解析:java异常的基类是(  java.lang.Throwable ,   java.lang.Error,  java.lang.Exception)都是extends 于 Throwable 类。

               RuntimeException和其他的Exception 继承(extends)于Exception类,具体的RuntimeException继承于(extends)具体的RuntimeException

知识点的扩展:Error  vs  Exception

Error是不正常的错误,不应该出现的,用户不应该去  try/catch  这种错误,

3)下列代码段的结果()

String str1="Hello";String str2="He"+new String("llo");System.out.println("str1=str2:"+(str1==str2));     ////////   答案: false;

解析: “==”在java发中是判断引用是否相等(内存中的地址是否相等,并不是值相等),new String("llo")之后肯定是在堆内存中开辟内存空间,所以地址改变,若是

  判断 String str1=str2;    System.out.println("str1=str2:"+(str1=str2));   /////  答案:true

4)下列说法中正确的是()

A   class 类中constructor 不能省     B   constructor 必须与class相同,但方法不能与class 相同。 C   constructor 时在一个对象被new 时执行

D   class中只能定义一个constructor

解析:constructor 是构造函数的意思。一般普通的方法可以与类名相同,普通方法与构造方法唯一的区别是构造方法没有返回值。

5)代码:

public static void main(String[] args){    Thread t=new Thread(){         public void run(){       pong();}};     t.run();   System.out.println("ping");}

static void pong(){    System.out.println("pong");}

结果:pong ping;

6)下列关系型数据库是()

A oracle   B mysql   C  IMS  D  MongoDB

解析: IMS是IBM开发的两种数据库之一(一种是关系型数据库:DB2,一种是层次型数据库:IMS);非关系型数据库:MongoDB,  Redis,  memcachedb等。

7)gc的线程是否为守护线程

答:是, 线程分为守护线程和非守护线程(即用户线程),只有当jvm中非守护线程没有结束时,守护线程全部工作,当非守护线程结束时,守护线程会跟随jvm的结束,而结束。守护线程中最典型的应用是gc。

后续、、、、、、、、









0 0
原创粉丝点击