请问java里面为什么有时候声明对象的时候不用new??

ThreadcurrentThread=Thread.currentThread();currentThread.getName();声明了thread类没有用newth... Thread currentThread = Thread.currentThread();
currentThread.getName();

声明了thread类 没有用new thread();那内存不就没有在堆里面分配内存传递过去了吗?
展开
 我来答
leversss
推荐于2016-02-22 · TA获得超过608个赞
知道答主
回答量:85
采纳率:0%
帮助的人:76.9万
展开全部
这个问题和java编程里用到的一些常用模式有关,有的时候你用new会出错,这主要是为了编程方便很安全两方面考虑。一般不用new的有两种最常用的模式,一是工厂模式,另一个是单例模式,工厂模式是通过工长类来得到一个实例,一般是AA aa=Fatory.getAA();这里就没用new。还有一种情况就是单例模式,这里主要是出于安全考虑了,在单例模式中,类的实例只允许有一个,并且有它自己自动提供这个实力。外部不能创建它的实例,因为它的构造函数是private的,所有使用new的时候会出错。当然它还要有一个静态的返回实例的方法。
zxptiger
2007-11-29 · TA获得超过265个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:124万
展开全部
1,Thread currentThread = Thread.currentThread();
currentThread.getName();

2,new Thread();
作用是不同的;

1,是用来获得当前正在执行的线程对象的引用。这样用的是当前正在执行的线程对象,所以不用开辟新的内存。
2,是用来获得重新产生一个新的线程对象。

一个是获得已有的对象,一个是重新创建一个对象。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tony840209
2007-11-28 · TA获得超过326个赞
知道答主
回答量:113
采纳率:0%
帮助的人:0
展开全部
这个问题我遇到过的。以前我开发项目的时候也用new的。可交任务的时候,公司就让我们把new的地方全改成
Thread currentThread = Thread.currentThread();
currentThread.getName();
你的这种形式了。这样做的唯一好处就是不用new开辟个新的内存,这样就不占内存了。程序的运行效率提高了。其实你用new和不用实现的功能是一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lyshadow
2007-12-03
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
虽然是用的方法currentThread();
但是最后还是在currentThread(); 方法中new的对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友af60faf09
2007-11-28 · TA获得超过1636个赞
知道大有可为答主
回答量:774
采纳率:0%
帮助的人:917万
展开全部
静态方法创建,原理没什么区别
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式