4-20校招面试总结

        线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。在多线程OS中,线程是能独立运行的基本单位,因而也是独立调度和分派的基本单位。由于线程很“轻”,故线程的切换非常迅速且开销小(在同一进程中的)。一个线程可以创建和撤消另一个线程,同一 进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。

5.1)启动一个线程是用run()还是start()?

        启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程会立即执行。run()方法可以产生必须退出的标志来停止一个线程。

 6:String和StringBuffer的区别

    Jaca平台提供了两个类:String和StringBuffer,他们可以储存和操作字符串,即包含多个字符的字符数据,这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候,你就可以使用StringBuffer。典型的,你可以使用StringBuffers来动态的构造字符数据。但是StringBuffer是线程不安全的!!

7:多线程有几种实现方法?同步有几种方法实现?

多线程有两种实现方法,分别是继承Thread类与实现Runnable接口,同步的实现方法有两种,分别是synchronized,wait与notify。