每日三道面试题——Day 4(JAVA)

这是一个程序员的自我修养,一个学术者的自我探索,一个大神的养成之道。

下列方法中可以用来创建一个新线程的是

  • A 实现java.lang.Runnable接口并重写start0方法
  • B 实现java.iang.Runnable接口并重写run0方法
  • C 继承java.lang.Thread类并重写run0方法
  • D 继承java.lang.Thread类并重写start0方法

分析:java实现线程操作的两种方法,一个是Thread类,一个是Runnable接口,

Thread类:
1)创建一个类继承Thread
2)覆写run方法,目的是存放多线程要执行的自定义代码。
3)在main函数中创建该类
4)使用start()方法调用该线程(start方法有两种含义:1,启动多线程。2,调用线程中的run方法

Runnable接口:
1)创建类实现Runnable接口
2)实现Runnable接口中的run方法
3)创建Thread对象
4)将Runnable对象作为实际参数传递给Thread的构造方法
5)调用Thread类的start方法,自动执行Runnable对象中的run方法

答:C

下列关于线程优先级的说法中,正确的是

A 线程的优先级是不能改变的
B 线程的优先级是在创建线程时设置的
C 在创建线程后的任何时候都可以设置
D B和C

分析:ava 中的线程优先级的范围是1~10,默认的优先级是5。“高优先级线程”会优先于“低优先级线程”执行。
java 中有两种线程:用户线程和守护线程。可以通过isDaemon()方法来区别它们:如果返回false,则说明该线程是“用户线程”;否则就是“守护线程”。
用户线程一般用户执行用户级任务,而守护线程也就是“后台线程”,一般用来执行后台任务。需要注意的是:Java虚拟机在“用户线程”都结束后会后退出

答:C

AIDL支持以下哪种数据类型?
l)string
2)list
3)map
4)All native java datatype( )

分析:aidl是 Android Interface definition language的缩写,它是一种android内部进程通信接口的描述语言。
在Android中, 每个应用程序都有自己的进程,当需要在不同的进程之间传递对象时,该如何实现呢? 显然, Java中是不支持跨进程内存共享的。因此要传递对象, 需要把对象解析成操作系统能够理解的数据格式, 以达到跨界对象访问的目的。在JavaEE中,采用RMI通过序列化传递对象。在Android中, 则采用AIDL(Android Interface Definition Language:接口定义语言)方式实现。
Aidl默认支持的类型包话java基本类型(int、long、boolean等)和(String、List、Map、CharSequence),使用这些类型时不需要import声明。对于List和Map中的元素类型必须是Aidl支持的类型。如果使用自定义类型作为参数或返回值,自定义类型必须实现Parcelable接口

答:1,2,3,4

专注,坚持,终成道

你可能感兴趣的:(每日三道面试题——Day 4(JAVA))