java不用new运算符也能创建引用吗?
classCurrentThreadDemo{publicstaticvoidmain(Stringargs[]){Threadt=Thread.currentThrea...
class CurrentThreadDemo {
public static void main(String args[]) {
Thread t = Thread.currentThread();
System.out.println("Current thread: " + t);
// change the name of the thread
t.setName("My Thread");
System.out.println("After name change: " + t);
try {
for(int n = 5; n > 0; n--) {
System.out.println(n);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
System.out.println("Main thread interrupted");
}
}
}
============================================================
也许是我刚学少见多怪吧,第三句感觉比较奇怪:
Thread t = Thread.currentThread();
如果我写一定中规中矩:Thread t = new Thread();
然后用t.currentThread();调用方法。
我想知道的是为什么写成第三行那样也合法,它没有用new啊??? 展开
public static void main(String args[]) {
Thread t = Thread.currentThread();
System.out.println("Current thread: " + t);
// change the name of the thread
t.setName("My Thread");
System.out.println("After name change: " + t);
try {
for(int n = 5; n > 0; n--) {
System.out.println(n);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
System.out.println("Main thread interrupted");
}
}
}
============================================================
也许是我刚学少见多怪吧,第三句感觉比较奇怪:
Thread t = Thread.currentThread();
如果我写一定中规中矩:Thread t = new Thread();
然后用t.currentThread();调用方法。
我想知道的是为什么写成第三行那样也合法,它没有用new啊??? 展开
6个回答
展开全部
Thread t = new Thread();
new出一个Thread对象t,刚刚new出来的时候是空的Thread对象 取名为t
而
Thread t = Thread.currentThread();
currentThread() 是Thread的静态方法,他的返回值类型是Thread对象 当然可以赋值给Thread对象t,这是方法返回值的问题。
文档中是这样描述写的:
currentThread
public static Thread currentThread()返回对当前正在执行的线程对象的引用。
返回:
当前执行的线程。
new出一个Thread对象t,刚刚new出来的时候是空的Thread对象 取名为t
而
Thread t = Thread.currentThread();
currentThread() 是Thread的静态方法,他的返回值类型是Thread对象 当然可以赋值给Thread对象t,这是方法返回值的问题。
文档中是这样描述写的:
currentThread
public static Thread currentThread()返回对当前正在执行的线程对象的引用。
返回:
当前执行的线程。
展开全部
这个不叫创建对象,这个是取得某对象的引用;
Java中所有创建引用类型数据对象的方法归根结底都要有new(String 类型可以通过在"字符串池"中建立对象,不用new)
Java中所有创建引用类型数据对象的方法归根结底都要有new(String 类型可以通过在"字符串池"中建立对象,不用new)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
currentThread()方法是静态方法,可以直接使用类名直接调用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在Java中对象作为参数传递时,是把对象在内存中的地址拷贝了一份传给了参数。如果在方法里形参指向的内存地址改变了(通常为新建了对象,形参并指向了它),并不会影响实参的改变..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询