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啊???
展开
 我来答
网名而已
2010-07-13 · TA获得超过486个赞
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
Thread t = new Thread();
new出一个Thread对象t,刚刚new出来的时候是空的Thread对象 取名为t


Thread t = Thread.currentThread();

currentThread() 是Thread的静态方法,他的返回值类型是Thread对象 当然可以赋值给Thread对象t,这是方法返回值的问题。

文档中是这样描述写的:
currentThread
public static Thread currentThread()返回对当前正在执行的线程对象的引用。

返回:
当前执行的线程。
shy2850
2010-07-13 · TA获得超过6774个赞
知道大有可为答主
回答量:2505
采纳率:55%
帮助的人:1588万
展开全部
这个不叫创建对象,这个是取得某对象的引用;

Java中所有创建引用类型数据对象的方法归根结底都要有new(String 类型可以通过在"字符串池"中建立对象,不用new)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
5iijava
2010-07-13 · TA获得超过190个赞
知道答主
回答量:165
采纳率:0%
帮助的人:94.9万
展开全部
currentThread()方法是静态方法,可以直接使用类名直接调用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
niulu90
2010-07-13 · TA获得超过2472个赞
知道小有建树答主
回答量:1005
采纳率:0%
帮助的人:945万
展开全部
在Java中对象作为参数传递时,是把对象在内存中的地址拷贝了一份传给了参数。如果在方法里形参指向的内存地址改变了(通常为新建了对象,形参并指向了它),并不会影响实参的改变..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
犹诚亿6829
2010-07-13
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
1楼正解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式