zoukankan      html  css  js  c++  java
  • 笔试面试题 整理---2

    11.启动一个线程是用 run() 还是 start()?
    run() :如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。
    start() :使该线程开始执行;Java 虚拟机调用该线程的 run 方法。

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

    答二:之所以出现线程,就是为了更好的利用CPU,让她更加精明的干活。通过调用Thread类的start()方法来启动一个线程, 这时此线程是处于就绪状态, 并没有运行。 然后通过此Thread类调用方法run()来完成其运行操作的,这里方法run()称为线程体, 它包含了要执行的这个线程的内容, Run方法运行结束, 此线程终止, CPU再运行其它线程, 如果直接用Run方法, 这只是调用一个方法而已, 程序中依然只有主线程--这一个线程, 其程序执行路径还是只有一条, 这样就没有达到写线程的目的。 

    12.下面代码抛什么异常?
    List<String> list = new ArrayList<String>();
    list.add("A");
    list.add("B");
    list.add("C");
    for(String s : list){
    if(s.equals("A")){
    list.add("E");
    }
    }
    ----
    ConcurrentModificationException异常
    for(String s : list) 这句话实际上是用到了集合的iterator() 方法
    用iterator遍历集合时要注意的地方:不可以对iterator相关的地方做添加或删除操作。在迭代时只可以用迭代器进行添加删除! 

    13.
  • 相关阅读:
    微信开发:MySQL utf8mb4 字符集
    Spring 事务
    Exception
    mysql系列之多实例介绍
    python连接MySQL
    1_archlinux_安装篇
    apache中如何调用CGI脚本
    1.1_Django简介及安装
    git分支合并脚本
    用python收集系统信息
  • 原文地址:https://www.cnblogs.com/xingele0917/p/3607407.html
Copyright © 2011-2022 走看看