Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在对Thread.currentThread()的方法调用中,Thread指的是什么;和Thread.sleep();?_Java_Multithreading_Object - Fatal编程技术网

Java 在对Thread.currentThread()的方法调用中,Thread指的是什么;和Thread.sleep();?

Java 在对Thread.currentThread()的方法调用中,Thread指的是什么;和Thread.sleep();?,java,multithreading,object,Java,Multithreading,Object,我在Java书籍中阅读了下面的代码。我知道main类默认继承Thread类,所以currentThread();而不是Thread.currentThread();我也会做这项工作 但我没有得到的是:Thread.currentThread()中的线程是什么;或线程。sleep()-- 类还是对象?类和它的对象可以有相同的名称吗? class Demo { public static void main(String args[]) { Thread t=Thre

我在Java书籍中阅读了下面的代码。我知道main类默认继承Thread类,所以currentThread();而不是Thread.currentThread();我也会做这项工作

但我没有得到的是:Thread.currentThread()中的线程是什么;或线程。sleep()-- 类还是对象?类和它的对象可以有相同的名称吗?

class Demo {

     public static void main(String args[]) {
          Thread t=Thread.currentThread();
          t.setName("My Thread");
          System.out.println("Current Thread: "+t);

          try {
              Thread.sleep(1000);
          }
          catch(InterruptedException e) {
              System.out.println(e);
          }
     }
} 

Thread
是类的名称
currentThread()
sleep()
都是此类的静态方法,这就是为什么您可以在不创建类对象的情况下引用它们


您可以编写
currentThread()
而不是
Thread.currentThread()
只有在执行了
Thread
类本身的静态导入时才可以。
Thread
是类的名称
currentThread()
sleep()
都是此类的静态方法,这就是为什么您可以在不创建类对象的情况下引用它们

只有在执行了
Thread
类本身的静态导入时,才能编写
currentThread()
而不是
Thread.currentThread()

我知道main类默认继承Thread类,所以currentThread();而不是Thread.currentThread();我也会做这项工作

不,这不对。默认情况下,有一个“main”线程运行
main
方法,但它不“继承”线程类
Thread.currentThread()
正在调用java
静态方法。他们是不同的

什么是线程中的线程。currentThread();或线程。sleep();--类还是对象

Thread.currentThread()
Thread.sleep()
都是静态方法。看这个。他们正在使用
线程
类。这两个调用不涉及实例对象

Thread.currentThread()
返回
Thread
类的实例,该类是运行main方法的“主”线程。在您的示例中,
t
Thread
类的一个实例。再次检查教程和其他Java文档,了解实例方法和静态方法之间的区别

一个类和它的对象可以有相同的名称吗

不幸的是,是的。这就是为什么字段名的大小写很重要的原因,这样可以让程序员更容易看到差异

// this compiles unfortunately
Thread Thread = Thread.currentThread();

// leading lowercase field names is a much better pattern
Thread thread = Thread.currentThread();
我知道main类默认继承Thread类,所以currentThread();而不是Thread.currentThread();我也会做这项工作

不,这不对。默认情况下,有一个“main”线程运行
main
方法,但它不“继承”线程类
Thread.currentThread()
正在调用java
静态方法。他们是不同的

什么是线程中的线程。currentThread();或线程。sleep();--类还是对象

Thread.currentThread()
Thread.sleep()
都是静态方法。看这个。他们正在使用
线程
类。这两个调用不涉及实例对象

Thread.currentThread()
返回
Thread
类的实例,该类是运行main方法的“主”线程。在您的示例中,
t
Thread
类的一个实例。再次检查教程和其他Java文档,了解实例方法和静态方法之间的区别

一个类和它的对象可以有相同的名称吗

不幸的是,是的。这就是为什么字段名的大小写很重要的原因,这样可以让程序员更容易看到差异

// this compiles unfortunately
Thread Thread = Thread.currentThread();

// leading lowercase field names is a much better pattern
Thread thread = Thread.currentThread();

如果你打开一本java书,你的问题就会得到答案!!“太本地化”不是一个合理的理由如果你简单地打开一本java书,你就会得到你问题的答案!!“太本地化”不是一个可以辩护的近义词多谢格雷…我现在了解了全貌。:)多谢格雷…我现在了解了全貌。:)多谢安德鲁…这很有帮助。多谢安德鲁…这很有帮助。